Skip to main content
本教程面向信息提取场景,展示如何利用 xParse Extract API 作为数据底座,构建能够从非结构化文档中提取结构化信息(如发票、医疗票据、合同、简历、产品规格、API接口等)并自动整理的智能Agent。

场景介绍

业务痛点

在信息提取场景中,企业和开发者面临以下挑战:
  • 文档格式多样:需要处理发票、医疗票据、合同、简历、产品文档、技术文档等多种格式
  • 信息提取繁琐:需要从非结构化文档中提取结构化信息(发票信息、医疗费用、合同条款、个人信息、工作经历、产品参数、API接口等)
  • 数据标准化困难:不同来源的数据格式不统一,需要标准化处理
  • 批量处理需求:需要处理大量文档,手动提取效率低
  • 数据验证:提取的数据需要验证和校验,确保准确性
  • 财务合规:发票和医疗票据需要符合财务和税务要求
  • 法律风险:合同信息提取需要准确识别关键条款和风险点

解决方案

通过构建信息提取 Agent,我们可以实现:
  • 一步完成解析与提取:使用 xParse Extract API,文档解析与结构化抽取在一次 API 调用中完成,无需分步处理
  • Schema 驱动提取:通过定义 JSON Schema 精确控制提取字段和格式,确保输出一致性
  • 数据标准化:将提取的信息转换为标准格式(JSON、CSV等)
  • 数据验证:验证提取的数据完整性和准确性
  • 批量处理:支持批量处理大量文档
  • 财务自动化:自动提取发票和医疗票据信息,支持财务系统对接
  • 合同分析:提取合同关键信息,识别重要条款和风险点

架构设计

核心流程
  1. 每个提取工具定义专属的 JSON Schema,描述需要提取的字段和结构
  2. 调用 xParse Extract API,传入文档文件和 Schema,一步完成解析与结构化抽取

环境准备

提示:TEXTIN_APP_IDTEXTIN_SECRET_CODE 参考 API Key,请登录 Textin 工作台 获取。示例中使用 通义千问 的大模型能力,其他模型用法类似。

Step 1:配置 Extract API

定义通用的 Extract API 调用函数和文件路径解析辅助函数:

Step 2:构建 LangChain Tools

定义提取 Schema

为每种文档类型定义专属的 JSON Schema,精确控制提取字段:

Tool 1: 提取发票信息

Tool 2: 提取医疗票据信息

Tool 3: 提取合同信息

Tool 4: 提取简历信息

Tool 5: 提取产品规格

Tool 6: 提取 API 信息

Tool 7: 数据格式化

组装所有Tools

Step 3:配置 LangChain Agent

Step 4:完整示例代码

使用示例

示例1:提取发票信息

示例2:提取医疗票据信息

示例3:提取合同信息

示例4:提取简历信息

示例5:提取产品规格

示例6:提取API信息

最佳实践

  1. Schema 设计:为每种文档类型设计专属的 JSON Schema,精确定义需要提取的字段、类型和约束,确保输出格式一致
  2. 批量处理:支持批量处理多个文档,提高效率
  3. 格式标准化:将提取的数据转换为标准格式(JSON、CSV),便于后续处理
  4. 财务文档处理
    • 发票提取时重点关注发票代码、号码、金额等关键信息
    • 医疗票据提取时注意区分自费、医保支付等不同费用类型
    • 确保金额计算的准确性,支持财务系统对接
  5. 合同文档处理
    • 重点关注合同双方信息、合同金额、关键条款
    • 识别违约责任、争议解决等重要条款
    • 提取合同有效期,便于合同管理
  6. 引用溯源:对需要审核的场景,可以在调用 extract_from_file 时设置 generate_citations=True,获取提取结果在原文中的引用位置
  7. 错误处理:对提取失败的情况进行记录和人工复核,检查 API 返回的错误信息
  8. 性能优化:Extract API 在服务端完成解析和抽取,无需本地部署解析引擎,适合大规模批量处理

常见问题

Q: 如何提高提取准确率?
A: 1) 优化 JSON Schema,精确定义字段和描述信息;2) 确保文档清晰,避免模糊或低质量的扫描件;3) 对提取结果进行验证和校验。
Q: 如何处理格式不统一的文档?
A: 1) Extract API 支持多种文档格式(PDF、Word、Excel、图片等),会自动处理格式差异;2) 通过 Schema 统一输出格式;3) 人工校验和修正。
Q: 如何批量处理大量文档?
A: 1) 遍历文档目录,逐个调用提取工具;2) 并行处理多个文档(使用多线程或异步);3) 使用队列管理任务,避免并发过高。
Q: 发票信息提取不准确怎么办?
A: 1) 确保发票图片清晰;2) 优化 Schema 中的字段描述;3) 启用 generate_citations=True 检查引用位置,排查问题字段;4) 对于特殊格式的发票,可以调整 Schema 适配。
Q: 医疗票据的费用明细如何提取?
A: 1) MEDICAL_BILL_SCHEMA 已定义费用明细数组,包含项目名称、数量、单价、金额、医保类型等字段;2) 费用汇总包含总费用、自费金额、医保支付、个人支付等;3) Extract API 能自动识别表格结构。
Q: 合同关键条款如何识别?
A: 1) CONTRACT_SCHEMA 已定义关键条款字段(付款方式、交付方式、违约责任、争议解决);2) 可以根据业务需求扩展 Schema,添加更多条款字段;3) 启用 citations 获取条款在原文中的位置。

相关文档