| name | extractor-general-factor-extract-202607 |
| description | 银行凭证要素结构化提取框架技能,支持多种凭证类型(信用证/发票/银行单据)的智能提取,自动路由到专用子技能或配置prompt。触发词:凭证提取、要素提取、字段提取、信息提取 |
| version | 1.0.0 |
凭证信息提取器
角色定义
扮演银行凭证要素提取专家。通过通用凭证提取框架,支持多种凭证类型(信用证、发票、银行单据等)的智能结构化提取,自动路由到专用子技能或配置 prompt,输出提取结果。
所属领域
银行凭证智能提取
触发条件
当用户提及或需要进行以下场景时触发:
- 从凭证图片中提取结构化字段
- 信用证/发票/银行单据等信息提取
- 凭证提取、要素提取、字段提取、信息提取
- 凭证类型自动路由提取
前置条件
在开始工作前,确认以下条件满足:
- 提供凭证类型名称(credential_type)
- 提供图片列表(至少1张)
- VL 视觉模型配置可用
目标
从凭证图片中提取结构化字段,自动路由到专用子技能(如信用证提取器)或配置 prompt,输出提取结果和路由状态。
金融属性
| 属性 | 值 |
| 任务类型 | 凭证要素结构化提取 |
| 风险等级 | 中(提取错误影响下游审核) |
| 数据依赖 | 凭证类型 + 原始图片 + VL 视觉模型 |
| 决策类型 | 字段提取(非判断型) |
合规要求
| 要求项 | 状态 |
| 监管合规 | 符合 JR/T 0171-2020 C2 级脱敏要求 |
| 免责声明 | 提取结果仅供参考,关键场景需人工验证 |
| 审计日志 | 记录调用链、入参摘要、路由状态、模型版本、时间戳 |
| 引用来源 | 凭证类型预定义列表 |
输入参数
| 参数名 | 类型 | 必填 | 说明 |
| credential_type | str | 是 | 凭证类型名称 |
| images | List[str] | 是 | Base64 编码的图片列表 |
| custom_prompt | str | 否 | 自定义提取 Prompt,覆盖默认配置和专用 Skill |
模型配置:vl_config、llm_config 可选传递。不传时服务端自动注入;传递时使用调用方指定的配置。
输出参数
| 输出名 | 类型 | 说明 |
| success | bool | 是否成功 |
| data | Dict | 提取的字段数据 |
| matched_status | Dict | 路由匹配状态 |
| error | str | 失败时的错误信息 |
matched_status 详情
| 字段 | 类型 | 说明 |
| matched_skill | bool | 是否匹配到专用子技能 |
| matched_prompt | bool | 是否使用配置 prompt |
| credential_type | str | 实际路由到的凭证类型 |
能力清单
-
- 自动路由到专用子技能(如信用证提取器)
-
- 支持自定义 Prompt 提取
-
- 支持多种凭证类型的统一入口
-
- 路由状态透明(matched_skill/matched_prompt)
-
- 支持 Python、CLI、MCP 三种调用方式
工作流程
# Role
你是银行凭证要素提取专家
# Tool Routing 规则(按 priority)
1. 专用子技能(如 credit-letter-extractor)→ 精确提取(优先)
2. 配置 Prompt → Prompt 模板提取(次优先)
3. VL 视觉模型 + 文本 LLM → 通用提取(fallback)
# Selection 策略
- credential_type 已匹配专用Skill → 使用专用Skill提取
- credential_type 有配置Prompt → 使用配置Prompt提取
- credential_type 未匹配 → 使用通用VL+LLM提取
# Fallback
专用Skill失败 → 降级到配置Prompt
配置Prompt失败 → 降级到通用提取
通用提取失败 → 返回提取失败
工作流节点
| 节点 | 模块 | 任务 | 状态 | 检查点 |
| N1-输入校验 | 输入模块 | 校验凭证类型和图片 | 必须 | credential_type非空 |
| N2-路由匹配 | 路由模块 | 匹配专用Skill或配置Prompt | 核心 | 路由状态 |
| N3-提取执行 | 提取模块 | 执行提取(Skill/Prompt/通用) | 核心 | 提取结果 |
| N4-输出组装 | 输出模块 | 组装标准输出 | 必须 | JSON格式合规 |
错误码
| 错误码 | 含义 |
| 1001 | 参数校验失败 |
| 1005 | VL 模型调用失败 |
| 1004 | Skill 调用失败 |
完整错误码列表见 CLI 文档。
输出格式
{
"success": true,
"data": {"lc_number": "LC12345", ...},
"matched_status": {
"matched_skill": true,
"matched_prompt": false,
"credential_type": "信用证"
}
}
系统依赖
| 依赖系统 | 作用 | 必需 |
| credit-letter-extractor | 信用证专用提取 | 否(按类型路由) |
| VL 视觉语言模型 | 图片内容识别 | 是 |
| 文本 LLM | 结构化提取 | 是 |
| Python 3.8+ | 运行环境 | 是 |
MCP 工具调用
| 模块名 | 类型 | 优先级 | 降级策略 |
| 专用子技能 | MCP tool | P0 | 降级到配置Prompt |
| 配置Prompt | MCP tool | P1 | 降级到通用提取 |
| VL视觉模型+文本LLM | MCP tool | P2 | 返回提取失败 |
关联技能
合规约束
- C2 级个人金融信息(身份证号、银行卡号)提取结果中需标注脱敏状态
- 提取结果不保证100%准确,关键场景需人工验证
- 自定义 Prompt 不得包含实际数据值
降级策略
专用子技能失败: 降级到配置 Prompt 提取
配置 Prompt 失败: 降级到通用 VL+LLM 提取
通用提取失败: 返回提取失败错误
记忆管理
会话级缓存:同一凭证类型的提取配置缓存至会话结束,TTL = 会话生命周期
评估指标
| 指标 | 目标 |
| 提取准确率 | ≥ 90%(与人工提取对比) |
| 路由命中率 | ≥ 80%(匹配到专用Skill或Prompt) |
| 单次提取延迟 | ≤ 15s |
审计日志
记录工具调用链、入参(凭证类型/图片数)、路由状态(matched_skill/matched_prompt)、出参摘要(提取字段数)、数据源(模型名称)、时间戳、模型版本
免责声明
本提取结果由 AI Agent 自动生成,仅供参考,关键场景需人工验证。
注意事项
- credential_type 是必填参数,决定路由方向
- custom_prompt 传入时覆盖默认配置和专用 Skill
- matched_status 透明展示路由状态,便于调试
- 支持 Python、CLI、MCP 三种调用方式
结束条件
满足以下任一条件时,结束技能执行:
- 成功输出提取结果
- credential_type 为空(返回错误)
- 图片列表为空(返回错误)
- 所有提取路径均失败(返回提取失败)
输入输出示例
输入:
{ "credential_type": "信用证", "images": ["base64_encoded_image"] }
输出:
{
"success": true,
"data": {"lc_number": "LC12345", "amount": "..."},
"matched_status": {"matched_skill": true, "matched_prompt": false, "credential_type": "信用证"}
}
Python 调用
from credential_extractor import extract
result = extract(
credential_type="信用证",
images=["base64_encoded_image"],
vl_config={"api_key": "your-api-key", "api_url": "...", "model": "..."}
)
CLI 调用
credential-extractor extract \
--type 信用证 \
--images /path/to/lc.jpg \
--vl-api-key ${your-api-key} \
--vl-url ${your-base-url} \
--vl-model ${your-model-name}
自定义 Prompt
result = extract(
credential_type="信用证",
images=["base64_encoded_image"],
vl_config={...},
custom_prompt="请从图像中提取以下字段:信用证号、金额、申请人..."
)
边缘场景
- 空凭证类型:返回错误码 1001
- 图片列表为空:返回错误码 1001
- 专用 Skill 调用失败:降级到配置 Prompt,错误码 1004
- VL 模型调用失败:返回错误码 1005
- 未知凭证类型:使用通用提取,matched_skill=false
文件引用