使用说明

项目简介

Graphiti 是一个用于构建和查询时间感知知识图谱的框架,专为在动态环境中运行的 AI 代理设计。它与传统的 RAG 方法不同,Graphiti 持续集成用户交互、结构化和非结构化企业数据以及外部信息到一个连贯、可查询的图谱中。该框架支持增量数据更新、高效检索和精确的历史查询,无需完全重新计算图谱,使其适用于开发交互式、上下文感知的 AI 应用。

主要功能点

  • 实时增量更新: 立即集成新的数据,无需批量重新计算。
  • 双时态数据模型: 显式跟踪事件发生和摄取时间,支持精确的时间点查询。
  • 高效混合检索: 结合语义嵌入、关键词(BM25)和图遍历,实现低延迟查询。
  • 自定义实体定义: 灵活的本体创建,支持通过 Pydantic 模型定义自定义实体。
  • 高扩展性: 有效管理大型数据集,适用于企业环境。

安装步骤

  1. 环境准备:

    • 确保已安装 Python 3.10 或更高版本。
    • 安装 Neo4j 5.26 或更高版本 (作为知识图谱数据库,推荐使用 Neo4j Desktop 方便管理)。
    • 拥有 OpenAI API 密钥 (用于 LLM 推理和嵌入)。
  2. 安装 Graphiti Core: 打开终端并执行以下命令安装核心库:

    pip install graphiti-core

服务器配置

Graphiti 仓库包含一个基于 FastAPI 构建的 API 服务,用于与 Graphiti 知识图谱进行交互。以下是 MCP 客户端连接 Graphiti 服务器所需的配置信息 (JSON 格式):

{
  "server name": "Graphiti MCP Server",
  "command": "uvicorn",
  "args": [
    "server.graph_service.main:app",
    "--host", "0.0.0.0",
    "--port", "8000",
    "--reload"
  ],
  "description": "启动 Graphiti API 服务器。--reload 参数用于开发环境,生产环境应移除。",
  "notes": "请确保 Neo4j 数据库连接信息 (URI, 用户名, 密码) 和 OpenAI API 密钥已配置为环境变量 (.env 文件或系统环境变量),具体参考 Graphiti 文档。",
  "environment_variables_example": {
    "OPENAI_API_KEY": "<YOUR_OPENAI_API_KEY>",
    "NEO4J_URI": "bolt://localhost:7687",
    "NEO4J_USER": "neo4j",
    "NEO4J_PASSWORD": "password"
  }
}

配置参数说明:

  • 'server name': 服务器名称,可自定义。
  • 'command': 启动服务器的命令,这里使用 'uvicorn' (FastAPI 推荐的 ASGI 服务器)。
  • 'args': 传递给 'uvicorn' 命令的参数:
    • '"server.graph_service.main:app"': 指定 FastAPI 应用入口点 ('main.py' 文件中的 'app' 实例)。
    • '"--host", "0.0.0.0"': 绑定服务器到所有网络接口,允许从外部访问。
    • '"--port", "8000"': 指定服务器监听端口为 8000 (可自定义)。
    • '"--reload"': 启用热重载,方便开发时修改代码自动重启 (生产环境不建议使用)。
  • 'description': 服务器配置的简要描述。
  • 'notes': 配置注意事项,例如环境变量配置。
  • 'environment_variables_example': 环境变量配置示例,用于指导用户配置必要的环境变量。

基本使用方法

  1. 启动服务器: 在终端中,导航到 'server/graph_service' 目录,并执行配置中 'command' 和 'args' 组合的命令,例如:

    uvicorn server.graph_service.main:app --host 0.0.0.0 --port 8000 --reload
  2. API 交互: 服务器启动后,可以通过 HTTP 请求与 Graphiti API 进行交互。 主要 API 端点包括:

    • '/ingest/messages': 添加消息到知识图谱。
    • '/retrieve/search': 执行知识图谱搜索。
    • '/retrieve/get-memory': 根据消息上下文检索相关记忆。

    具体 API 使用方法和请求参数,请参考 Graphiti 项目文档或 'server/graph_service/routers' 目录下的路由定义文件。

注意: 此仓库主要提供 Graphiti Core 知识图谱框架及其 API 服务,并非严格意义上的 MCP 服务器实现。它提供了资源管理、数据访问和 Prompt 模板(通过 LLM Client 和 Prompt Library 间接实现)等 MCP 核心功能,并通过 RESTful API 提供服务,可以作为 LLM 应用的上下文服务后端。

信息

分类

AI与计算