
ContextGem
ContextGem 是一个免费的开源 LLM 框架,它通过强大的内置抽象和自动化功能,以最少的代码简化从文档中提取结构化数据和见解的过程。
https://github.com/shcherbak-ai/contextgem?ref=aipure&utm_source=aipure

产品信息
更新于:2025年05月09日
什么是 ContextGem
ContextGem 是一个创新的开源框架,旨在简化使用大型语言模型 (LLM) 从文档中提取结构化数据的过程。它由 Shcherbak AI AS 创建,通过提供一个直观、灵活的框架来解决文档分析中需要大量样板代码的常见挑战,从而显着降低开发复杂性。该框架通过 LiteLLM 集成支持基于云和本地的 LLM,包括 OpenAI、Anthropic、Google 和 Azure OpenAI 等提供商,同时为各种文件格式提供内置转换器,尤其擅长 DOCX 转换。
ContextGem 的主要功能
ContextGem是一个开源的LLM框架,它简化了从文档中提取结构化数据和见解的过程,只需最少的代码。它提供了强大的内置抽象,包括自动动态提示、数据建模、参考映射和多语言支持。该框架擅长于集中的文档分析,利用LLM的长上下文窗口来实现卓越的提取准确性,同时通过LiteLLM集成支持基于云和本地的LLM。
自动动态提示和数据建模: 通过自动提示生成和数据验证消除样板代码,从而显著减少开发开销
精确的参考映射: 在段落和句子级别提供精细的参考映射,并为提取推理提供内置的理由
多LLM管道支持: 支持使用多个LLM创建复杂的提取工作流程,这些LLM具有特定于角色的任务和统一的可序列化结果存储
文档格式转换: 内置了各种文档格式(包括DOCX)的转换器,保留了文档结构和丰富的元数据,以改进LLM分析
ContextGem 的使用场景
法律文档分析: 从合同和法律文档中提取关键条款、术语和异常,并进行精确的参考跟踪
财务文档处理: 分析财务报告和文档,提取结构化数据、见解和关键指标,并提供理由
研究文档分析: 从学术论文和研究文档中提取概念、主题和见解,并进行分层方面的分析
多语言文档处理: 处理多种语言的文档,无需特定的提示,从而实现全球文档分析工作流程
优点
复杂文档分析任务所需的最少代码
全面的内置抽象,减少了开发时间
灵活支持云和本地LLM
缺点
专注于单文档分析,而不是跨文档查询
目前不支持语料库范围的检索功能
如何使用 ContextGem
安装 ContextGem: 使用 pip 安装软件包:pip install -U contextgem
导入所需的模块: 导入必要的类:from contextgem import Document, DocumentLLM, StringConcept
创建一个 Document 对象: 使用 Document(raw_text=\'your text here\') 创建一个包含文本内容的 Document 对象
定义要提取的概念: 使用 doc.concepts = [StringConcept(name=\'concept_name\', description=\'concept_description\', add_references=True, reference_depth=\'sentences\', add_justifications=True, justification_depth=\'brief\')] 将概念附加到文档
配置 LLM: 使用您喜欢的模型和 API 密钥设置 DocumentLLM:llm = DocumentLLM(model=\'openai/gpt-4o-mini\', api_key=\'your_api_key\')
提取信息: 使用 LLM 从文档中提取信息:doc = llm.extract_all(doc) 或使用带有 await llm.extract_all_async(doc) 的异步版本
访问结果: 通过 doc.concepts[0].extracted_items 或 doc.get_concept_by_name(\'concept_name\').extracted_items 访问提取的信息
可选:转换 DOCX 文件: 对于 DOCX 文件,请使用 DocxConverter:converter = DocxConverter(); document = converter.convert(\'path/to/document.docx\')
可选:保存结果: 使用内置的序列化方法保存已处理的文档,避免重复 LLM 调用
ContextGem 常见问题
ContextGem是一个免费的开源LLM框架,可以极大地简化从文档中提取结构化数据和见解的过程,只需最少的代码。它提供了灵活、直观的抽象,简化了文档分析,并消除了对大量样板代码的需求。