开源提取服务:从非结构化文本中提取结构化数据
LangChain 发布了一个开源提取服务的托管版本,支持从 PDF、HTML 和文本文件中提取结构化数据。该服务免费使用,但不宜用于生产环境或敏感数据。它允许用户定义提取模式、添加少量示例,并切换不同的 LLM 模型。通过一个简单的用户界面,开发者可以快速实验并集成到自己的 LangChain 工作流中。
2024年3月26日,LangChain 宣布推出其最新的开源用例加速器:一项用于从非结构化来源(如文本和 PDF 文档)中提取结构化数据的服务。今天,该服务以托管版本的形式公开,并提供简单的用户界面。该应用程序免费使用,但不宜用于生产工作负载或敏感数据。其目的是展示 2024 年在这一类别中可以实现的功能,并帮助开发者快速上手构建自己的应用程序。
为什么现在推出? 结构化数据提取已成为大语言模型的一个宝贵用例,模型能够推理非结构化文本中的歧义,将信息强制转化为所需的模式。模型提供商越来越多地支持长上下文窗口和函数调用功能,这两者都是数据提取的关键特性。LangChain 最近改进了对数据提取的支持,使开发者能够轻松处理各种文件类型、模式格式、模型、少量示例和提取方法(例如工具调用、JSON 模式或解析)。托管一个参考应用程序可以让用户体验最新的工具,并将其与底层的开源实现联系起来。
主要功能包括:支持 PDF、HTML 和文本文件;定义和持久化带有自定义模式和指令的提取器;添加少量示例用于上下文学习;在用户之间共享提取器;切换 LLM 模型;核心提取逻辑的 LangServe 端点,可接入您自己的 LangChain 工作流;一个前端界面,允许用户用自然语言定义提取模式、与其他用户共享,并在文本或文件上进行测试(目前尚不支持少量示例)。
该博客文章通过一个从 Uber 2023 年第四季度财报电话会议中提取财务数据的示例,详细演示了如何使用该服务。示例代码展示了如何定义 Pydantic 模式、创建提取器、提交 PDF 文件并解析结果。还展示了如何通过添加少量示例来改进输出格式,以及如何通过 LangServe 接口将提取逻辑集成到更大的检索链中。整个流程强调了该服务的易用性和灵活性,并邀请开发者反馈和贡献。
在示例中,用户首先需要获取 PDF 文件内容,并生成一个唯一的用户标识符,该标识符控制对提取器和其他工件的访问。然后,使用 Pydantic 定义一个包含名称、数值、规模、时间段和证据字段的财务数据结构,并将其发布到服务器创建一个提取器。接着,通过向提取端点发送请求,从 Uber 的财报 PDF 中提取数据。初始提取结果中,规模字段的输出与预期格式不符(如“million”而非“MM”),通过添加一个包含示例输入和期望输出的少量示例,重新运行后格式得到纠正。此外,服务还提供了 LangServe 客户端接口,允许开发者将提取逻辑作为可运行组件集成到更大的链或代理工作流中,例如结合检索增强生成(RAG)场景,先检索相关文档再进行提取。
这一服务展示了 LangChain 在结构化数据提取方面的最新进展,为开发者提供了一个快速试验和构建提取应用的平台。LangChain 邀请社区提供反馈并贡献代码,以进一步改进提取能力。