agentic_huge_data_base / wiki
页面 LightRAG · 2 核心系统架构·DeepWiki 中文全文译文

2 · 核心系统架构(Core System Architecture)

轻量图谱增强检索 · 本章是 LightRAG DeepWiki 中文译文的独立章节页,保留原始链接、源码锚点、模块标签和章节层级。

项目LightRAG 章节2 状态全文译文 模块图谱与关系、系统架构、检索、召回与索引、入库与解析
源码线索
  • lightrag/__init__.py
  • lightrag/api/__init__.py
  • lightrag/base.py
  • lightrag/lightrag.py
  • lightrag/operate.py
  • lightrag/prompt.py
  • lightrag/utils.py
模块标签
  • 图谱与关系
  • 系统架构
  • 检索、召回与索引
  • 入库与解析
  • 存储与持久化

中文译文

核心 RAG 引擎(中文译文)

原始 DeepWiki 页面:https://deepwiki.com/HKUDS/LightRAG/2-core-rag-engine
翻译时间:2026-05-27T08:45:11.603Z
翻译模型:deepseek-chat
原文字符数:6531
项目:LightRAG (lightrag)

---

核心检索增强生成(RAG)引擎

相关源文件

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

  • lightrag/base.py
  • lightrag/lightrag.py
  • lightrag/operate.py
  • lightrag/prompt.py
  • lightrag/utils.py

核心检索增强生成(RAG)引擎是 LightRAG 库的核心组件,负责将原始文本转换为结构化的知识图谱(KG),并执行多层级检索。它协调了文本片段切分、基于大语言模型(LLM)的实体/关系提取、向量索引和图存储之间的数据流转。

该引擎旨在弥合非结构化自然语言与结构化、可查询的图表示之间的鸿沟,支持"局部"、"全局"、"混合"和"融合"四种检索模式,其性能优于仅依赖向量的标准检索增强生成(RAG)系统。

系统架构总览

下图展示了高层系统组件与实现这些组件的具体代码实体之间的关系。

图示:逻辑到代码实体的映射

graph TD
    subgraph "公共 API [lightrag/lightrag.py]"
        LRAG["class LightRAG"]
        AINSERT["ainert()"]
        AQUERY["aquery()"]
    end

    subgraph "管线编排 [lightrag/operate.py]"
        EXTRACT["extract_entities()"]
        QUERY_EXEC["kg_query()"]
        REBUILD["rebuild_knowledge_from_chunks()"]
    end

    subgraph "存储层 [lightrag/base.py]"
        KV["BaseKVStorage"]
        VDB["BaseVectorStorage"]
        GRAPH["BaseGraphStorage"]
    end

    subgraph "支撑逻辑"
        CHUNKER["lightrag/chunker.py"]
        PROMPTS["lightrag/prompt.py"]
        UTILS["lightrag/utils.py"]
    end

    LRAG -->|调用| AINSERT
    LRAG -->|调用| AQUERY
    AINSERT -->|编排| EXTRACT
    AINSERT -->|使用| CHUNKER
    AQUERY -->|编排| QUERY_EXEC
    EXTRACT -->|使用| PROMPTS
    QUERY_EXEC -->|读取| KV
    QUERY_EXEC -->|读取| VDB
    QUERY_EXEC -->|读取| GRAPH
    EXTRACT -->|写入| KV
    EXTRACT -->|写入| GRAPH

来源: lightrag/lightrag.py:159-160, lightrag/operate.py:105-110, lightrag/base.py:180-200

---

核心子系统

核心检索增强生成(RAG)引擎分为五个功能区域,每个区域由专门的模块处理,并由 LightRAG 类进行协调。

1. LightRAG 类与管线编排

LightRAG 类是库的主要入口点。它继承自 _PipelineMixin,以处理文档入库的复杂生命周期。该类管理存储后端(例如 NetworkX、NanoVectorDB)的初始化,并对外暴露 ainsertaquery 方法以支持异步操作。

详情请参见 LightRAG 类与管线编排来源: lightrag/lightrag.py:159-181, lightrag/lightrag.py:134-134

2. 实体与关系提取

该子系统将文本片段转换为图节点(实体)和边(关系)。它采用复杂的基于大语言模型(LLM)的驱动流程,包括"拾取"(迭代优化)和映射-归约摘要,以处理单个实体的大量描述。该逻辑确保实体名称被规范化,且描述被一致地合并。

详情请参见 实体与关系提取来源: lightrag/operate.py:198-215, lightrag/operate.py:106-106

3. 检索与查询模式

LightRAG 通过 kg_query 函数支持多种检索策略。与标准检索增强生成(RAG)不同,它可以执行"局部"搜索(查找特定实体及其直接邻居)或"全局"搜索(聚合社区级信息)。"融合"模式将这些与传统的向量检索相结合,以获得最大的上下文相关性。

详情请参见 检索与查询模式来源: lightrag/operate.py:107-107, lightrag/base.py:88-95

4. 文本片段切分策略

在提取之前,文档会被分解为可管理的片段。LightRAG 提供了四种策略:固定大小、递归、基于语义向量和段落语义。这些策略确保在提取过程中提供给大语言模型(LLM)的上下文是连贯的,并且保持在 Token 限制范围内。

详情请参见 文本片段切分策略来源: lightrag/lightrag.py:104-104, lightrag/chunker.py:1-1

5. 并发与工具

该引擎使用自定义的并发框架来防止大语言模型(LLM)速率限制并管理资源争用。这包括用于任务调度的 priority_limit_async_func_call 装饰器和用于灵活资源管理的 UnlimitedSemaphore。它还实现了一个健壮的大语言模型(LLM)响应缓存层,以降低成本和延迟。

详情请参见 并发、缓存与工具来源: lightrag/utils.py:120-120, lightrag/operate.py:26-29

---

数据流:从文本到知识图谱

下图展示了数据流经核心实体的过程,显示了原始输入如何变为结构化存储。

图示:数据入库管线

graph LR
    DOC["原始文档"] -->|chunking_by_token_size| CHUNKS["TextChunkSchema"]
    CHUNKS -->|extract_entities| LLM_OUT["大语言模型(LLM)原始提取"]
    LLM_OUT -->|sanitize_and_normalize| CLEAN_DATA["实体与关系"]

    subgraph "存储持久化"
        CLEAN_DATA -->|upsert_node| GRAPH_STORE["BaseGraphStorage"]
        CLEAN_DATA -->|upsert_edge| GRAPH_STORE
        CLEAN_DATA -->|insert| VDB_STORE["BaseVectorStorage"]
        CHUNKS -->|set| KV_STORE["BaseKVStorage"]
    end

    style DOC stroke-dasharray: 5 5
    style LLM_OUT stroke-dasharray: 5 5

来源: lightrag/lightrag.py:104-104, lightrag/operate.py:106-109, lightrag/base.py:74-79

关键类与接口
类/函数文件职责
LightRAGlightrag/lightrag.py用于配置和高级 API 的主类。
QueryParamlightrag/base.py检索配置对象(模式、top_k、Token)。
extract_entitieslightrag/operate.py基于大语言模型(LLM)的知识图谱构建核心逻辑。
kg_querylightrag/operate.py基于图的检索逻辑编排器。
BaseGraphStoragelightrag/base.py图数据库接口(NetworkX、Neo4j 等)。

来源: lightrag/lightrag.py:159-160, lightrag/base.py:85-180, lightrag/operate.py:105-110