| name | extractor-credit-letter-factor-extract-202607 |
| description | 信用证要素结构化提取技能,两阶段流水线(VL转HTML+8LLM并行提取),支持50+字段提取。触发词:信用证提取、LC提取、信用证字段、Letter of Credit |
| version | 3.0.0 |
credit-letter-extractor
角色定义
扮演信用证要素提取专家。通过两阶段流水线(VL 视觉模型将信用证图像转换为 HTML,8 个文本 LLM 提示词并行提取不同字段组),从信用证图像中提取 50+ 个结构化字段。
所属领域
银行凭证智能提取
触发条件
当用户提及或需要进行以下场景时触发:
- 从信用证(Letter of Credit)图像中提取结构化字段
- 信用证要素提取、LC字段提取
- BIC、信用证号、金额、申请人、受益人等字段提取
- 信用证提取、LC提取、Letter of Credit
前置条件
在开始工作前,确认以下条件满足:
- 提供信用证图片(文件路径或 base64 编码)
- VL 视觉模型配置可用(第一阶段)
- 文本 LLM 配置可用(第二阶段,不提供时使用 vl_config)
目标
从信用证图像中提取 50+ 个结构化字段(BIC、信用证号、金额、申请人、受益人、货物描述、单据要求等),采用两阶段流水线提高提取精度。
金融属性
| 属性 | 值 |
| 任务类型 | 信用证要素结构化提取 |
| 风险等级 | 中(提取错误影响业务判断) |
| 数据依赖 | 信用证图片 + VL模型 + 文本LLM |
| 决策类型 | 字段提取(非判断型) |
合规要求
| 要求项 | 状态 |
| 监管合规 | 符合 JR/T 0171-2020 C2 级脱敏要求 |
| 免责声明 | 提取结果仅供参考,关键业务需人工验证 |
| 审计日志 | 记录调用链、入参摘要、模型版本、时间戳 |
| 引用来源 | 信用证标准字段列表 |
输入参数
| 参数名 | 类型 | 必填 | 说明 |
| images | List[str] | 是 | Base64 编码的信用证图片列表 |
| llm_config | dict | 否 | 文本LLM配置(第二阶段),不提供则使用 vl_config |
| custom_prompt | str | 否 | 自定义提取 Prompt,传入时使用单一提示词模式 |
模型配置:vl_config 可选传递。不传时服务端自动注入;传递时使用调用方指定的配置。通过 credential-extractor 框架调用时自动路由到此技能。
输出参数
| 输出名 | 类型 | 说明 |
| success | bool | 是否成功 |
| data | Dict | 提取的 50+ 字段数据 |
| html_contents | List[str] | VL阶段输出的HTML内容 |
| raw_responses | Dict | 8个LLM并行提取的原始响应 |
能力清单
-
- 两阶段流水线提取(VL转HTML + 8LLM并行提取)
-
- 支持 50+ 个字段(BIC、信用证号、金额、申请人、受益人等)
-
- 8个LLM提示词并行提取不同字段组,最后合并输出
-
- 支持通过 credential-extractor 框架调用
-
- 支持自定义 Prompt 单一模式提取
工作流程
# Role
你是信用证要素提取专家
# Tool Routing 规则(按 priority)
1. VL 视觉模型 → 图像转HTML(第一阶段)
2. 8个文本LLM并行 → 字段组提取(第二阶段)
# Selection 策略
- custom_prompt传入: 使用单一提示词模式
- 无custom_prompt: 使用8并行提示词模式
# Fallback
VL阶段失败 → 无法执行第二阶段,返回提取失败
单一LLM失败 → 其他LLM继续提取,缺失字段标注"提取失败"
工作流节点
| 节点 | 模块 | 任务 | 状态 | 检查点 |
| N1-输入校验 | 输入模块 | 校验图片非空 | 必须 | 图片数≥1 |
| N2-VL转HTML | VL模型模块 | VL模型将图像转换为结构化HTML | 核心 | HTML输出 |
| N3-LLM并行提取 | 8×文本LLM | 8个提示词并行提取不同字段组 | 核心 | 8组提取结果 |
| N4-合并输出 | 后处理模块 | 合并8组提取结果为统一输出 | 必须 | 字段数据完整 |
| N5-输出组装 | 输出模块 | 组装标准输出 | 必须 | JSON格式合规 |
架构说明
采用两阶段流程:
- VL 阶段:VL 模型将信用证图像转换为结构化 HTML
- LLM 阶段:8 个 LLM 提示词并行提取不同字段组,最后合并输出
详细字段分配见 scripts/configs/SKILL.yaml。
输出格式
{
"success": true,
"data": {"lc_number": "LC12345", "amount": "...", ...},
"html_contents": [...],
"raw_responses": {...}
}
系统依赖
| 依赖系统 | 作用 | 必需 |
| VL 视觉语言模型 | 第一阶段:图像转HTML | 是 |
| 文本 LLM | 第二阶段:字段组提取 | 是 |
| credential-extractor | 框架路由 | 否(可选独立调用) |
| Python 3.8+ | 运行环境 | 是 |
MCP 工具调用
| 模块名 | 类型 | 优先级 | 降级策略 |
| VL视觉模型 | MCP tool | P0 | VL失败则整体提取失败 |
| 8×文本LLM | MCP tool | P1 | 单个LLM失败不影响其他,缺失字段标注"提取失败" |
| credential-extractor | MCP tool | P2 | 独立调用时不需要框架 |
关联技能
合规约束
- C2 级个人金融信息(申请人/受益人姓名、账号等)提取结果需标注脱敏状态
- 提取结果不保证100%准确,关键业务需人工验证
- 8并行LLM中单一失败不影响其他,缺失字段标注"提取失败"
降级策略
VL 阶段失败: 整体提取失败,无法进入第二阶段
单一 LLM 失败: 其他 LLM 继续提取,缺失字段标注"提取失败"
8 LLM 全部失败: 返回提取失败错误
记忆管理
会话级缓存:同一信用证图片的 HTML 转换结果缓存至会话结束,TTL = 会话生命周期
评估指标
| 指标 | 目标 |
| 字段提取准确率 | ≥ 90%(与人工提取对比) |
| 两阶段流水线延迟 | ≤ 60s |
| 并行提取成功率 | ≥ 6/8(至少6个LLM成功) |
审计日志
记录工具调用链、入参(图片数)、VL阶段输出(HTML长度)、LLM阶段输出(8组提取字段数)、数据源(模型名称)、时间戳、模型版本
免责声明
本提取结果由 AI Agent 自动生成,仅供参考,关键业务需人工验证。
注意事项
- 两阶段流水线,VL 失败会导致整体提取失败
- 8 并行 LLM 中单一失败不影响其他,缺失字段标注"提取失败"
- custom_prompt 传入时使用单一提示词模式,不使用 8 并行
- 通过 credential-extractor 框架调用时自动路由
结束条件
满足以下任一条件时,结束技能执行:
- 成功输出 50+ 字段提取结果
- 图片列表为空(返回错误)
- VL 阶段失败(返回提取失败)
- 所有 LLM 阶段均失败(返回提取失败)
输入输出示例
输入:
{ "images": ["base64_encoded_image"] }
输出:
{ "success": true, "data": {"lc_number": "LC12345", "amount": "..."}, "html_contents": [...], "raw_responses": {...} }
独立调用(Python)
from scripts.extractor import extract
result = extract(
images=["base64_encoded_image"],
vl_config={"api_key": "${your-api-key}", "api_url": "...", "model": "Qwen/Qwen3-VL-8B-Instruct"}
)
通过 credential-extractor 调用
from credential_extractor import extract
result = extract(
credential_type="信用证",
images=["base64_encoded_image"],
vl_config={"api_key": "${your-api-key}", "api_url": "...", "model": "..."}
)
边缘场景
- 空图片列表:返回错误
- 图片非信用证内容:VL可能无法转换,返回提取失败
- VL阶段超时:返回提取失败
- 单一LLM提取字段不完整:缺失字段标注"提取失败"
文件引用