生产使用场景

用于结构化数据抽取的 LLM API

运营管道从邮件发票中抽取供应商、发票号、币种、总额、税额和到期日。Gemini 2.5 Flash 接收 OCR 文本和布局提示,必须返回一个带版本的 JSON 对象。

将文档字段转换为通过 Schema 验证的 JSON
用于结构化数据抽取的 LLM API

生产方案

API、主模型与故障切换配置

生产选择推荐配置原因
APIPOST /v1/chat/completions从服务端发送 OpenAI 兼容请求
主模型gemini-2.5-flashGemini 2.5 Flash 是当前目录中用于高吞吐抽取的主路由。
备用模型gpt-5.4-mini某类固定文档上 gpt-5.4-mini 表现更好时可作为备用;长文档或布局复杂文档升级到 Gemini 2.5 Pro。
升级模型gemini-2.5-pro只有主路由越过已定义的质量或复杂度边界时才使用
输出契约经过验证的 JSON严格的 invoice.v3 JSON:字段类型正确、缺失值为 null、每个值包含来源范围。
01
业务场景

结构化数据抽取在生产应用中的实际场景

运营管道从邮件发票中抽取供应商、发票号、币种、总额、税额和到期日。Gemini 2.5 Flash 接收 OCR 文本和布局提示,必须返回一个带版本的 JSON 对象。

缺失字段保持 null。总额存在歧义时返回候选值和来源范围。管道在接受记录前验证类型和算术;失败进入修复或审查。

02
应用架构

结构化数据抽取工作流怎样运行

  • 执行 OCR 并保留来源范围。
  • 把 Schema 版本与文档一起发送。
  • 要求严格 JSON,缺失数据使用 null。
  • 验证 Schema、币种、总额、日期和证据范围。
  • 接受、修复一次,或进入人工审查。
03
API 请求

通过 LLMFly AI 调用 gemini-2.5-flash

请求应从服务端发送。请将示例内容和占位工具 Schema 替换为应用中的真实数据与工具。

request.example可复制示例
curl https://app.llmfly.ai/v1/chat/completions \
  -H "Authorization: Bearer $LLMFLY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-2.5-flash",
    "messages": [
      {"role": "system", "content": "Extract one invoice into the supplied JSON schema. Use null for absent fields. Include a source span for every non-null value. Never guess."},
      {"role": "user", "content": "Extract this invoice using schema invoice.v3."}
    ],
    "response_format": {"type": "json_object"}
  }'
04
模型选择

为什么主模型选择 gemini-2.5-flash

Gemini 2.5 Flash 是当前目录中用于高吞吐抽取的主路由。

某类固定文档上 gpt-5.4-mini 表现更好时可作为备用;长文档或布局复杂文档升级到 Gemini 2.5 Pro。

05
验收

结构化数据抽取的验收条件

指标通过条件
Schema 有效响应率响应无需修复即可通过带版本的 Schema 验证
逐字段准确率与召回率每个关键字段分别达到已定义的准确率和召回率目标
无依据值比例每个值都有支持它的来源范围或明确的派生规则
每条有效记录的成本生成、验证、修复和审查总成本不超过处理预算
06
失败处理

上线前必须处理的失败情况

  • 把有效 JSON 当成正确数据
  • 猜测缺失字段
  • 修改 Schema 却不做版本管理
  • 用平均值掩盖关键错误
07
输出

返回结果与运行记录

严格的 invoice.v3 JSON:字段类型正确、缺失值为 null、每个值包含来源范围。

每次生产运行都应记录模型 ID、Request ID、Token 用量、重试、验证结果和最终处理状态。

常见问题

有效 JSON 就够了吗?

不够。先验证 Schema,再把每个抽取值与来源证据对照。

缺失值怎样表示?

明确契约,例如缺失用 null,歧义使用单独状态。

哪个指标最重要?

逐字段报告准确率和召回率,尤其关注会触发动作的字段。

使用你的真实输入测试这套方案

让主模型和备用模型使用相同请求、工具和验证规则。

比较模型