agentic_huge_data_base / wiki
页面 Graphiti · 9 配置与环境·DeepWiki 中文全文译文

9 · 配置与环境(Configuration and Environment)

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

项目Graphiti 章节9 状态全文译文 模块测试、发布与运维、模型调用与提供方适配、配置治理、接口与服务契约
源码线索
  • .env.example
  • pyproject.toml
  • tests/llm_client/test_anthropic_client_int.py
  • tests/llm_client/test_client.py
  • uv.lock
模块标签
  • 测试、发布与运维
  • 模型调用与提供方适配
  • 配置治理
  • 接口与服务契约
  • 界面与交互

中文译文

配置与环境(中文译文)

原始 DeepWiki 页面:https://deepwiki.com/getzep/graphiti/9-configuration-and-environment
翻译时间:2026-05-27T08:44:47.287Z
翻译模型:deepseek-chat
原文字符数:7179
项目:Graphiti (graphiti)

---

配置与环境

相关源文件

以下文件被用作生成此 Wiki 页面的上下文:

  • .env.example
  • pyproject.toml
  • tests/llm_client/test_anthropic_client_int.py
  • tests/llm_client/test_client.py
  • uv.lock

本文档涵盖了 Graphiti 的所有配置选项、环境变量和依赖管理。它解释了如何配置大语言模型(LLM)提供商、嵌入向量生成器、数据库连接以及并发设置,适用于直接 Python 使用和 MCP 服务器部署。

有关配置特定数据库驱动的详细信息,请参阅提供商配置。有关环境变量的详细信息,请参阅环境变量与设置

概述

Graphiti 的配置系统支持三种来源,优先级依次递减:

  1. 命令行参数(最高优先级)
  2. 环境变量
  3. 配置文件(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_KEYOpenAI API 密钥OpenAIClient, OpenAIEmbedder
ANTHROPIC_API_KEYAnthropic API 密钥AnthropicClient
NEO4J_URINeo4j 连接 URINeo4jDriver
FALKORDB_URIFalkorDB 连接 URIFalkorDriver
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-sdk pyproject.toml:62-62 提供对大语言模型(LLM)调用和数据库查询的可视性。

有关配置可观测性的详细信息,请参阅环境变量与设置

来源: pyproject.toml:20-20, pyproject.toml:38-38, pyproject.toml:62-62