agentic_huge_data_base / wiki
页面 Graphiti · 9.2 依赖与可选特性·DeepWiki 中文全文译文

9.2 · 依赖与可选特性(Dependencies and Optional Features)

时序知识图谱与动态事实记忆 · 聚焦本章的模块关系、源码依据与实现要点。

项目Graphiti 章节9.2 状态全文译文 模块模型调用与提供方适配、接口与服务契约、界面与交互、文档对象与元数据
源码线索
  • mcp_server/pyproject.toml
  • mcp_server/uv.lock
  • pyproject.toml
  • server/pyproject.toml
  • server/uv.lock
  • uv.lock
模块标签
  • 模型调用与提供方适配
  • 接口与服务契约
  • 界面与交互
  • 文档对象与元数据
  • 系统架构

章节正文

依赖与可选特性

依赖项与可选特性

相关源文件

本章引用的主要源码文件:

  • mcp_server/pyproject.toml
  • mcp_server/uv.lock
  • pyproject.toml
  • server/pyproject.toml
  • server/uv.lock
  • uv.lock

本文档描述了 Graphiti 的依赖结构,包括核心依赖、可选特性包以及用于可重现构建的锁文件机制。安装后如需配置特定提供方,请参阅提供方配置。运行时环境变量请参见环境变量与设置

概述

Graphiti 采用模块化依赖架构,核心功能仅需少量依赖,而附加特性(如替代的大语言模型提供方、图数据库、嵌入向量器)则作为可选扩展安装。这种设计在支持多种提供方组合的同时,最小化了基础安装体积。

该项目要求 Python 3.10 或更高版本,但排除 Python 4.x pyproject.toml:12-12。依赖版本通过 pyproject.toml pyproject.toml:1-105 管理,精确解析版本则锁定在 uv.lock uv.lock:1-10 中。

来源: pyproject.toml:1-105, uv.lock:1-10

核心依赖

以下包是所有 Graphiti 安装所必需的,提供了基础框架能力:

包名最低版本用途
pydantic2.11.5数据校验与模式定义 pyproject.toml:14-14
neo4j5.26.0默认图数据库驱动 pyproject.toml:15-15
openai1.91.0默认大语言模型客户端与嵌入向量器 pyproject.toml:16-16
tenacity9.0.0大语言模型和数据库调用的重试逻辑 pyproject.toml:17-17
numpy1.0.0嵌入向量的向量运算 pyproject.toml:18-18
python-dotenv1.0.1环境变量管理 pyproject.toml:19-19
posthog3.0.0匿名使用分析 pyproject.toml:20-20

这些依赖会随 pip install graphiti-coreuv add graphiti-core 自动安装。

来源: pyproject.toml:13-21

可选依赖组(扩展)

Graphiti 提供了可选依赖组,用于启用特定提供方或特性。使用方括号标记进行安装:

pip install graphiti-core[anthropic,groq,google-genai]
uv add "graphiti-core[falkordb,voyageai]"
大语言模型提供方扩展

大语言模型提供方通过 LLMClient 接口进行抽象。安装对应扩展后,即可使用相应的提供方客户端。

大语言模型提供方映射

Graphiti · 大语言模型提供方扩展 · 图 1
Graphiti · 大语言模型提供方扩展 · 图 1
扩展名包含的包启用功能
anthropicanthropic>=0.49.0AnthropicClient pyproject.toml:28-28
groqgroq>=0.2.0GroqClient pyproject.toml:29-29
google-genaigoogle-genai>=1.62.0GeminiClient, GeminiEmbedder pyproject.toml:30-30

来源: pyproject.toml:28-30

图数据库扩展

图数据库通过 GraphDriver 抽象层提供支持。

数据库驱动映射

