测试工程师如何利用通用千问大模型精准获取需求文档图片内容

一、背景与价值

在软件测试与需求追踪的实际工作中,经常遇到需求文档、票据、合同等图片资料,这些资料中的关键信息需要被高效、准确地提取和结构化,便于后续的自动化测试、数据归档及追溯分析。传统OCR工具虽能实现基本的文字识别,但在关键信息精准抽取、中文票据格式处理、多语言兼容等方面存在局限。

通义千问OCR大模型,基于阿里云百炼平台,具备卓越的文档、表格、手写体等多类型图片文字识别与信息抽取能力,支持自定义Prompt,能够实现高质量的结构化数据提取,为测试工程师提供了极大的便利和自动化能力提升。


二、应用流程

1. 场景分析

火车票图片关键信息提取为例,测试工程师需自动识别并抽取如下字段:

  • 发票号码
  • 车次
  • 起始站
  • 终点站
  • 发车日期和时间点
  • 座位号
  • 席别类型
  • 票价
  • 身份证号码
  • 购票人姓名

2. 环境准备

  • 注册并获取阿里云百炼平台API Key
  • 安装 openai 兼容SDK(DashScope SDK)
bash 复制代码
pip install openai

3. 核心代码实践

以下为完整的Python调用示例,包含图片URL、字段自定义、流式输出处理等关键环节:

python 复制代码
import os
from openai import OpenAI

client = OpenAI(
    api_key="替换为你的API Key",
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
    model="qwen-vl-ocr-latest",
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "image_url",
                    "image_url": "图片URL",
                    "min_pixels": 28 * 28 * 4,
                    "max_pixels": 28 * 28 * 8192
                },
                {"type": "text",
                 "text": "请提取车票图像中的发票号码、车次、起始站、终点站、发车日期和时间点、座位号、席别类型、票价、身份证号码、购票人姓名。要求准确无误的提取上述关键信息、不要遗漏和捏造虚假信息,模糊或者强光遮挡的单个文字可以用英文问号?代替。返回数据格式以json方式输出,格式为:{'发票号码':'xxx', '车次':'xxx', ... }"}
            ]
        }
    ],
    stream=True,
    stream_options={"include_usage": True}
)
full_content = ""
for chunk in completion:
    if chunk.choices:
        content = chunk.choices[0].delta.content
        if content:
            full_content += content
print(full_content)

4. 识别效果示例

针对如下火车票截图:

模型输出结构化JSON数据:

json 复制代码
{
    "发票号码": "2432911680400000000",
    "车次": "G1948",
    "起始站": "南京南站",
    "终点站": "郑州东站",
    "发车日期和时间点": "2024年11月14日11:46开",
    "座位号": "04车12A号",
    "席别类型": "二等座",
    "票价": "337.50",
    "身份证号码": "4107281991****5515",
    "购票人姓名": "读小光"
}

三、优势与评估

  1. 精准性高:结合图片内容和自定义Prompt指令,针对特定业务字段精准抽取,极大降低人工校对成本。
  2. 多场景适应:支持文档、票据、手写体等复杂格式,轻松应对需求文档、合同、表单等多种类型图片。
  3. 灵活性强:支持用户编写自定义Prompt,最大化适配不同项目和业务场景需求。
  4. 数据安全:可对敏感字段(如身份证号、姓名等)按需脱敏,保障数据合规。

四、最佳实践与注意事项

  • Prompt设计:根据业务实际,细化信息提取的字段和格式要求,提升结果准确率。
  • 图片质量:确保图片清晰,避免过度模糊、反光、遮挡,提升OCR效果。
  • 异常处理 :针对识别不清或遮挡字段,统一用?占位,便于后续人工复核。
  • Token管理:关注接口Token用量和费用,合理规划调用频率。

五、总结

通用千问OCR大模型为测试工程师带来了强大的图片内容结构化提取能力,助力自动化需求追踪、文档归档、票据处理等关键流程。通过合理的Prompt设计与流程集成,可以极大提升测试效率和数据质量,是现代测试工程师不可或缺的智能利器。


建议在实际项目中持续优化Prompt和图片采集流程,结合业务实际反复验证,不断提升模型应用价值。

相关推荐
程序员陆通4 分钟前
OpenAI 2025年度发布会(Dev Day 2025)主要内容
人工智能
kalvin_y_liu17 分钟前
.NET+AI: (微家的AI开发框架)什么是内核记忆(Kernel Memory)?
人工智能·.net
小刘摸鱼中26 分钟前
OpenCV 库函数
人工智能·opencv·计算机视觉
IT_陈寒27 分钟前
Redis 高性能缓存设计:7个核心优化策略让你的QPS提升300%
前端·人工智能·后端
文火冰糖的硅基工坊1 小时前
《投资-78》价值投资者的认知升级与交易规则重构 - 架构
大数据·人工智能·重构
爱写代码的小朋友1 小时前
生成式人工智能对学习生态的重构:从“辅助工具”到“依赖风险”的平衡难题
人工智能·学习·重构
唤醒手腕1 小时前
唤醒手腕2025年最新机器学习K近邻算法详细教程
人工智能·机器学习·近邻算法
却道天凉_好个秋1 小时前
深度学习(十七):全批量梯度下降 (BGD)、随机梯度下降 (SGD) 和小批量梯度下降 (MBGD)
人工智能·深度学习·梯度下降
我星期八休息2 小时前
C++异常处理全面解析:从基础到应用
java·开发语言·c++·人工智能·python·架构
常州晟凯电子科技2 小时前
海思Hi3516CV610/Hi3516CV608开发笔记之环境搭建和SDK编译
人工智能·笔记·嵌入式硬件·物联网