配置与环境
配置与环境
相关源文件
本章引用的主要源码文件:
.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
配置优先级与加载
配置加载流程
该系统实现了配置优先级,其中在 .env 或 Shell 环境中定义的环境变量会覆盖基于文件的默认值。python-dotenv 依赖 pyproject.toml:19-19 确保本地开发环境可以轻松管理密钥。
来源: pyproject.toml:13-21, .env.example:1-19
核心依赖与包结构
Graphiti 使用在 pyproject.toml pyproject.toml:1-63 中定义的模块化依赖结构。核心依赖是基本图操作所必需的,而特定提供商则被分组为可选扩展。
依赖安装
核心依赖始终安装。可选提供商依赖通过扩展安装。该项目使用 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 服务和数据库的行为。
配置到运行时对象
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