Skip to content

结构化数据抽取用哪个模型 ​

结论先行:抽取任务的成功标准不是「文笔好」,而是字段能解析**。因此选型的核心是「JSON 稳定性 + 单价」,而不是模型排名。站内几个常见的抽取档位:GLM-5.3 Flash 输入 $0.165、GPT-5-mini 输入 $0.275、Gemini 2.5 Flash 输入 $0.33(均每百万 token)。**

抽取档位对照(采集 2026-10-08) ​

模型输入价输出价上下文输入模态
GLM-5.3 Flash$0.165$0.55105 万文本、图像、视频
GPT-5-mini$0.275$2.240 万文本、图像、文件
Gemini 2.5 Flash$0.33$2.75105 万文件、图像、文本、音频、视频
Mistral Medium$1.65$8.2526 万文本、图像、文件

需要读图或读 PDF 时,选择输入模态包含图像/文件的档位(表中模态列已标明)。

让 JSON 稳定下来的四个做法 ​

  1. 给字段定义与示例:字段名、类型、可空性写进提示词
  2. 要求只输出 JSON:明确「不要解释、不要 Markdown 代码块」
  3. 程序侧校验并重试:解析失败时把错误信息回传模型让它修正,最多重试 2 次
  4. 字段缺失用 null:不要让它编造,缺失比错误更安全
python
import json

def extract(text, fields, model="z-ai/glm-5.3-flash", tries=3):
    schema = "、".join(fields)
    prompt = (f"从文本中抽取字段:{schema}。只输出 JSON 对象,缺失字段用 null,不要解释。\n\n{text}")
    for _ in range(tries):
        r = client.chat.completions.create(
            model=model, messages=[{"role": "user", "content": prompt}], max_tokens=800)
        try:
            return json.loads(r.choices[0].message.content.strip())
        except json.JSONDecodeError as e:
            prompt = f"上一次输出无法解析({e})。请只输出合法 JSON。\n\n{text}"
    raise ValueError("抽取失败")

成本测算 ​

每份文档平均 3000 token 输入、200 token 输出,处理 1 万份:输入合计约 30 百万 token、输出约 2 百万 token。

  • 走 GLM-5.3 Flash:输入约 $4.95
  • 走 Gemini 2.5 Flash:输入约 $9.9

抽取类任务的输出极短,因此成本几乎完全由输入价决定——这也是为什么低价档 + 严格校验能同时满足成本与质量。

常见问题 ​

抽取失败率高怎么办? ​

先看失败原因:多数是输出夹带解释文本。加强「只输出 JSON」约束并在程序侧重试,通常能显著改善。

复杂表单(跨页、手写)怎么处理? ​

用支持图像输入的档位先把页面转成结构化描述,再做字段抽取,分两步通常比一步更稳。

需要人工复核吗? ​

建议按 1%~3% 抽样,重点核对金额、日期、编号这三类字段。

价格采集时间? ​

2026-10-08;站内价 = OpenRouter 挂牌 ×1.1。


👉 立即注册,0 元尝鲜套餐试用

相关阅读:customer-support-bot | multimodal-vision | node-openai-sdk

Ulnvault — 40 个顶级 AI 模型,一个账号全打通