配置与环境(中文译文)
原始 DeepWiki 页面:https://deepwiki.com/getzep/graphiti/9-configuration-and-environment
翻译时间:2026-05-27T08:44:47.287Z
翻译模型:deepseek-chat
原文字符数:7179
项目:Graphiti (graphiti)
---
配置与环境
相关源文件
以下文件被用作生成此 Wiki 页面的上下文:
.env.examplepyproject.tomltests/llm_client/test_anthropic_client_int.pytests/llm_client/test_client.pyuv.lock
本文档涵盖了 Graphiti 的所有配置选项、环境变量和依赖管理。它解释了如何配置大语言模型(LLM)提供商、嵌入向量生成器、数据库连接以及并发设置,适用于直接 Python 使用和 MCP 服务器部署。
有关配置特定数据库驱动的详细信息,请参阅提供商配置。有关环境变量的详细信息,请参阅环境变量与设置。
概述
Graphiti 的配置系统支持三种来源,优先级依次递减:
- 命令行参数(最高优先级)
- 环境变量
- 配置文件(YAML 格式)
该系统使用 Python 的 python-dotenv 包从 .env 文件加载环境变量 pyproject.toml:19-19,并支持配置文件中的变量展开。该库基于 pydantic pyproject.toml:14-14 构建,用于健壮的数据校验。
来源: pyproject.toml:1-105, .env.example:1-19
配置优先级与加载
graph TB
CLI["命令行参数<br/>--llm-provider, --model 等"]
ENV["环境变量<br/>OPENAI_API_KEY, NEO4J_URI 等"]
YAML["config.yaml<br/>默认设置"]
DOTENV[".env 文件<br/>本地覆盖"]
DOTENV -->|"由 python-dotenv 加载"| ENV
CLI -->|"覆盖"| ENV
ENV -->|"覆盖"| YAML
YAML -->|"变量展开<br/>${VAR_NAME}"| ENV
CLI --> FINAL["最终配置<br/>GraphitiClients + GraphDriver"]
ENV --> FINAL
YAML --> FINAL
FINAL --> GRAPHITI["Graphiti 实例"]
配置加载流程
该系统实现了配置优先级,其中在 .env 或 Shell 环境中定义的环境变量会覆盖基于文件的默认值。python-dotenv 依赖 pyproject.toml:19-19 确保本地开发环境可以轻松管理密钥。
来源: pyproject.toml:13-21, .env.example:1-19
核心依赖与包结构
Graphiti 使用在 pyproject.toml pyproject.toml:1-63 中定义的模块化依赖结构。核心依赖是基本图操作所必需的,而特定提供商则被分组为可选扩展。
graph TB
subgraph "核心依赖(始终安装)"
PYDANTIC["pydantic>=2.11.5<br/>数据校验"]
NEO4J_LIB["neo4j>=5.26.0<br/>Neo4j 驱动"]
OPENAI_LIB["openai>=1.91.0<br/>OpenAI 客户端"]
TENACITY["tenacity>=9.0.0<br/>重试逻辑"]
NUMPY["numpy>=1.0.0<br/>向量数学"]
DOTENV["python-dotenv>=1.0.1"]
POSTHOG["posthog>=3.0.0<br/>遥测"]
end
subgraph "可选扩展"
ANTHROPIC["[anthropic]<br/>anthropic>=0.49.0"]
GROQ["[groq]<br/>groq>=0.2.0"]
GEMINI["[google-genai]<br/>google-genai>=1.62.0"]
KUZU["[kuzu]<br/>kuzu>=0.11.3"]
FALKOR["[falkordb]<br/>falkordb>=1.1.2"]
VOYAGE["[voyageai]<br/>voyageai>=0.2.3"]
GLINER["[gliner2]<br/>gliner2>=1.2.0"]
TRACING["[tracing]<br/>opentelemetry-api"]
end
CORE["graphiti-core"]
CORE --> PYDANTIC
CORE --> NEO4J_LIB
CORE --> OPENAI_LIB
CORE -.->|"扩展: anthropic"| ANTHROPIC
CORE -.->|"扩展: falkordb"| FALKOR
CORE -.->|"扩展: kuzu"| KUZU
依赖安装
核心依赖始终安装。可选提供商依赖通过扩展安装。该项目使用 uv 进行高性能的依赖解析和锁定 uv.lock:1-10。
# 仅安装核心依赖
uv sync
# 安装特定提供商
uv sync --extra anthropic --extra falkordb
有关可选功能的更多详细信息,请参阅依赖与可选功能。
来源: pyproject.toml:13-63, uv.lock:1-10
环境变量参考
Graphiti 依赖多个环境变量进行提供商认证和系统调优。
| 变量 | 描述 | 使用方 |
|---|---|---|
OPENAI_API_KEY | OpenAI API 密钥 | OpenAIClient, OpenAIEmbedder |
ANTHROPIC_API_KEY | Anthropic API 密钥 | AnthropicClient |
NEO4J_URI | Neo4j 连接 URI | Neo4jDriver |
FALKORDB_URI | FalkorDB 连接 URI | FalkorDriver |
SEMAPHORE_LIMIT | 事件处理的并发限制 | Graphiti 核心 |
MAX_REFLEXION_ITERATIONS | 大语言模型(LLM)推理循环的限制 | 提取管线 |
USE_PARALLEL_RUNTIME | 并行处理的开关 | 核心运行时 |
有关所有支持变量的完整列表,请参阅环境变量与设置。
来源: .env.example:1-19
提供商配置对象
Graphiti 客户端通过配置对象进行初始化,这些对象定义了 AI 服务和数据库的行为。
graph TB
subgraph "大语言模型(LLM)配置"
LLM_CONFIG["LLMConfig<br/>model, temperature"]
LLM_CLIENT["LLMClient<br/>(OpenAI, Anthropic, Groq)"]
LLM_CONFIG --> LLM_CLIENT
end
subgraph "嵌入向量配置"
EMB_CONFIG["EmbedderConfig<br/>model, dimensions"]
EMB_CLIENT["EmbedderClient<br/>(OpenAI, Voyage, Gemini)"]
EMB_CONFIG --> EMB_CLIENT
end
subgraph "数据库驱动"
DB_DRIVER["GraphDriver<br/>(Neo4j, FalkorDB, Kuzu)"]
end
LLM_CLIENT --> G_CLIENTS["GraphitiClients"]
EMB_CLIENT --> G_CLIENTS
G_CLIENTS --> GRAPHITI["Graphiti 核心"]
DB_DRIVER --> GRAPHITI
配置到运行时对象
LLMConfig tests/llm_client/test_client.py:18-18 类定义了 AI 提供商的参数。这些参数会与 GraphDriver 实现一起传递给 Graphiti 构造函数。特定于提供商的客户端(如 AnthropicClient tests/llm_client/test_anthropic_client_int.py:24-24)会使用这些配置来管理认证和模型参数。
有关实现细节和代码示例,请参阅提供商配置。
来源: tests/llm_client/test_client.py:17-29, tests/llm_client/test_anthropic_client_int.py:24-48
遥测与可观测性
Graphiti 包含一个使用 posthog pyproject.toml:20-20 的匿名遥测系统,并支持通过 OpenTelemetry pyproject.toml:38-38 进行分布式追踪。
- 遥测: 默认启用,可通过
GRAPHITI_TELEMETRY_ENABLED禁用。 - 追踪: 需要
[tracing]扩展,并通过opentelemetry-sdkpyproject.toml:62-62提供对大语言模型(LLM)调用和数据库查询的可视性。
有关配置可观测性的详细信息,请参阅环境变量与设置。
来源: pyproject.toml:20-20, pyproject.toml:38-38, pyproject.toml:62-62