agentic_huge_data_base / wiki
页面 LightRAG · 3 存储架构·DeepWiki 中文全文译文

3 · 存储架构(Storage Architecture)

轻量图谱增强检索 · 聚焦本章的模块关系、源码依据与实现要点。

项目LightRAG 章节3 状态全文译文 模块存储与持久化、检索、召回与索引、图谱与关系、系统架构
源码线索
  • lightrag/base.py
  • lightrag/kg/__init__.py
  • lightrag/lightrag.py
  • lightrag/operate.py
  • lightrag/prompt.py
  • lightrag/utils.py
模块标签
  • 存储与持久化
  • 检索、召回与索引
  • 图谱与关系
  • 系统架构
  • 接口与服务契约

章节正文

LLM 与嵌入提供方

大语言模型(LLM)与嵌入向量提供商

相关源文件

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

  • lightrag/llm/anthropic.py
  • lightrag/llm/azure_openai.py
  • lightrag/llm/bedrock.py
  • lightrag/llm/gemini.py
  • lightrag/llm/hf.py
  • lightrag/llm/jina.py
  • lightrag/llm/llama_index_impl.py
  • lightrag/llm/lmdeploy.py
  • lightrag/llm/lollms.py
  • lightrag/llm/nvidia_openai.py
  • lightrag/llm/ollama.py
  • lightrag/llm/openai.py

LightRAG 在 lightrag/llm/ 目录下实现了一个模块化的提供商绑定层,将核心检索增强生成(RAG)逻辑与具体的模型实现解耦。该层处理了不同 API 契约(OpenAI、Anthropic、Gemini 等)、本地推理引擎(Ollama、HuggingFace、LMDeploy)以及嵌入向量相关细节(如维度缩减和非对称前缀)的复杂性。

架构总览

提供商层按功能划分为补全(Completion)和嵌入向量(Embedding)两个绑定模块。它使用 tenacity 实现健壮的重试逻辑,并通过 pipmaster 实现按需依赖管理,确保核心库保持轻量。

提供商到代码实体的映射

下图展示了自然语言层面的提供商概念如何映射到代码库中具体的实现文件和类。

提供商绑定映射图

LightRAG · 提供商到代码实体的映射 · 图 1
LightRAG · 提供商到代码实体的映射 · 图 1

来源: lightrag/llm/openai.py:12-25lightrag/llm/ollama.py:8-24lightrag/llm/anthropic.py:15-29lightrag/llm/gemini.py:33-43

补全绑定

LightRAG 支持多种大语言模型(LLM)提供商用于文本生成。系统主要面向兼容 OpenAI 的 API,但也为 Amazon Bedrock 或 Google Gemini 等非标准接口提供了专门的适配器。

主要特性包括:

  • 统一接口: 大多数绑定遵循 [provider]_complete_if_cache 模式,使核心引擎可以通过一致的异步签名与不同模型交互 lightrag/llm/openai.py:211-230lightrag/llm/ollama.py:90-108
  • 可观测性: OpenAI 客户端集成了 Langfuse,提供大语言模型追踪和调试能力 lightrag/llm/openai.py:43-65
  • 重试逻辑: 针对 RateLimitErrorAPIConnectionErrorAPITimeoutError 自动进行指数退避重试 lightrag/llm/openai.py:211-225lightrag/llm/anthropic.py:45-51

有关具体提供商实现和配置的详细信息,请参阅 大语言模型补全绑定

嵌入向量绑定与非对称支持

嵌入向量函数通过一个专门的装饰器进行管理,该装饰器会附加向量存储后端所需的元数据。

  • 元数据注入: wrap_embedding_func_with_attrs 装饰器会将 embedding_dimmax_token_size 等关键属性注入到嵌入向量函数中 lightrag/llm/jina.py:61-66lightrag/llm/hf.py:171-176
  • 非对称嵌入: 支持"查询"与"文档"两种上下文,允许 Jina 或 VoyageAI 等提供商使用不同的前缀或任务来优化检索 lightrag/llm/jina.py:100-109lightrag/llm/hf.py:181-193
  • 效率: 支持通过 Base64 编码进行网络传输,以减少嵌入向量传输的延迟 lightrag/llm/openai.py:92-99

有关维度处理和非对称配置的详细信息,请参阅 嵌入向量绑定与非对称嵌入

角色特定的大语言模型配置

LightRAG 允许对检索增强生成(RAG)管线中执行特定任务的模型进行精细控制。这是通过"角色"(Roles)机制实现的。

大语言模型角色分配流程

LightRAG · 角色特定的大语言模型配置 · 图 2
LightRAG · 角色特定的大语言模型配置 · 图 2
  • 专业化: 用户可以将高推理能力的模型(如 GPT-4o)分配给 EXTRACT 角色用于知识图谱构建,同时使用更快、更便宜的模型(如 GPT-4o-mini)进行 KEYWORD 提取。
  • 视觉语言模型(VLM)支持: 通过 VLM 角色提供专用的视觉能力绑定,用于处理图像和表格 lightrag/llm/ollama.py:165-170lightrag/llm/anthropic.py:124-141

有关运行时配置和切换角色的详细信息,请参阅 角色特定的大语言模型配置

来源: lightrag/llm/openai.py:122-146lightrag/llm/jina.py:61-66lightrag/llm/ollama.py:109-138lightrag/llm/anthropic.py:63-70