Graphiti · 图数据库扩展 · 图 2
Graphiti · 图数据库扩展 · 图 2
扩展名包含的包启用功能
kuzukuzu>=0.11.3KuzuDriver pyproject.toml:31-31
falkordbfalkordb>=1.1.2,<2.0.0FalkorDriver pyproject.toml:32-32
neptunelangchain-aws>=0.2.29, opensearch-py>=3.0.0, boto3>=1.39.16NeptuneDriver pyproject.toml:37-37
neo4j-opensearchboto3>=1.39.16, opensearch-py>=3.0.0Neo4j 的混合搜索 pyproject.toml:35-35

来源: pyproject.toml:31-37

专用特性扩展
扩展名包含的包用途
voyageaivoyageai>=0.2.3VoyageEmbedderClient pyproject.toml:33-33
sentence-transformerssentence-transformers>=3.2.1本地嵌入向量模型 pyproject.toml:36-36
gliner2gliner2>=1.2.0实体识别(Python 3.11+) pyproject.toml:34-34
tracingopentelemetry-api, opentelemetry-sdk可观测性 pyproject.toml:38-38

来源: pyproject.toml:33-38

依赖锁文件 (uv.lock)

uv.lock 文件通过锁定所有传递依赖的精确版本,提供了可重现构建能力。该文件由 uv 包管理器管理 uv.lock:1-2

锁文件结构

关键部分:

  • 元数据 uv.lock:1-10:锁版本、Python 要求和解析标记。
  • 包条目 uv.lock:12-55:每个 [[package]] 块指定了名称、版本、来源和依赖项。
Python 版本标记

锁文件使用解析标记来处理因 Python 版本而异的依赖项 uv.lock:4-10

  • python_full_version >= '3.14' uv.lock:5-5
  • python_full_version < '3.11'(例如,用于 async-timeout uv.lock:28-28

来源: uv.lock:1-55

MCP 服务器依赖

MCP(模型上下文协议)服务器在 mcp_server/pyproject.toml mcp_server/pyproject.toml:1-14 中有自己的依赖规范。值得注意的是,它默认将 graphiti-core[falkordb] 作为依赖包含在内 mcp_server/pyproject.toml:10-10

[project]
name = "mcp-server"
version = "1.0.2"
dependencies = [
    "mcp>=1.9.4",
    "openai>=1.91.0",
    "graphiti-core[falkordb]>=0.28.2",
    "pydantic-settings>=2.0.0",
    "pyyaml>=6.0",
    "typing-extensions>=4.0.0",
]
MCP 可选依赖
扩展包含的包用途
azureazure-identity>=1.21.0Azure 认证 mcp_server/pyproject.toml:17-19
providersgoogle-genai, anthropic, groq, voyageai, sentence-transformers替代 AI 提供方 mcp_server/pyproject.toml:20-26

来源: mcp_server/pyproject.toml:1-26

图服务依赖

定义在 server/ 目录下的基于 FastAPI 的 REST 服务使用了以下核心依赖:

包名最低版本用途
fastapi0.115.0Web 框架 server/pyproject.toml:11-11
graphiti-core0.28.2核心库 server/pyproject.toml:12-12
pydantic-settings2.4.0配置管理 server/pyproject.toml:13-13
uvicorn0.44.0ASGI 服务器 server/pyproject.toml:14-14
httpx0.28.1异步 HTTP 客户端 server/pyproject.toml:15-15

来源: server/pyproject.toml:10-16

总结

Graphiti 的依赖架构在简洁性和灵活性之间取得了平衡:

  • 核心包提供基础功能(Neo4j + OpenAI)。
  • 可选扩展支持替代数据库(Kuzu、FalkorDB、Neptune)和大语言模型(Anthropic、Groq、Gemini)。
  • uv.lock确保所有环境中的可重现构建。
  • MCP 服务器通过捆绑常用提供方并默认使用 falkordb mcp_server/pyproject.toml:10-10 简化了部署。

来源: pyproject.toml:1-105, mcp_server/pyproject.toml:1-74, server/pyproject.toml:1-32