提供方配置
提供方配置
相关源文件
以下文件为本维基页面的生成提供了上下文:
examples/azure-openai/azure_openai_neo4j.pygraphiti_core/embedder/azure_openai.pygraphiti_core/embedder/client.pygraphiti_core/embedder/openai.pygraphiti_core/embedder/voyage.pygraphiti_core/llm_client/anthropic_client.pygraphiti_core/llm_client/azure_openai_client.pygraphiti_core/llm_client/client.pygraphiti_core/llm_client/config.pygraphiti_core/llm_client/groq_client.pygraphiti_core/llm_client/openai_base_client.pygraphiti_core/llm_client/openai_client.pygraphiti_core/llm_client/openai_generic_client.pygraphiti_core/llm_client/utils.pymcp_server/config/mcp_config_stdio_example.jsonmcp_server/src/services/factories.pytests/llm_client/test_azure_openai_client.pytests/test_text_utils.py
本文档记录了 Graphiti 中大语言模型(LLM)客户端、嵌入向量(Embedder)客户端、交叉编码器重排序器以及图数据库驱动的配置参数。每个提供方都需要特定的初始化参数、API 密钥和可选依赖项。
相关页面:9.1 环境变量、9.2 依赖项与可选特性、7 数据库集成。
概述
Graphiti 使用抽象基类来定义可插拔提供方的接口:
LLMClient:语言模型提供方的基类graphiti_core/llm_client/client.py:71-147。EmbedderClient:嵌入向量提供方的基类graphiti_core/embedder/client.py:30-38。GraphDriver:数据库后端的基类。
所有提供方都支持异步操作,并包含带有指数退避的重试逻辑,以应对速率限制和服务器错误 graphiti_core/llm_client/client.py:116-126。
提供方架构
下图将自然语言配置概念映射到用于实现的具体代码实体。
提供方类层次结构
来源:graphiti_core/llm_client/client.py:71、graphiti_core/llm_client/openai_client.py:27、graphiti_core/llm_client/anthropic_client.py:103、graphiti_core/llm_client/azure_openai_client.py:31、graphiti_core/llm_client/openai_generic_client.py:37、graphiti_core/embedder/openai.py:33、graphiti_core/embedder/voyage.py:43、graphiti_core/embedder/azure_openai.py:27、graphiti_core/embedder/client.py:30
大语言模型(LLM)客户端配置
LLMConfig 类
所有 LLM 客户端都接受一个 LLMConfig 对象,该对象封装了 API 密钥和模型参数 graphiti_core/llm_client/config.py:28-35。
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
api_key | str | None | None | API 的认证密钥 graphiti_core/llm_client/config.py:50 |
model | str | None | None | 主模型名称 graphiti_core/llm_client/config.py:53 |
small_model | str | None | None | 用于简单任务的模型 graphiti_core/llm_client/config.py:60 |
base_url | str | None | None | 自定义 API 端点 graphiti_core/llm_client/config.py:56 |
temperature | float | 1 | 采样温度 graphiti_core/llm_client/config.py:20 |
max_tokens | int | 16384 | 最大输出 Token 数 graphiti_core/llm_client/config.py:19 |
来源:graphiti_core/llm_client/config.py:19-69
OpenAI 客户端
类:OpenAIClient graphiti_core/llm_client/openai_client.py:27 基类:BaseOpenAIClient graphiti_core/llm_client/openai_base_client.py:40
初始化:
from graphiti_core.llm_client import LLMConfig, OpenAIClient
llm_client = OpenAIClient(
config=LLMConfig(
api_key="sk-...",
model="gpt-4o",
max_tokens=16384
)
)
特性:
- 通过 OpenAI Beta Parse API 支持结构化输出
graphiti_core/llm_client/openai_client.py:75-101。 - 推理模型(例如
o1、o3)会自动禁用temperature参数,并支持推理努力参数graphiti_core/llm_client/openai_client.py:77-97。 - 通过
TokenUsageTracker包含 Token 使用追踪graphiti_core/llm_client/client.py:84。
来源:graphiti_core/llm_client/openai_client.py:27-125、graphiti_core/llm_client/openai_base_client.py:40-195、graphiti_core/llm_client/client.py:84
Azure OpenAI 客户端
类:AzureOpenAILLMClient graphiti_core/llm_client/azure_openai_client.py:31 嵌入向量:AzureOpenAIEmbedderClient
Azure 集成需要传入一个现有的 AsyncAzureOpenAI 或 AsyncOpenAI 客户端实例 graphiti_core/llm_client/azure_openai_client.py:42。
推理支持:客户端通过前缀(o1、o3、gpt-5)检测推理模型,并在 responses.parse 和 beta.chat.completions.parse 之间切换以实现结构化输出 graphiti_core/llm_client/azure_openai_client.py:72-104。
来源:graphiti_core/llm_client/azure_openai_client.py:31-168
Anthropic 客户端
类:AnthropicClient graphiti_core/llm_client/anthropic_client.py:103 安装:pip install graphiti-core[anthropic] graphiti_core/llm_client/anthropic_client.py:41-44
主要特性:
- 模型特定的 Token 限制:自动将
claude-3-7-sonnet等模型映射到其特定的最大输出 Token 数(例如 64K)graphiti_core/llm_client/anthropic_client.py:75-97。 - 用于结构化的工具使用:如果提供了
response_model,则使用 Anthropic 的工具使用机制强制输出 JSONgraphiti_core/llm_client/anthropic_client.py:177-203。 - 语言指令:将多语言提取指令附加到系统消息中
graphiti_core/llm_client/client.py:38-56。
来源:graphiti_core/llm_client/anthropic_client.py:49-203、graphiti_core/llm_client/client.py:38-56
Groq 客户端
类:GroqClient graphiti_core/llm_client/groq_client.py:48 安装:pip install graphiti-core[groq] graphiti_core/llm_client/groq_client.py:32-34
默认模型:llama-3.1-70b-versatile graphiti_core/llm_client/groq_client.py:44 默认最大 Token 数:2048 graphiti_core/llm_client/groq_client.py:45
来源:graphiti_core/llm_client/groq_client.py:48-86
OpenAI 通用客户端(本地 LLM)
类:OpenAIGenericClient graphiti_core/llm_client/openai_generic_client.py:37
该客户端专为兼容 OpenAI 的 API(如 Ollama 或 vLLM)设计。它默认使用更高的 max_tokens(16384)以适应本地模型的能力,并支持标准的 json_schema 响应格式 graphiti_core/llm_client/openai_generic_client.py:75-121。
来源:graphiti_core/llm_client/openai_generic_client.py:37-137
嵌入向量配置
EmbedderConfig
所有嵌入向量都使用一个基础配置来设置维度 graphiti_core/embedder/client.py:26-27。
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
embedding_dim | int | 1024 | 嵌入向量的维度 graphiti_core/embedder/client.py:23,27 |
来源:graphiti_core/embedder/client.py:23-27
OpenAI 嵌入向量
类:OpenAIEmbedder graphiti_core/embedder/openai.py:33 支持标准的 OpenAI 嵌入模型,如 text-embedding-3-small graphiti_core/embedder/openai.py:24。
来源:graphiti_core/embedder/openai.py:33-67
VoyageAI 嵌入向量
类:VoyageAIEmbedder graphiti_core/embedder/voyage.py:43 安装:pip install graphiti-core[voyageai] graphiti_core/embedder/voyage.py:28。 默认模型为 voyage-3 graphiti_core/embedder/voyage.py:35。
来源:graphiti_core/embedder/voyage.py:43-77
数据流与初始化
下图展示了配置对象如何从用户流入核心系统组件。
配置数据流
来源:graphiti_core/llm_client/client.py:72-92、graphiti_core/llm_client/openai_client.py:55-63
驱动配置
数据库驱动
驱动通过连接字符串和凭证进行配置。支持的驱动包括 Neo4j、FalkorDB、Kuzu 和 Amazon Neptune。
Neo4j 示例:
from graphiti_core.driver.neo4j_driver import Neo4jDriver
driver = Neo4jDriver(uri="bolt://localhost:7687", user="neo4j", password="password")
MCP 服务器配置
对于使用模型上下文协议(Model Context Protocol)服务器的用户,提供方通过配置文件中的环境块进行配置。
"env": {
"NEO4J_URI": "bolt://localhost:7687",
"OPENAI_API_KEY": "${OPENAI_API_KEY}",
"MODEL_NAME": "gpt-4.1-mini"
}
来源:graphiti_core/llm_client/openai_generic_client.py:91、graphiti_core/llm_client/openai_client.py:61