google/langextract

A Python library for extracting structured information from unstructured text using LLMs with precise source grounding and interactive visualization.

LangExtract – 基于LLM的结构化提取

功能 – LangExtract是一个Python库,可从任何非结构化文本(临床记录、文学作品、报告等)中提取结构化信息(实体、属性、关系)。它将文本与您编写的few-shot提示一起发送给大型语言模型(LLM),然后将每个返回的数据映射回原始文档中的精确字符范围。该库还生成交互式HTML可视化器,以便您在上下文中查看每个提取的高亮显示。

重要性 –

  • 有根据的结果:每个提取都链接到其源位置,使验证变得容易,并支持需要可追溯性的下游管道(例如医疗审计)。
  • 支持长文档:文本自动分块、并行处理,并可运行多次传递以提高召回率。
  • 模型无关:支持Google Gemini(云)、OpenAI模型以及通过Ollama的本地模型;您还可以通过插件系统添加自定义提供程序。
  • 无需微调:您只需提供提示和几个示例;通过提示工程利用LLM的世界知识。

如何开始 –

  1. 使用pip install langextract(或从源代码/Docker)安装。
  2. 编写描述提取任务的简短提示,并提供展示所需输出格式的一个或多个ExampleData对象。
  3. 调用lx.extract(text_or_documents, prompt_description, examples, model_id=…)。
  4. 使用lx.io.save_annotated_documents将结果保存到JSONL文件,并通过lx.visualize生成可视化HTML文件。

典型工作流片段

import langextract as lx, textwrap

prompt = "按出现顺序提取角色、情感和关系。使用精确文本。"
examples = [
    lx.data.ExampleData(
        text="ROMEO. But soft! …",
        extractions=[
            lx.data.Extraction("character", "ROMEO", {"emotional_state": "wonder"}),
            lx.data.Extraction("emotion", "But soft!", {"feeling": "gentle awe"}),
        ],
    )
]

result = lx.extract(
    text_or_documents="Lady Juliet gazed longingly at the stars…",
    prompt_description=prompt,
    examples=examples,
    model_id="gemini-3.5-flash",
)

lx.io.save_annotated_documents([result], "extraction_results.jsonl")
html = lx.visualize("extraction_results.jsonl")
open("visualization.html", "w").write(html.data)

支持的後端 –

  • Google Gemini(云,需要LANGEXTRACT_API_KEY)。
  • OpenAI(gpt‑4o、gpt‑4o‑mini等,可选langextract[openai])。
  • Ollama用于本地模型,如gemma2:2b(无需API密钥)。
  • 自定义提供程序可通过轻量级插件注册表添加为单独包。

可扩展性功能 –

  • 并行分块处理(max_workers)。
  • 多轮提取(extraction_passes)。
  • Vertex AI批处理API集成,用于成本高效的大规模任务。

了解更多 –

  • 实时演示:https://google‑langextract.hf.space/(浏览器中的罗密欧与朱丽叶提取)。
  • docs/文件夹中的完整文档,包括模式使用、批处理API和提供程序插件指南。
  • 长文本、药物提取和放射报告结构化(RadExtract)的示例笔记本。

社区与贡献 – 仓库包含社区构建的模型提供程序列表,并欢迎拉取请求。贡献需要贡献者许可协议。


LangExtract是一个真正的开源项目,致力于LLM驱动的信息提取,完全契合AI/ML工具领域。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目