contextgem

用几行代码从文档中抽取结构化数据,告别繁琐提示词

ContextGem 是一个专注于从文档中提取结构化信息的 Python 库,旨在简化 LLM 在文档解析和信息抽取任务中的使用流程。它解决了传统 LLM 提取过程中需要编写大量提示词、处理输出格式、管理上下文窗口等痛点,提供了一套简洁的 API,让开发者能够快速定义数据模型,并自动将文档内容映射到模型字段。其核心能力包括:基于 Pydantic 的声明式数据模型定义、自动分块与上下文管理、多模型后端支持(如 OpenAI、Anthropic 等)、以及内置的提取结果校验与修正机制。通过 ContextGem,用户无需深入 LLM 细节,即可高效地从 PDF、Word、网页等各类文档中抽取实体、关系、表格等结构化数据,适用于合同审核、简历解析、研究报告分析等场景。项目代码清晰,文档齐全,处于快速迭代阶段。

开源 free 开源模型
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 2005
维护状态 维护中
是否开源 是
定价模式 free

项目数据

分类开源模型
开发团队shcherbak-ai
所属国家
定价模式free
价格说明开源项目,Apache-2.0许可证,可免费使用和部署。
访问状态
是否开源是
开源协议Apache-2.0
主要语言Python
技术栈/模型ai,autoprompting,contract-analysis,data-extraction,document-intelligence,generative-ai,legaltech,llm,llm-extraction,llm-framework,llm-pipeline,llms,nlp,prompt-engineering,text-analysis,unstructured-data
GitHub 星标★ 2005
30天Star增速
HF 下载量
上线时间2024-10-11 00:00:00
最近更新2026-09-22 00:00:00
维护状态维护中
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-09
浏览次数3

使用教程

难度:入门 约 10 分钟 部署方式:库/依赖 5 步

环境要求

  • Python 3.10 / 3.11 / 3.12 / 3.13 / 3.14
  • 可用的 Python 包管理工具:pip 或 uv(uv 为官方推荐)
  • 一个可调用的 LLM 后端及其 API Key(如 OpenAI)

安装与启动步骤

  1. 1安装 ContextGem

    用 pip 安装官方发布的 contextgem 包,-U 参数确保升级到最新版本。

    pip install -U contextgem
  2. 2用 uv 安装(可选)

    如果你使用 uv 管理依赖,可用 uv add 把 contextgem 加入项目依赖,README 中推荐这种方式。

    uv add contextgem
  3. 3导入核心类

    ContextGem 的主要入口是 Document、DocumentLLM 和 StringConcept 三个类,按需导入即可。

    from contextgem import Document, DocumentLLM, StringConcept
  4. 4配置 LLM 后端

    创建 DocumentLLM 实例,model 使用「提供商/模型名」格式,api_key 填你自己的密钥。

    llm = DocumentLLM(
        model="openai/gpt-5-mini",  # or another provider/LLM
        api_key="sk-xxxxxxxx",
    )
  5. 5执行抽取

    把定义好的 Document 交给 LLM 一次性抽取全部 aspect 与 concept,返回填充好结果的 document。

    document = llm.extract_all(document)

关键配置

配置项必填说明示例
model是指定使用的 LLM,格式为提供商/模型名openai/gpt-5-mini
api_key是调用对应 LLM 服务所需的 API 密钥sk-xxxxxxxx

如何确认成功

extract_all 正常返回填充了抽取结果的 document 对象、且未抛出异常即视为运行成功。

常见问题

Q:支持哪些 Python 版本?

A:README 徽章显示支持 Python 3.10、3.11、3.12、3.13、3.14。

Q:一定要用 OpenAI 的模型吗?

A:不是。DocumentLLM 的 model 可换成其他提供商或本地 LLM,填写对应的 model 与 api_key 即可。

Q:单个模型效果不理想怎么办?

A:可使用 LLM Group:给一组 LLM 分配不同角色,把不同 aspect/concept 路由到专用模型,例如简单抽取与推理任务分开。

Q:pip 和 uv 装哪个?

A:README 推荐 uv(uv add contextgem),用 pip 时执行 pip install -U contextgem 即可,两者选其一。

注意事项

  • README 的 Quick Start 示例被截断,完整用法请参考官网 Quick Start 页面。
  • DocumentLLM 支持备用模型(fallback models)与基于角色的任务路由。
  • 官方示例中的 api_key 需替换为你自己的真实密钥,不要提交到代码仓库。
  • 更多 Aspect/Concept 抽取示例见官网 Basic usage 与 Advanced usage 章节。

核心亮点

  • 基于 Pydantic 声明式定义提取模型,代码简洁且类型安全
  • 自动处理文档分块和上下文窗口,降低长文档提取难度
  • 内置结果校验与修正,提升提取准确性和可靠性

不足之处

  • 主要面向 Python 生态,不支持其他语言
  • 文档/社区待观察

适用场景

  • 合同关键条款自动提取与审核
  • 简历信息解析并录入 HR 系统
  • 研究报告或论文中结构化数据抽取

替代项目

LangChain、LlamaIndex、Instructor

项目介绍

contextgem 是搜索知识领域的开源项目,由 shcherbak-ai 开发,2024 年首次发布。

在全站 13,014 个收录项目中,它的 GitHub 星标数(2,005)位列前 30%,在搜索知识分类中处于中上游。

近 42 天,它的 GitHub 星标从 1,974 增加到 2,005,净增 31。

项目仍在小幅维护中,最近一次代码更新于 2026-09-22。Apache-2.0许可证,可免费使用和部署。

它主要面向的使用场景是:合同关键条款自动提取与审核。同类可对比的替代方案包括 LangChain、LlamaIndex、Instructor。

上一篇:ai-knowledge-graph

下一篇:llm-wiki-compiler

同类项目推荐

firecrawl 开源

网页抓取像喝水一样简单,开发者省下整周加班

The web data API to search, scrape, and interact at scale.

★ 183325 2026-08-09
contoso-chat 开源

一键跑通 Azure RAG 应用,从代码到评估部署全流程

This sample has the full End2End process of creating RAG application with Prompty an···

★ 766 2026-08-09
graphify 开源

整个代码库画成一张图,找问题一眼定位

Turn any codebase, with its docs, SQL schemas, configs, and PDFs, into a queryable k···

★ 120493 2026-08-09
ragflow 开源

让大模型用上你的私有知识,搭建可靠的企业级RAG应用

RAGFlow is a leading open-source Retrieval-Augmented Generation (RAG) engine that fu···

★ 91170 2026-08-09