contextgem

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

开源 🏷️完全免费 🔧 仅开源项目,无在线服务,需自行部署 开源模型 🍴 复刻 190 👀 关注 13
访问官网 ↗ GitHub ↗
GitHub 星标 ★ 2077
维护状态 较活跃
是否开源 开源
定价模式 🏷️完全免费 开源项目,Apache-2.0许可证,可免费使用和部署。

项目预览

contextgem 项目界面预览图
图片来源:项目官网

项目数据

分类开源模型
开发团队shcherbak-ai
定价模式🏷️完全免费
价格说明开源项目,Apache-2.0许可证,可免费使用和部署。
访问状态🔧 仅开源项目,无在线服务,需自行部署
是否开源是
开源协议Apache-2.0
主要语言Python
技术栈/模型ai,data-extraction,decision-models,document-ai,document-intelligence,document-processing,generative-ai,information-extraction,jev,legal-tech,legaltech,llm,llm-framework,llms,multimodal-ai,nlp,prompt-engineering,structured-output,text-analysis,unstructured-data
GitHub 星标★ 2077
上线时间2024-10-11 00:00:00
代码更新2026-10-28
仓库体积80.7 MB
本站数据更新2026-11-09
维护状态较活跃
收录时间2026-08-09
浏览次数4

项目介绍

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

Star 增长趋势

本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整

数据来源:GitHub API 逐日快照 · 收录于 2026-08-09 · 当前星标 ★ 2077

使用教程

ℹ 本教程由 AI 依据该项目 README 整理,个别步骤可能需要按你的环境微调。

难度:入门 约 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

上一篇:ai-knowledge-graph

下一篇:llm-wiki-compiler

同类项目推荐

xerj 开源

资料自动编好索引,AI 找答案省时又省钱

AI search engine and MCP server for bots and agents. One Rust binary indexes code, d···

★ 18609 2026-08-09
llm-rankers 开源

用大模型给搜索结果重排序,几行代码跑通评测

Document Ranking with Large Language Models.

★ 214 2026-09-25
MimirQ 开源

中文企业知识库,从解析到引用全流程可控,直接接入 Dify 用

中文优先的企业 RAG 知识库:可控解析、治理、切块、混合检索、重排、引用、图谱、评测与 ···

★ 594 2026-08-09
aixplora 开源

上传任意文件,用聊天方式秒速查询内容

AIxplora is a open-source tool which let's you query all kind of files not limited t···

★ 270 2026-08-09
RAGNotebook 开源

让笔记变聪明,用自然语言问你的知识库

基于LangChain、LangGraph、FastAPI和React的RAG项目,主分支为基于知识图谱的知识管理平台···

★ 485 2026-08-09
amazon-bedrock-rag 开源

在 AWS 上快速部署托管 RAG,无需自建向量库

Fully managed RAG solution implemented using Knowledge Bases for Amazon Bedrock

★ 213 2026-08-09
haiku.rag 开源

用 LanceDB + Pydantic AI 快速搭建生产级智能 RAG 应用

Agentic RAG for local and self-hosted document search: hybrid retrieval, reranking a···

★ 654 2026-08-09
VisRAG 开源

不解析文档,直接看图检索,提升 RAG 准确率

Parsing-free RAG supported by VLMs

★ 989 2026-08-09