agentic_huge_data_base / wiki
页面 Graphiti · 9.1 环境变量与设置·DeepWiki 中文全文译文

9.1 · 环境变量与设置(Environment Variables and Settings)

时序知识图谱与动态事实记忆 · 本章是 Graphiti DeepWiki 中文译文的独立章节页,保留原始链接、源码锚点、模块标签和章节层级。

项目Graphiti 章节9.1 状态全文译文 模块配置治理、模型调用与提供方适配、图谱与关系、测试、发布与运维
源码线索
  • .env.example
  • .github/secret_scanning.yml
  • graphiti_core/driver/driver.py
  • graphiti_core/driver/falkordb_driver.py
  • graphiti_core/driver/neo4j_driver.py
  • graphiti_core/helpers.py
  • graphiti_core/telemetry/__init__.py
  • graphiti_core/telemetry/telemetry.py
  • tests/llm_client/test_anthropic_client_int.py
  • tests/llm_client/test_client.py
模块标签
  • 配置治理
  • 模型调用与提供方适配
  • 图谱与关系
  • 测试、发布与运维
  • 存储与持久化

中文译文

环境变量与设置(中文译文)

原始 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.yml
  • graphiti_core/driver/driver.py
  • graphiti_core/driver/falkordb_driver.py
  • graphiti_core/driver/neo4j_driver.py
  • graphiti_core/helpers.py
  • graphiti_core/telemetry/__init__.py
  • graphiti_core/telemetry/telemetry.py
  • tests/llm_client/test_anthropic_client_int.py
  • tests/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_KEYOpenAI API 认证
ANTHROPIC_API_KEYAnthropic Claude 模型
TEST_ANTHROPIC_API_KEY用于集成测试

来源: .env.example:1-19, tests/llm_client/test_anthropic_client_int.py:28-31

数据库配置

数据库配置通常通过环境变量设置,并由特定的 GraphDriver 实现使用。

Neo4j 配置

Neo4jDriver 使用以下变量进行连接管理。

变量用途默认值
NEO4J_URIBolt 协议端点-
NEO4J_USER数据库用户名-
NEO4J_PASSWORD数据库密码-

来源: .env.example:4-7, graphiti_core/driver/neo4j_driver.py:64-76

FalkorDB 配置

FalkorDriver 连接到兼容 Redis 的端点。

变量用途默认值
FALKORDB_URIRedis 协议端点localhost
FALKORDB_PORTRedis 端口6379
FALKORDB_USERRedis 用户名-
FALKORDB_PASSWORDRedis 密码-

来源: .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