agentic_huge_data_base / wiki
页面 Graphiti · 9.3 提供方配置·DeepWiki 中文全文译文

9.3 · 提供方配置(Provider Configuration)

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

项目Graphiti 章节9.3 状态全文译文 模块模型调用与提供方适配、接口与服务契约、系统架构、界面与交互
源码线索
  • examples/azure-openai/azure_openai_neo4j.py
  • graphiti_core/embedder/azure_openai.py
  • graphiti_core/embedder/client.py
  • graphiti_core/embedder/openai.py
  • graphiti_core/embedder/voyage.py
  • graphiti_core/llm_client/anthropic_client.py
  • graphiti_core/llm_client/azure_openai_client.py
  • graphiti_core/llm_client/client.py
  • graphiti_core/llm_client/config.py
  • graphiti_core/llm_client/groq_client.py
模块标签
  • 模型调用与提供方适配
  • 接口与服务契约
  • 系统架构
  • 界面与交互
  • 配置治理

章节正文

提供方配置

提供方配置

相关源文件

以下文件为本维基页面的生成提供了上下文:

  • examples/azure-openai/azure_openai_neo4j.py
  • graphiti_core/embedder/azure_openai.py
  • graphiti_core/embedder/client.py
  • graphiti_core/embedder/openai.py
  • graphiti_core/embedder/voyage.py
  • graphiti_core/llm_client/anthropic_client.py
  • graphiti_core/llm_client/azure_openai_client.py
  • graphiti_core/llm_client/client.py
  • graphiti_core/llm_client/config.py
  • graphiti_core/llm_client/groq_client.py
  • graphiti_core/llm_client/openai_base_client.py
  • graphiti_core/llm_client/openai_client.py
  • graphiti_core/llm_client/openai_generic_client.py
  • graphiti_core/llm_client/utils.py
  • mcp_server/config/mcp_config_stdio_example.json
  • mcp_server/src/services/factories.py
  • tests/llm_client/test_azure_openai_client.py
  • tests/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 · 提供方类层次结构 · 图 1
Graphiti · 提供方类层次结构 · 图 1

来源:graphiti_core/llm_client/client.py:71graphiti_core/llm_client/openai_client.py:27graphiti_core/llm_client/anthropic_client.py:103graphiti_core/llm_client/azure_openai_client.py:31graphiti_core/llm_client/openai_generic_client.py:37graphiti_core/embedder/openai.py:33graphiti_core/embedder/voyage.py:43graphiti_core/embedder/azure_openai.py:27graphiti_core/embedder/client.py:30

大语言模型(LLM)客户端配置

LLMConfig 类

所有 LLM 客户端都接受一个 LLMConfig 对象,该对象封装了 API 密钥和模型参数 graphiti_core/llm_client/config.py:28-35

参数类型默认值描述
api_keystr | NoneNoneAPI 的认证密钥 graphiti_core/llm_client/config.py:50
modelstr | NoneNone主模型名称 graphiti_core/llm_client/config.py:53
small_modelstr | NoneNone用于简单任务的模型 graphiti_core/llm_client/config.py:60
base_urlstr | NoneNone自定义 API 端点 graphiti_core/llm_client/config.py:56
temperaturefloat1采样温度 graphiti_core/llm_client/config.py:20
max_tokensint16384最大输出 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
  • 推理模型(例如 o1o3)会自动禁用 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-125graphiti_core/llm_client/openai_base_client.py:40-195graphiti_core/llm_client/client.py:84

Azure OpenAI 客户端

AzureOpenAILLMClient graphiti_core/llm_client/azure_openai_client.py:31 嵌入向量AzureOpenAIEmbedderClient

Azure 集成需要传入一个现有的 AsyncAzureOpenAIAsyncOpenAI 客户端实例 graphiti_core/llm_client/azure_openai_client.py:42

推理支持:客户端通过前缀(o1o3gpt-5)检测推理模型,并在 responses.parsebeta.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 的工具使用机制强制输出 JSON graphiti_core/llm_client/anthropic_client.py:177-203
  • 语言指令:将多语言提取指令附加到系统消息中 graphiti_core/llm_client/client.py:38-56

来源:graphiti_core/llm_client/anthropic_client.py:49-203graphiti_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(如 OllamavLLM)设计。它默认使用更高的 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_dimint1024嵌入向量的维度 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 · 配置数据流 · 图 2
Graphiti · 配置数据流 · 图 2

来源:graphiti_core/llm_client/client.py:72-92graphiti_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:91graphiti_core/llm_client/openai_client.py:61