技巧 · Google Cloud Blog & Gemini API Documentation
使用Gemini的JSON Schema约束从文档中提取结构化数据
图片: Markus Spiske 来自 Unsplash
Gemini的结构化输出模式将响应强制约束为预定义的JSON模式,消除了自由格式文本解析的不一致性。这项技术将文档处理——发票、报告、合同、表单——从脆弱的文本抓取转变为可靠、可投入生产的数据库集成和自动化工作流数据提取。
让语言模型从文档中提取数据通常返回的是你随后需要解析的文本:有时是JSON,有时是段落,有时介于两者之间。这种不可预测性会破坏自动化流水线。Gemini的结构化输出模式通过将模型输出约束为符合你预先定义的模式来解决这个问题。无需解析Gemini返回的任何内容,你指定精确的结构——字段名、数据类型、必填字段、枚举——模型每次都会返回有效的、类型化的输出。
工作流程从定义模式开始。对于发票提取系统,你可能会指定:标题(字符串)、发票编号(字符串)、日期(字符串)、明细项目(对象数组,包含项目名称、数量、单价、小计)、总金额(数字)和付款条款(字符串)。你将此模式连同文档一起传递给Gemini,模型返回严格符合该结构的JSON。没有解析错误,没有类型不匹配,没有字段意外以字符串形式出现而你系统期望数字的边界情况。
在实际工作流中的实用性差异立竿见影。一个每月处理200张发票的应付账款团队此前将数据提取到电子表格中,手动修复格式错误,然后上传到会计系统。有了结构化输出,他们将发票PDF上传到Gemini,几秒钟内获得验证过的JSON,直接导入系统——零人工干预。一个对法律文档进行分类的合规团队不仅返回分类结果,还以预定义结构返回提取的元数据(涉及方、合同类型、续约日期、责任上限),该结构与其文档管理系统集成。
Gemini 2.0及更高版本模型可处理多达100万token的文档,这意味着你可以单次请求发送整份多页报告、合同或财务报表,无需分块或丢失上下文。该模型还保留视觉结构——表格仍然是表格,不会被展平为列表——这对于从复杂布局中准确提取数据至关重要。对于开发者来说,这消除了对脆弱的正则表达式解析或手写输出验证器的需求。约束发生在模型层面,使Gemini成为一个可靠的数据提取引擎,而不是一个你之后还得清理的文本生成器。
来源与版权