LangExtract 是 Google 提供的 Python 库,用于使用大语言模型从非结构化文本中抽取结构化、带源锚定的信息。它适合从医疗笔记、报告、文档等非结构化文本中抽取结构化实体,将抽取结果映射回原文精确位置,处理超出模型 token 限制的长文档,用交互式 HTML 高亮可视化抽取结果,从病历抽取临床信息,结构化放射或病理报告,从临床笔记抽取药物、诊断或症状,分析文学文本中的人物、情感与关系,构建领域专属抽取流水线,以及配合 Gemini、OpenAI 或本地模型(Ollama)使用,并在不进行微调的情况下生成符合模式的输出。
核心特性包括:源锚定,每条抽取结果都映射到源文本中的精确位置;结构化输出,通过受控生成得到符合模式的结果;长文档处理,提供智能分块与多轮抽取;交互式可视化,生成自包含 HTML 以便在语境中审查抽取结果;灵活的模型支持,可配合 Gemini、OpenAI 与本地模型;少样本学习,只需高质量示例,无需昂贵的微调。
使用方式方面,前置条件为 Python 3.8 或更高版本,以及 Gemini(AI Studio)、OpenAI 或本地 Ollama 的 API 密钥。安装命令包括:pip install langextract;pip install langextract[openai];pip install langextract[dev]。从源码安装:git clone https://github.com/google/langextract.git,cd langextract,pip install -e .,pip install -e ".[test]"。Docker 安装:docker build -t langextract .;docker run --rm -e LANGEXTRACT_API_KEY="your-api-key" langextract python your_script.py。API 密钥可通过环境变量设置,例如 export LANGEXTRACT_API_KEY="your-gemini-api-key"、export OPENAI_API_KEY="your-openai-api-key",或使用 .env 文件。
基本使用流程为:定义抽取任务提示,提供少样本示例(lx.data.ExampleData 与 lx.data.Extraction),传入待抽取文本,调用 lx.extract(...),读取 result.extractions 中的抽取结果,再用 lx.io.save_annotated_documents(...) 保存为 JSONL,并通过 lx.visualize(...) 生成 HTML 可视化。核心概念涵盖抽取类别、源锚定(start_char 与 end_char)、属性(attributes)、少样本学习以及长文档处理(extraction_passes、max_workers、max_char_buffer)。配置上可选择 Gemini、OpenAI、Ollama 模型,支持 Vertex AI、批量处理等后端配置与环境变量。文档还给出临床笔记抽取、放射报告结构化、多文档处理、交互式可视化、自定义 Provider 插件等常见模式。
适用场景包括医疗与临床文本结构化、文学文本分析、领域专属抽取流水线等。限制方面,资料未提供具体的收费、价格、性能或效果数据;使用需自备相应模型 API 密钥或本地模型环境;部分模型配置(如 OpenAI 需 fence_output=True、use_schema_constraints=False)需按文档调整。