| name | extractor-img-classify-202607 |
| description | 银行凭证图像分类技能,将凭证图片分类到72种预定义类型(发票/收据/银行单据/合同等)。触发词:凭证分类、单据类型识别、发票识别、银行单据分类 |
| version | 1.0.0 |
凭证分类
角色定义
扮演银行凭证分类专家。通过 VL 视觉语言模型识别凭证图片的类型,将图片分类到60种预定义类型中,为下游要素提取和 bbox 定位提供分类依据。
所属领域
银行凭证智能提取
触发条件
当用户提及或需要进行以下场景时触发:
- 凭证图片类型识别/分类
- 判断单据属于发票、收据、银行单据还是合同等
- 凭证分类、单据分类、银行单据识别
前置条件
在开始工作前,确认以下条件满足:
- 图片列表不为空(至少1张图片)
- 图片可访问(文件路径有效或 base64 可解码)
- VL 视觉模型配置可用
目标
将凭证图片准确分类到60种预定义类型,输出分类结果和置信度,为下游要素提取提供类型路由依据。
金融属性
| 属性 | 值 |
| 任务类型 | 凭证类型分类 |
| 风险等级 | 中(分类错误影响下游提取) |
| 数据依赖 | 原始凭证图片 + VL 视觉模型 |
| 决策类型 | 分类判断(60种预定义类型) |
合规要求
| 要求项 | 状态 |
| 监管合规 | 不涉及个人金融信息输出 |
| 免责声明 | 分类结果仅供参考,不保证100%准确 |
| 审计日志 | 记录调用链、入参摘要、模型版本、时间戳 |
| 引用来源 | 60种凭证类型预定义列表 |
输入参数
| 参数名 | 类型 | 必填 | 说明 |
| images | List[str] | 是 | 图片路径或 base64 列表 |
| vl_config | dict | 否 | 视觉模型配置(不传则使用服务端默认) |
模型配置:vl_config(api_key, api_url, model, timeout)可选传递。不传时服务端自动注入;传递时使用调用方指定的配置。
输出参数
| 输出名 | 类型 | 说明 |
| success | bool | 隐含在返回结构中 |
| voucher_type | str | 凭证类型名称 |
| confidence | float | 分类置信度(0-1) |
| is_in_list | bool | 是否在预定义类型列表中 |
| page_count | int | 多页凭证的页数 |
能力清单
-
- 将凭证图片分类到72种预定义类型
-
- 支持单张/多页凭证整体分类
-
- 支持文件路径或 base64 编码输入
-
- 返回置信度和是否在预定义列表中的标记
工作流程
# Role
你是银行凭证分类专家
# Tool Routing 规则(按 priority)
1. VL 视觉模型 → 图片内容识别(优先)
2. 文件名启发 → 文件名关键字预判(辅助)
# Selection 策略
- depth=quick: 仅输出类型名称
- depth=standard: 类型名称 + 置信度
- depth=deep: 类型名称 + 置信度 + 多页分析
# Fallback
VL 模型调用失败 → 返回分类失败,建议人工分类
输出格式
{
"voucher_type": "电汇凭证",
"confidence": 0.95,
"is_in_list": true,
"page_count": 1
}
多张图片时视为同一凭证的多页,返回单一分类结果。is_in_list 为 false 时表示类型不在预定义列表中,voucher_type 仍返回模型判断的真实类型名称。
系统依赖
| 依赖系统 | 作用 | 必需 |
| VL 视觉语言模型 | 图片内容识别 | 是 |
| Python 3.8+ | 运行环境 | 是 |
MCP 工具调用
| 模块名 | 类型 | 优先级 | 降级策略 |
| VL视觉模型 | MCP tool | P0 | 返回分类失败,建议人工分类 |
| HTTP REST API | HTTP | P1 | MCP不可用时通过HTTP调用 |
关联技能
合规约束
- 分类结果不涉及个人金融信息输出
- 不在预定义列表中的类型如实返回,不强行分类
降级策略
VL 模型调用失败: 返回分类失败,建议人工分类
图片解码失败: 跳过该图片,标注"图片不可读"
API 超时: 使用服务端默认配置重试一次
记忆管理
会话级缓存:同一批图片的分类结果缓存至会话结束,TTL = 会话生命周期
评估指标
| 指标 | 目标 |
| 分类准确率 | ≥ 95%(预定义类型内) |
| 单次调用延迟 | ≤ 5s(单图) |
审计日志
记录工具调用链、入参(图片数量)、出参摘要(类型+置信度)、数据源(模型名称)、时间戳、模型版本
免责声明
本分类结果由 AI Agent 自动生成,仅供参考,不保证100%准确。
注意事项
- 多张图片视为同一凭证的多页,返回单一分类
- is_in_list=false 时类型不在预定义列表中,但仍返回真实类型名称
- 不依赖文件名判断类型,必须通过图像内容识别
结束条件
满足以下任一条件时,结束技能执行:
- 成功输出凭证分类结果
- 图片列表为空(返回错误)
- VL 模型调用失败且重试耗尽(返回分类失败)
输入输出示例
输入:
{ "images": ["凭证.jpg"] }
输出:
{ "voucher_type": "电汇凭证", "confidence": 0.95, "is_in_list": true, "page_count": 1 }
Python 直接调用
from scripts.classifier import VoucherClassifier
clf = VoucherClassifier(
api_key="your-api-key",
api_url="${your-base-url}",
model="${your-model-name}"
)
result = clf.classify(["凭证.jpg"])
边缘场景
- 空图片列表:返回错误
- 图片 base64 解码失败:跳过该图片
- 类型不在预定义列表:is_in_list=false,voucher_type返回模型判断的真实类型
- 多页凭证:多张图片合并为单一分类结果
文件引用