AI 技术文档

结构化输出

从自然语言转为可校验的数据,区分格式正确、字段完整与事实有据。

先设计数据,再生成内容

当结果需要保存、筛选或交给其他程序时,提前约定字段比事后从一段文字中猜测含义更方便。服务支持的结构化输出可以按 Schema 约束格式;只在提示词里写“输出 JSON”,并不等于启用了这类能力。各平台支持范围不同,可参考 Anthropic 的结构化输出说明。

一个行动项的数据约定

下面是本站的教学数据结构。日期只在原文明确时填写,缺失值使用 null;source_id 和 evidence 用来回查材料。

{
  "task": "整理试运行问题清单",
  "owner": null,
  "due_date": "2026-11-09",
  "source_id": "P-02",
  "evidence": "2026年11月9日为整理试运行问题清单的截止日期,负责人待定。"
}
字段约定校验问题
task非空文本是否描述一个明确任务?
owner文本或空值材料是否明确指定负责人?
due_date日期文本或空值年份和日期是否有依据?
source_id材料编号该材料是否在本次允许范围内?
evidence原文片段是否确实存在于对应材料?

做三层检查

解析检查: 确认响应完整,能够按预期格式读取。超时、截断和拒绝响应应单独处理,不把错误文本当作业务数据。

结构检查: 检查必填字段、类型、枚举值与额外字段。即使使用平台的结构化输出,也应按应用自身的数据约定验证边界。

业务检查: 核对编号、日期和原文证据。满足 Schema 的字符串仍可能包含错误事实;格式约束不能替代来源核对。

失败时给出明确状态

教学流程可以使用 ok、needs_review、failed 三种状态。缺少负责人时保留空值并进入人工核对;证据无法回查时不写入最终行动表;请求失败时保存错误类型,按受限次数重试。

重试前区分原因。缺少输入材料需要补充资料,格式错误需要修正约定,权限错误需要解决访问范围。重复相同请求不一定能解决问题。

动手检查

用一份完整记录和一份故意缺少日期的记录分别测试。确认第二份输出保留空值,而不是编造日期。再修改一个材料编号,确认程序能够发现无效引用。

下一步:RAG 与知识检索,解决材料多到无法全部放进一次请求的问题。