agentic_huge_data_base / wiki
页面 LightRAG · 6 LLM 与外部服务·DeepWiki 中文全文译文

6 · LLM 与外部服务(LLM and External Services)

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

项目LightRAG 章节6 状态全文译文 模块检索、召回与索引、模型调用与提供方适配、接口与服务契约、系统架构
源码线索
  • examples/unofficial-sample/lightrag_embedding_prefixes.py
  • lightrag/llm/anthropic.py
  • lightrag/llm/azure_openai.py
  • lightrag/llm/bedrock.py
  • lightrag/llm/deprecated/siliconcloud.py
  • lightrag/llm/gemini.py
  • lightrag/llm/hf.py
  • lightrag/llm/jina.py
  • lightrag/llm/llama_index_impl.py
  • lightrag/llm/lmdeploy.py
模块标签
  • 检索、召回与索引
  • 模型调用与提供方适配
  • 接口与服务契约
  • 系统架构
  • 测试、发布与运维

章节正文

REST API 服务端

REST 接口服务器

相关源文件

本章引用的主要源码文件:

  • env.example
  • lightrag/api/config.py
  • lightrag/api/lightrag_server.py
  • lightrag/api/utils_api.py
  • lightrag/constants.py

LightRAG REST API 服务器是一个高性能的 FastAPI 应用程序,旨在通过 HTTP 暴露核心检索增强生成(RAG)引擎的能力。它提供了用于文档管理、知识图谱探索和高级检索的健壮接口,同时通过 Ollama 仿真层保持与外部生态系统的兼容性。

系统架构总览

该服务器作为 LightRAG 核心类的管理层,处理多租户工作空间隔离、认证和请求编排。

LightRAG · 系统架构总览 · 图 1
LightRAG · 系统架构总览 · 图 1

来源:lightrag/api/lightrag_server.py:1-56, lightrag/api/lightrag_server.py:1021-1050, lightrag/api/utils_api.py:91-127

关键组件
组件代码实体职责
应用工厂create_app初始化 FastAPI,挂载 WebUI 的静态文件,并附加路由器。 lightrag/api/lightrag_server.py:1021-1050
全局配置_GlobalArgsProxy一个延迟加载的代理,管理系统范围的参数以及大语言模型(LLM)/嵌入向量配置。 lightrag/api/lightrag_server.py:284-333
认证处理器auth_handler管理 JWT 生成、校验和 OAuth2 密码流程。 lightrag/api/auth.py:25-50
工作空间管理器LIGHTRAG-WORKSPACE基于请求头的隔离机制,允许单个服务器实例管理多个逻辑知识图谱。 lightrag/api/lightrag_server.py:1052-1085
Ollama 仿真OllamaAPI提供如 /api/chat 等端点,允许 Open WebUI 等工具将 LightRAG 用作后端。 lightrag/api/routers/ollama_api.py:18-40
服务器配置与启动

服务器通过环境变量(在 .env 中定义)和由 parse_args 解析的命令行参数组合进行配置。一个关键组件是 LLMConfigCache,它会智能地缓存特定于供应商的选项(OpenAI、Ollama、Gemini 等),以确保每个请求的 RAG 引擎快速初始化。

服务器支持通过 Gunicorn/Uvicorn 进行生产部署,并支持可配置的工作进程数量和超时时间。它还实现了一个 lifespan 上下文管理器,用于处理共享存储数据和锁的优雅初始化和终结。

详情请参见 服务器配置与启动

来源: lightrag/api/lightrag_server.py:131-230, lightrag/api/config.py:1-49, env.example:1-40

查询、图谱和 Ollama API 路由

API 被组织为功能路由器:

  • 查询路由: 实现 /query/query/stream/query/data 端点。这些端点接受 QueryRequest 模型,并映射到核心引擎的 aquery 方法。
  • 图谱路由: 提供对知识图谱的深度访问,包括子图检索、实体编辑和关系合并。
  • Ollama 仿真: 一个专门的路由器,模拟 Ollama API,实现与更广泛的大语言模型(LLM)工具生态系统的无缝集成。

详情请参见 查询、图谱和 Ollama API 路由

来源: lightrag/api/routers/query_routes.py:1-30, lightrag/api/routers/graph_routes.py:1-30, lightrag/api/routers/ollama_api.py:1-50

认证与安全

LightRAG 实现了多层安全模型:

  1. 基于 JWT 的认证: 支持 OAuth2 密码流程,并支持可配置的令牌过期时间(TOKEN_EXPIRE_HOURS)。
  2. API 密钥访问: 请求可以通过 X-API-Key 请求头进行认证。
  3. 令牌自动续期: 一种滑动窗口机制(TOKEN_AUTO_RENEW),当用户在令牌即将过期时处于活跃状态,会发出一个 X-New-Token 请求头。
  4. 白名单支持: 允许特定路径(如 /health)绕过认证。

详情请参见 认证与安全

来源: lightrag/api/auth.py:1-60, lightrag/api/utils_api.py:120-175, lightrag/api/config.py:159-169

API 交互流程

下图展示了请求如何从网络流入核心代码实体。

LightRAG · API 交互流程 · 图 2
LightRAG · API 交互流程 · 图 2

来源:lightrag/api/lightrag_server.py:1021-1050, lightrag/api/utils_api.py:120-135, lightrag/api/routers/query_routes.py:80-110