海外访问:www.kdjingpai.com
Ctrl + D 收藏本站

OntoCast 是一个开源框架,托管在 GitHub 上,专注于从文档中提取语义三元组,构建知识图谱。它结合了本体管理、自然语言处理和知识图谱序列化技术,将非结构化文本转化为结构化、可查询的数据。OntoCast 采用本体驱动的提取方式,确保语义一致性,支持多种文件格式,如文本、JSON、PDF 和 Markdown。用户可以通过本地运行或 REST API 使用,支持 OpenAI 或本地模型(如通过 Ollama)。它的核心特色是自动化本体创建、实体消歧和语义分块,适合需要从复杂文档中提取结构化信息的场景。项目提供详细的文档和 Docker 配置,便于快速部署和使用。

 

功能列表

  • 语义三元组提取:从文档中提取主语-谓语-宾语三元组,构建知识图谱。
  • 本体管理:自动创建、验证和优化本体,确保语义一致性。
  • 实体消歧:解决文档中跨块的实体引用问题,提升数据准确性。
  • 多格式支持:处理文本、JSON、PDF 和 Markdown 等多种文件格式。
  • 语义分块:基于语义相似性分割文本,优化信息提取。
  • GraphRAG 支持:支持基于知识图谱的检索增强生成,提升搜索能力。
  • MCP 兼容:提供 Model Control Protocol 端点,方便集成和调用。
  • 三元组存储支持:支持 Fuseki 和 Neo4j 三元组存储,优先推荐 Fuseki。
  • 本地和云端部署:支持本地运行或通过 REST API 访问。

 

使用帮助

安装流程

OntoCast 是一个基于 Python 的框架,推荐使用 Docker 进行部署,以下是详细的安装和配置步骤:

  1. 克隆项目
    在终端运行以下命令,将 OntoCast 项目克隆到本地:

    git clone https://github.com/growgraph/ontocast.git
    cd ontocast
    
  2. 安装依赖
    项目使用 Python 环境,推荐使用 uv 工具管理依赖。运行以下命令安装:

    uv pip install -r requirements.txt
    

    如果没有 uv,可以用 pip 替代:

    pip install -r requirements.txt
    
  3. 配置三元组存储
    OntoCast 支持 Fuseki(推荐)和 Neo4j 作为三元组存储后端。以下以 Fuseki 为例:

    • 进入 docker/fuseki 目录,复制并编辑环境配置文件:
      cp docker/fuseki/.env.example docker/fuseki/.env
      
    • 编辑 .env 文件,设置 Fuseki 的 URI 和认证信息,例如:
      FUSEKI_URI=http://localhost:3032/test
      FUSEKI_AUTH=admin/abc123-qwe
      
    • 启动 Fuseki 服务:
      cd docker/fuseki
      docker compose --env-file .env up -d
      
  4. 配置语言模型
    OntoCast 支持 OpenAI 或本地模型(如通过 Ollama)。编辑项目根目录的 .env 文件,配置模型参数:

    LLM_PROVIDER=openai
    LLM_MODEL_NAME=gpt-4o-mini
    LLM_TEMPERATURE=0.0
    OPENAI_API_KEY=your_openai_api_key_here
    

    如果使用本地模型(如 Ollama),设置:

    LLM_PROVIDER=ollama
    LLM_BASE_URL=http://localhost:11434
    
  5. 运行服务
    使用以下命令启动 OntoCast 服务:

    uv run serve --ontology-directory ONTOLOGY_DIR --working-directory WORKING_DIR
    

    其中,ONTOLOGY_DIR 是本体文件存储路径,WORKING_DIR 是工作目录,用于存储处理后的数据。

  6. 构建 Docker 镜像(可选)
    如果希望使用 Docker 运行 OntoCast,可构建镜像:

    docker buildx build -t growgraph/ontocast:0.1.4 .
    

使用方法

