环境变量与设置(中文译文)
原始 DeepWiki 页面:https://deepwiki.com/getzep/graphiti/9.1-environment-variables-and-settings
翻译时间:2026-05-27T08:44:48.452Z
翻译模型:deepseek-chat
原文字符数:7731
项目:Graphiti (graphiti)
---
环境变量与设置
相关源文件
以下文件为本维基页面的生成提供了上下文:
.env.example.github/secret_scanning.ymlgraphiti_core/driver/driver.pygraphiti_core/driver/falkordb_driver.pygraphiti_core/driver/neo4j_driver.pygraphiti_core/helpers.pygraphiti_core/telemetry/__init__.pygraphiti_core/telemetry/telemetry.pytests/llm_client/test_anthropic_client_int.pytests/llm_client/test_client.py
本文档记录了 Graphiti 使用的所有环境变量和配置设置,包括它们的发现方式、优先级规则以及对系统行为的影响。
配置优先级
Graphiti 的配置系统遵循层级优先级规则,后加载的源会覆盖先加载的源。虽然核心库通常通过 Pydantic 模型(例如 LLMConfig)进行配置,但许多值默认会从环境变量中读取。
graph LR
A["硬编码默认值<br/>(最低优先级)"]
B["环境变量<br/>(.env 文件或 Shell)"]
C["代码级配置模型<br/>(LLMConfig、EmbedderConfig)"]
D["最终运行时配置"]
A -->|"覆盖"| B
B -->|"覆盖"| C
C --> D
来源: graphiti_core/helpers.py:33-55, graphiti_core/driver/driver.py:51-57
配置流程与初始化
系统初始化时,会在多个核心模块中通过 load_dotenv() 加载 .env 文件。核心辅助函数定义了全局常量,这些常量在整个库中用于限制并发性和管理内容处理。
graph TB
subgraph "环境加载 [graphiti_core/helpers.py]"
D["load_dotenv()<br/>读取 .env 文件"]
E["全局常量<br/>SEMAPHORE_LIMIT、CHUNK_TOKEN_SIZE"]
end
subgraph "服务初始化"
F["GraphDriver.build_indices_and_constraints()<br/>使用来自环境变量的索引名称"]
G["LLMClient/EmbedderClient<br/>使用 API 密钥"]
end
subgraph "核心组件"
I["LLMClient<br/>graphiti_core/llm_client/client.py"]
J["GraphDriver<br/>graphiti_core/driver/driver.py"]
end
D --> E
E --> I
E --> J
E --> F
来源: graphiti_core/helpers.py:33-38, graphiti_core/driver/driver.py:51-57, graphiti_core/driver/neo4j_driver.py:91-101
必需的环境变量
大语言模型(LLM)提供商的 API 密钥
Graphiti 支持多个大语言模型(LLM)提供商。至少需要根据所选客户端配置一个。
| 变量 | 用途 | 默认提供商 |
|---|---|---|
OPENAI_API_KEY | OpenAI API 认证 | 是 |
ANTHROPIC_API_KEY | Anthropic Claude 模型 | 否 |
TEST_ANTHROPIC_API_KEY | 用于集成测试 | 否 |
来源: .env.example:1-19, tests/llm_client/test_anthropic_client_int.py:28-31
数据库配置
数据库配置通常通过环境变量设置,并由特定的 GraphDriver 实现使用。
Neo4j 配置
Neo4jDriver 使用以下变量进行连接管理。
| 变量 | 用途 | 默认值 |
|---|---|---|
NEO4J_URI | Bolt 协议端点 | - |
NEO4J_USER | 数据库用户名 | - |
NEO4J_PASSWORD | 数据库密码 | - |
来源: .env.example:4-7, graphiti_core/driver/neo4j_driver.py:64-76
FalkorDB 配置
FalkorDriver 连接到兼容 Redis 的端点。
| 变量 | 用途 | 默认值 |
|---|---|---|
FALKORDB_URI | Redis 协议端点 | localhost |
FALKORDB_PORT | Redis 端口 | 6379 |
FALKORDB_USER | Redis 用户名 | - |
FALKORDB_PASSWORD | Redis 密码 | - |
来源: .env.example:10-13, graphiti_core/driver/falkordb_driver.py:116-146
索引名称
Graphiti 允许自定义在图数据库中创建的索引名称。
| 变量 | 用途 | 默认值 |
|---|---|---|
ENTITY_INDEX_NAME | 实体节点的索引 | entities |
EPISODE_INDEX_NAME | 事件节点的索引 | episodes |
COMMUNITY_INDEX_NAME | 社区节点的索引 | communities |
ENTITY_EDGE_INDEX_NAME | 实体边的索引 | entity_edges |
来源: graphiti_core/driver/driver.py:53-56
性能与处理设置
并发控制
SEMAPHORE_LIMIT 对于管理图数据库和大语言模型(LLM)提供商的负载至关重要。它被 semaphore_gather 用于限制并发协程的数量。
| 变量 | 用途 | 默认值 |
|---|---|---|
SEMAPHORE_LIMIT | 最大并发异步操作数 | 20 |
USE_PARALLEL_RUNTIME | 启用 Neo4j 并行运行时 | false |
来源: graphiti_core/helpers.py:37-38, graphiti_core/helpers.py:123-133
内容片段切分
Graphiti 使用基于密度的片段切分方法进行实体提取。它仅对高密度内容(每个 Token 包含多个实体)进行切分,以保留散文内容的上下文,同时处理大量数据导入。
| 变量 | 用途 | 默认值 |
|---|---|---|
CHUNK_TOKEN_SIZE | 每个片段的大小(以 Token 计) | 3000 |
CHUNK_OVERLAP_TOKENS | 片段之间的重叠 Token 数 | 200 |
CHUNK_MIN_TOKENS | 触发片段切分的最小 Token 数 | 1000 |
CHUNK_DENSITY_THRESHOLD | 触发片段切分的实体密度阈值 | 0.15 |
来源: graphiti_core/helpers.py:45-55
遥测系统
Graphiti 包含一个匿名遥测系统,用于收集使用统计信息以帮助改进产品。该系统在 graphiti_core/telemetry/telemetry.py 中实现。
| 变量 | 用途 | 默认值 |
|---|---|---|
GRAPHITI_TELEMETRY_ENABLED | 启用/禁用匿名遥测 | true |
遥测实现
遥测系统使用 PostHog 来捕获事件。它被设计为非侵入性的,并且会静默失败,以确保主应用程序逻辑永远不会被中断。
- 数据隐私:不会收集任何 API 密钥、个人数据或图谱内容。它仅跟踪系统架构和 Graphiti 版本。
- 匿名 ID:会生成一个唯一的 UUID,并本地存储在
~/.cache/graphiti/telemetry_anon_id中,以维护一致的唯一标识符,而无需识别用户。 - 自动禁用:在
pytest运行期间,通过检查sys.modules自动禁用遥测。
graph TD
subgraph "遥测逻辑 [graphiti_core/telemetry/telemetry.py]"
A["is_telemetry_enabled()"]
B["get_anonymous_id()"]
C["capture_event()"]
D["initialize_posthog()"]
end
subgraph "外部/本地状态"
E["PostHog API<br/>us.i.posthog.com"]
F["~/.cache/graphiti/<br/>telemetry_anon_id"]
end
A -->|"检查 GRAPHITI_TELEMETRY_ENABLED"| C
B -->|"读取/写入 UUID"| F
C -->|"获取唯一标识符"| B
C -->|"初始化客户端"| D
D -->|"发送事件"| E
来源: graphiti_core/telemetry/telemetry.py:18-38, graphiti_core/telemetry/telemetry.py:40-63, graphiti_core/telemetry/telemetry.py:92-118
维护与版本管理
| 变量 | 用途 |
|---|---|
GITHUB_SHA | 用于版本跟踪的提交哈希值 |
来源: .env.example:17, graphiti_core/telemetry/telemetry.py:108-109