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

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

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

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

章节正文

配置与环境

配置与环境

相关源文件

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

  • .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

配置优先级与加载

Graphiti · 配置优先级与加载 · 图 1
Graphiti · 配置优先级与加载 · 图 1

配置加载流程

该系统实现了配置优先级,其中在 .env 或 Shell 环境中定义的环境变量会覆盖基于文件的默认值。python-dotenv 依赖 pyproject.toml:19-19 确保本地开发环境可以轻松管理密钥。

来源: pyproject.toml:13-21, .env.example:1-19

核心依赖与包结构

Graphiti 使用在 pyproject.toml pyproject.toml:1-63 中定义的模块化依赖结构。核心依赖是基本图操作所必需的,而特定提供商则被分组为可选扩展。

Graphiti · 核心依赖与包结构 · 图 2
Graphiti · 核心依赖与包结构 · 图 2

依赖安装

核心依赖始终安装。可选提供商依赖通过扩展安装。该项目使用 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 服务和数据库的行为。

Graphiti · 提供商配置对象 · 图 3
Graphiti · 提供商配置对象 · 图 3

配置到运行时对象

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