OntoCast 的核心功能是提取语义三元组并构建知识图谱,以下是具体操作步骤:

  1. 准备文档
    将需要处理的文档(支持文本、JSON、PDF 或 Markdown 格式)放入 data/ 目录。项目提供示例数据,可参考 data/ 目录中的文件。
  2. 运行提取流程
    OntoCast 提供命令行工具和 REST API 两种方式运行:

    • 命令行方式
      使用 CLI 工具处理文档:

      uv run ontocast process --input data/sample.md --output output.ttl
      

      这会将 sample.md 文件处理为 RDF 三元组,输出到 output.ttl 文件(Turtle 格式)。

    • REST API 方式
      启动服务后,访问 /process 端点:

      curl -X POST http://localhost:8999/process -H "Content-Type: application/json" -d '{"input": "data/sample.md"}'
      

      响应将返回提取的三元组和本体数据。

  3. 查看结果
    处理完成后,结果存储在三元组存储中(如 Fuseki)。可通过 Fuseki 的 Web 界面(默认 http://localhost:3032)查询知识图谱,或使用 SPARQL 查询语言获取数据。
  4. 优化本体
    OntoCast 支持自动优化本体。如果需要手动调整本体,可编辑 data/ontologies/ 目录中的本体文件,重新运行提取流程。
  5. 使用 GraphRAG
    OntoCast 支持基于知识图谱的检索增强生成(GraphRAG)。在处理完成后,使用生成的知识图谱进行语义搜索:

    uv run ontocast search --query "特定关键词" --graph output.ttl
    

    这将返回与关键词相关的三元组结果。

特色功能操作

  • 语义分块:OntoCast 自动将长文档分割为语义相似的块,确保提取的三元组更精准。用户无需手动设置分块参数,系统会根据语义相似性自动处理。
  • 实体消歧:在处理多文档或长文档时,OntoCast 会识别和统一实体引用。例如,“Apple”在不同上下文中可能指公司或水果,OntoCast 会根据上下文正确分类。
  • 多格式支持:用户可直接上传 PDF 或 Markdown 文件,OntoCast 会自动转换为内部处理格式,无需额外预处理。
  • MCP 兼容性:通过 /process 端点,OntoCast 支持 Model Control Protocol,方便与其他系统集成。

注意事项

  • 确保三元组存储服务(如 Fuseki)正常运行,否则提取结果无法保存。
  • 处理大文档时,建议设置 RECURSION_LIMIT 和 ESTIMATED_CHUNKS 参数,避免性能问题。
  • 项目文档位于 docs/ 目录,提供详细的用户指南和 API 参考。

 

应用场景

  1. 学术研究
    研究人员可使用 OntoCast 从学术论文中提取关键概念和关系,构建领域知识图谱。例如,处理生物学论文时,可提取基因、蛋白质及其相互作用,生成可查询的知识库。
  2. 企业文档管理
    企业可将内部文档(如技术手册、合同)转换为知识图谱,方便快速检索和分析。例如,从合同中提取条款、金额和相关方信息,提升信息管理效率。
  3. 语义搜索优化
    网站开发者可使用 OntoCast 构建语义搜索功能,从非结构化内容中提取结构化数据,提升搜索结果的精准度。
  4. 智能问答系统
    OntoCast 可为问答系统提供知识图谱支持。例如,从公司 FAQ 文档中提取三元组,回答用户关于产品或服务的具体问题。

 

QA

  1. OntoCast 支持哪些文件格式?
    支持文本、JSON、PDF 和 Markdown 格式。未来可能扩展更多格式。
  2. 如何选择三元组存储?
    推荐使用 Fuseki,配置更简单且性能优于 Neo4j。参考 docker/fuseki/.env.example 配置。
  3. 是否需要预定义本体?
    不需要。OntoCast 可自动生成和优化本体,也支持用户提供自定义本体。
  4. 如何处理大文档?
    建议增加 ESTIMATED_CHUNKS 参数(如设置为 50),并确保硬件资源充足。语义分块会自动优化处理。
  5. 支持哪些语言模型?
    支持 OpenAI 的模型(如 gpt-4o-mini)和本地模型(如通过 Ollama 运行的模型)。
0已收藏
0已赞

相关推荐

找不到AI工具?在这试试!

输入关键词,即可 无障碍访问 必应 搜索,快速找到本站所有 AI 工具。

邮箱

联系我们

回顶部

zh_CN简体中文