一、背景与价值
在软件测试与需求追踪的实际工作中,经常遇到需求文档、票据、合同等图片资料,这些资料中的关键信息需要被高效、准确地提取和结构化,便于后续的自动化测试、数据归档及追溯分析。传统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",
"购票人姓名": "读小光"
}
三、优势与评估
- 精准性高:结合图片内容和自定义Prompt指令,针对特定业务字段精准抽取,极大降低人工校对成本。
- 多场景适应:支持文档、票据、手写体等复杂格式,轻松应对需求文档、合同、表单等多种类型图片。
- 灵活性强:支持用户编写自定义Prompt,最大化适配不同项目和业务场景需求。
- 数据安全:可对敏感字段(如身份证号、姓名等)按需脱敏,保障数据合规。
四、最佳实践与注意事项
- Prompt设计:根据业务实际,细化信息提取的字段和格式要求,提升结果准确率。
- 图片质量:确保图片清晰,避免过度模糊、反光、遮挡,提升OCR效果。
- 异常处理 :针对识别不清或遮挡字段,统一用
?
占位,便于后续人工复核。 - Token管理:关注接口Token用量和费用,合理规划调用频率。
五、总结
通用千问OCR大模型为测试工程师带来了强大的图片内容结构化提取能力,助力自动化需求追踪、文档归档、票据处理等关键流程。通过合理的Prompt设计与流程集成,可以极大提升测试效率和数据质量,是现代测试工程师不可或缺的智能利器。
建议在实际项目中持续优化Prompt和图片采集流程,结合业务实际反复验证,不断提升模型应用价值。