当前位置:首页>python>《Python第七期》批量提取截图信息?Python+豆包多模态AI实战

《Python第七期》批量提取截图信息?Python+豆包多模态AI实战

  • 2026-09-09 17:34:40
《Python第七期》批量提取截图信息?Python+豆包多模态AI实战

一、问题的由来

朋友每天要处理上百张手机截图——提取单号、姓名、成绩、日期……再手动填进Excel。复制粘贴一整天,效率低、易出错,人还累。
这类图片往往拍摄不规范、清晰度不高,传统OCR识别准确率堪忧。有没有更省力的办法?

因此,我想编写一个批量处理工具,实现批量化操作,自动提取指定信息,然后可以转到Excel 里。

二、问题的分析

这个问题与提取发票信息有点儿像,不过发票一般都是pdf格式,而且很清晰,这是图片,一般都是手机拍摄的,不仅不规则,有时还不太清晰,所以要准确提取难度有点儿大。我想了一下,提供了两套解决的思路。

1. 用智能体的方法

我们进入豆包,在左侧菜单栏中,点击【更多】,找到【AI智能体】,再点击右上角的【创建智能体】

然后,在设定描述中输入相关指令,并为这个智能体设计一个名称,可以通过AI一键生成。

完成智能体编写后,提交豆包审核,审核通过后,我们就可以通过提交图片来实现相关信息的提交了。不过这种方法,一次只能提交一张图片,效果如下所示:

但这种方法的好处是可以在手机上提交识别,速度还挺快的,准确率也很好,而且操作免费。

2. Python编程法

另一种方法有点儿复杂,但可以实现批量操作,无人职守就可以完成提取图片信息的任务,但是就得消耗豆包API的额度,不过貌似价格不是很高。在编程前,可以去申请一个豆包api ,申请地址是:

火山引擎-你的AI云www.volcengine.com/

申请完之后,在控制台找到多模态 处理的AI样例代码如下:

import osfrom openai import OpenAI# 初始化客户端client = OpenAI(    base_url="https://ark.cn-beijing.volces.com/api/v3",    api_key="<API_KEY>"  # 这里修改了一下,直接为变量赋值,输入你的API_KEY即可)response = client.chat.completions.create(    model="doubao-seed-1-8-251228",  #豆包的多模态处理模型。    messages=[        {            "role": "user",            "content": [                {                    "type": "image_url",                    "image_url": {                        "https://ark-project.tos-cn-beijing.volces.com/doc_image/ark_demo_img_1.png"                    },                },                {"type": "text", "text": "提取图片中的文字信息,其它不要显示。"},            ],        }    ],)# 提取content内容content = response.choices[0].message.contentprint("提取的内容:")print(content)

需要安装的依赖包:

1、 安装火山引擎方舟 SDK

pip install 'volcengine-python-sdk[ark]'
2、安装 OpenAI SDK:
pip install openai

根据上面的样例代码,我们借助Python中的Tkinter 框架,编写了一款图片信息提取工具,实现包括图片的导入、预览、信息提取、复制等功能,基本的样式如下:

2.验证安装

  • 智能识别 + 界面友好提取结果清晰展示在界面右侧,字段用制表位对齐,一键复制即可粘贴到Excel,格式整齐不混乱。

  • 稳定预览体验修复了图片放大后按钮变形、预览框尺寸跳动等问题,并用 LabelFrame 分区设

    计,让信息提取区与图片预览区一目了然,操作更直观。

  • API 智能管理启动时自动检测本地是否已配置豆包 API Key:

    • 若未配置 → 弹窗提醒输入
    • 若已配置 → 显示“API 已加载”,无需重复操作
  • 结果可追溯所有提取记录自动保存至本地,点击【打开目录】即可查看历史数据,不怕丢失。

    部分代码展示:

    def image_to_base64(self,image_path):        # 获取图片文件的MIME类型        ext = os.path.splitext(image_path)[1].lower()        mime_type = f"image/{ext[1:]}" if ext in ['.jpg', '.jpeg', '.png', '.gif'] else "image/jpeg"        with open(image_path, "rb") as image_file:            # 读取文件内容并进行Base64编码            base64_data = base64.b64encode(image_file.read()).decode('utf-8')            # 返回完整的data URI格式            return f"data:{mime_type};base64,{base64_data}"    def chat_doubao(self,local_image_path):        # 初始化客户端        client = OpenAI(            base_url="https://ark.cn-beijing.volces.com/api/v3",            api_key="<YOUR API KEY>"  # 这里要输入自己的API        )        try:            # 转换本地图片为Base64编码            image_data = self.image_to_base64(local_image_path)            # 调用API处理图片            response = client.chat.completions.create(                model="doubao-seed-1-8-251228",                messages=[                    {                        "role": "user",                        "content": [                            {                                "type": "image_url",                                "image_url": {                                    "url": image_data  # 使用Base64编码的本地图片数据                                },                            },                            {"type": "text", "text": self.get_order()},                        ],                    }                ]            )

上面程序中,为了实现本地图片的读取,我们通过image_to_base64这个函数进行图像信息的转化,如果不转化,我们就得从网址里获取,有可能需要网络存储桶,不仅不方便,也会延迟速度。

提取了10张图片使用的token量

三、学后总结

  1. AI 正在让多模态处理变得简单随着人工智能能力持续提升,图片、音频、视频等非结构化数据的识别与理解越来越精准。结合 Python 的批量处理优势,我们能高效完成特定信息的提取与结构化保存——比如从截图中自动抓取单号、成绩等字段。

  2. 工具可灵活扩展,一器多用只需修改指令文件(如 order.txt),即可切换任务场景:

    • 提取发票关键信息
    • 批改作文并打分
    • 未来若支持音视频,同样适用同一套流程

本质上,这是一个“提示词驱动”的智能提取框架——换指令,就换功能。

四、结语:

两种使用场景,自由选择:

  • 临时处理几张图?
    用豆包 App 内的 AI 智能体(免费、手机可用)
  • 每天上百张截图?
    用这个桌面工具 + 豆包 API,批量处理、无人值守、效率翻倍
觉得这期有帮助?点个赞、加个关注!私信 “批量提取工具”,源码马上发你~你的支持,是我更新的最大动力!

最新文章

随机文章