# wanjuan-rag
**Repository Path**: jeanlv/wanjuan-rag
## Basic Information
- **Project Name**: wanjuan-rag
- **Description**: 万卷灵析--多模态RAG智能知识管理与分析平台
- 万卷:化用“读书破万卷”,直指海量知识库。
- 灵析:灵妙的解析,精准描述RAG的检索增强生成过程。
- 整体感:在传承“万卷书”的厚重基础上,赋予了“灵性解析”的现代科技内核,既经典又新颖。
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2025-12-01
- **Last Updated**: 2026-03-12
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 万卷灵析 (WanJuan-RAG)
> 企业级多模态 RAG 智能知识管理与分析平台
万卷灵析是一个基于 LightRAG 和 RAGAnything 构建的现代化知识管理系统,支持多种格式文档的上传、解析、知识图谱构建和智能问答检索。
## 📸 项目截图
## 🏗️ 系统架构
```
┌─────────────────────────────────────────────────────────────────────────────┐
│ 前端应用 │
│ ┌───────────────────────────────┐ ┌───────────────────────────────┐ │
│ │ frontend-chat (Next.js) │ │ frontend-manage (Next.js) │ │
│ │ ┌───────────────────────┐ │ │ ┌─────────┐ ┌───────────┐ │ │
│ │ │ 智能对话助手 │ │ │ │文档管理 │ │ 知识图谱 │ │ │
│ │ │ (LangGraph SDK) │ │ │ └─────────┘ └───────────┘ │ │
│ │ └───────────────────────┘ │ │ ┌─────────┐ ┌───────────┐ │ │
│ │ │ 流式对话 │ 历史管理 │ │ │ │智能问答 │ │ 控制台 │ │ │
│ │ │ 工具展示 │ 文件上传 │ │ │ └─────────┘ └───────────┘ │ │
│ └───────────────────────────────┘ └───────────────────────────────┘ │
└───────────────┬─────────────────────────────────────┬───────────────────────┘
│ LangGraph API │ HTTP/REST/SSE
┌───────────────▼─────────────────────────────────────▼───────────────────────┐
│ 后端服务 │
│ ┌────────────────────────────────┐ ┌────────────────────────────────┐ │
│ │ LangGraph Chat Server │ │ FastAPI (main.py) │ │
│ │ (端口: 2025) │ │ (端口: 8866) │ │
│ │ ┌──────────────────────────┐ │ │ ┌──────────┐ ┌───────────┐ │ │
│ │ │ LangGraph RAG Agent │ │ │ │Documents │ │ Query │ │ │
│ │ │ ┌─────────┐ ┌────────┐ │ │ │ │ API │ │ API │ │ │
│ │ │ │Query │ │Parallel│ │ │ │ └──────────┘ └───────────┘ │ │
│ │ │ │Rewriter │ │Retrieval│ │ │ │ ┌──────────┐ ┌───────────┐ │ │
│ │ │ └─────────┘ └────────┘ │ │ │ │ Graph │ │ Health │ │ │
│ │ │ ┌─────────┐ ┌────────┐ │ │ │ │ API │ │ API │ │ │
│ │ │ │Reranker │ │Synthesis│ │ │ │ └──────────┘ └───────────┘ │ │
│ │ │ └─────────┘ └────────┘ │ │ └────────────────────────────────┘ │
│ │ └──────────────────────────┘ │ │
│ └────────────────────────────────┘ │
│ │
│ ┌────────────────────────────────┐ ┌────────────────────────────────┐ │
│ │ MCP Server (FastMCP) │ │ RAG Engine │ │
│ │ (端口: 8002) │ │ ┌──────────────────────────┐ │ │
│ │ ┌───────────┐ ┌────────────┐ │ │ │ LightRAG │ │ │
│ │ │rag_answer │ │rag_retrieve│ │ │ │ (知识图谱 + 检索) │ │ │
│ │ └───────────┘ └────────────┘ │ │ └──────────────────────────┘ │ │
│ │ ┌───────────┐ ┌────────────┐ │ │ ┌──────────────────────────┐ │ │
│ │ │query │ │multi_query │ │ │ │ RAGAnything │ │ │
│ │ │_rewrite │ │_search │ │ │ │ (多模态文档处理) │ │ │
│ │ └───────────┘ └────────────┘ │ │ └──────────────────────────┘ │ │
│ └────────────────────────────────┘ └────────────────────────────────┘ │
│ │
│ ┌──────────────────────────────────────────────────────────────────┐ │
│ │ 存储层 │ │
│ │ ┌───────────┐ ┌───────────┐ ┌───────────┐ │ │
│ │ │ KV Storage│ │ Vector │ │ Graph │ │ │
│ │ │(JSON/Redis│ │(Nano/Milv │ │(NetworkX/ │ │ │
│ │ │ /PG) │ │ us/PG) │ │ Neo4j) │ │ │
│ │ └───────────┘ └───────────┘ └───────────┘ │ │
│ └──────────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────────────┘
```
## 🛠️ 技术栈
### 前端 - 智能对话 (frontend-chat)
| 类别 | 技术 | 版本 | 说明 |
|------|------|------|------|
| **框架** | Next.js | 15.2.3 | React 全栈框架,支持 App Router |
| **UI 库** | React | 19.0.0 | 最新 React 版本 |
| **LangGraph** | @langchain/langgraph-sdk | 0.1.0 | LangGraph 客户端 SDK |
| **流式处理** | @langchain/langgraph-sdk/react | - | React 流式 Hooks |
| **样式** | Tailwind CSS | 4.x | 原子化 CSS 框架 |
| **组件库** | Radix UI | 1.x | 无障碍 UI 原语组件 |
| **动画** | Framer Motion | 12.x | 流畅动画库 |
| **图标** | Lucide React | 0.476.0 | 现代图标库 |
| **Markdown** | react-markdown | 10.0.1 | Markdown 渲染 |
| **数学公式** | KaTeX + rehype-katex | 0.16.x | LaTeX 公式渲染 |
| **代码高亮** | react-syntax-highlighter | 15.5.0 | 代码语法高亮 |
| **通知** | Sonner | 2.0.1 | Toast 通知组件 |
| **图表** | Recharts | 2.15.1 | 数据可视化图表 |
| **URL 状态** | nuqs | 2.4.1 | URL 查询参数状态管理 |
| **语言** | TypeScript | 5.7.x | 类型安全 |
### 前端 - 管理控制台 (frontend-manage)
| 类别 | 技术 | 版本 | 说明 |
|------|------|------|------|
| **框架** | Next.js | 16.0.5 | React 全栈框架,支持 App Router |
| **UI 库** | React | 19.2.0 | 最新 React 版本 |
| **样式** | Tailwind CSS | 4.x | 原子化 CSS 框架 |
| **组件库** | Radix UI | 1.x | 无障碍 UI 原语组件 |
| **图标** | Lucide React | 0.460.0 | 现代图标库 |
| **状态管理** | Zustand | 5.0.0 | 轻量级状态管理 |
| **HTTP 客户端** | Axios | 1.7.0 | Promise 式 HTTP 库 |
| **图谱可视化** | react-force-graph-2d | 1.29.0 | 力导向图渲染 |
| **Markdown** | react-markdown | 10.1.0 | Markdown 渲染 |
| **语言** | TypeScript | 5.x | 类型安全 |
### 后端 (backend)
| 类别 | 技术 | 版本 | 说明 |
|------|------|------|------|
| **框架** | FastAPI | 0.122.0+ | 高性能异步 Web 框架 |
| **ASGI 服务器** | Uvicorn | 0.38.0+ | 支持 HTTP/WebSocket |
| **配置管理** | Pydantic Settings | 2.12.0+ | 类型安全配置 |
| **日志** | Loguru | 0.7.3+ | 结构化日志 |
| **LLM 集成** | OpenAI SDK | 1.50.0+ | GPT/兼容模型 |
| **LangGraph** | langgraph | - | Agent 工作流框架 |
| **LangChain** | langchain-core | 0.3.x | LLM 应用框架 |
| **MCP** | FastMCP | - | Model Context Protocol 服务 |
| **Embedding** | tiktoken | 0.7.0+ | Token 计算 |
| **本地模型** | Ollama | 0.3.0+ | 本地 LLM 支持 |
| **文档解析** | Docling | 2.63.0+ | 多模态文档解析 |
| **向量数据库** | nano-vectordb | 0.0.4+ | 轻量级向量存储 |
| **图数据库** | NetworkX | 3.3+ | 图数据结构 |
| **语言** | Python | 3.13+ | 最新 Python 版本 |
### 可选存储后端
| 组件 | 选项 | 用途 |
|------|------|------|
| **KV 存储** | JSON / Redis / PostgreSQL | 键值对存储 |
| **向量存储** | NanoVectorDB / Milvus / PostgreSQL | 向量检索 |
| **图存储** | NetworkX / Neo4j / PostgreSQL | 知识图谱 |
| **文档状态** | JSON / Redis / PostgreSQL | 文档处理状态 |
## 📁 项目结构
```
wanjuan-rag/
├── frontend-chat/ # 智能对话前端 (LangGraph SDK)
│ ├── src/
│ │ ├── app/ # Next.js App Router 页面
│ │ │ ├── page.tsx # 对话主页
│ │ │ ├── layout.tsx # 根布局
│ │ │ └── globals.css # 全局样式
│ │ ├── components/ # React 组件
│ │ │ ├── thread/ # 对话线程组件
│ │ │ │ ├── index.tsx # 主对话组件
│ │ │ │ ├── messages/ # 消息组件 (AI/Human)
│ │ │ │ ├── history/ # 历史记录组件
│ │ │ │ ├── artifact.tsx # Artifact 展示
│ │ │ │ └── markdown-text.tsx # Markdown 渲染
│ │ │ ├── ui/ # 基础 UI 组件
│ │ │ └── icons/ # 图标组件
│ │ ├── providers/ # React Context Providers
│ │ │ ├── Stream.tsx # 流式对话 Provider
│ │ │ ├── Thread.tsx # 线程管理 Provider
│ │ │ └── client.ts # LangGraph 客户端
│ │ ├── hooks/ # 自定义 Hooks
│ │ └── lib/ # 工具库
│ ├── public/ # 静态资源
│ └── package.json
│
├── frontend-manage/ # 管理控制台前端
│ ├── src/
│ │ ├── app/ # Next.js App Router 页面
│ │ │ ├── page.tsx # 首页
│ │ │ ├── layout.tsx # 根布局
│ │ │ ├── globals.css # 全局样式
│ │ │ └── dashboard/ # 仪表板
│ │ │ ├── page.tsx # 控制台首页
│ │ │ ├── documents/ # 文档管理页
│ │ │ ├── graph/ # 知识图谱页
│ │ │ └── retrieval/ # 智能问答页
│ │ ├── components/ # React 组件
│ │ │ ├── ui/ # 基础 UI 组件
│ │ │ ├── graph/ # 图谱相关组件
│ │ │ ├── retrieval/ # 检索相关组件
│ │ │ └── layout/ # 布局组件
│ │ └── lib/ # 工具库
│ │ ├── api.ts # API 客户端封装
│ │ ├── stores.ts # Zustand 状态存储
│ │ └── utils.ts # 工具函数
│ ├── public/ # 静态资源
│ └── package.json
│
├── backend/ # 后端项目
│ ├── main.py # FastAPI 应用入口
│ ├── langgraph_chat_server.py # LangGraph API 服务器
│ ├── langgraph.json # LangGraph 图配置
│ ├── agents/ # LangGraph RAG Agent
│ │ ├── __init__.py # 模块导出
│ │ ├── rag_agent.py # RAG Agent 图定义
│ │ ├── mcp_rag_agent.py # MCP RAG Agent
│ │ ├── models.py # 数据模型
│ │ ├── prompts.py # 提示词模板
│ │ ├── nodes/ # LangGraph 节点
│ │ │ ├── query_rewriter.py # 问题改写节点
│ │ │ ├── retriever.py # 检索节点
│ │ │ ├── reranker.py # 重排序节点
│ │ │ └── synthesizer.py # 答案合成节点
│ │ └── mcp/ # MCP 服务模块
│ │ ├── server.py # FastMCP 服务器
│ │ ├── connector.py # RAG 连接器
│ │ ├── models.py # MCP 数据模型
│ │ └── tools/ # MCP 工具实现
│ ├── app/
│ │ ├── api/ # FastAPI 路由
│ │ │ ├── router.py # 路由聚合
│ │ │ └── v1/ # V1 版本 API
│ │ │ ├── documents.py # 文档管理 API
│ │ │ ├── query.py # 查询检索 API
│ │ │ ├── graph.py # 知识图谱 API
│ │ │ └── health.py # 健康检查 API
│ │ ├── core/ # 核心模块
│ │ ├── models/ # 数据模型
│ │ └── rag/ # RAG 核心引擎
│ │ ├── engine.py # RAG 引擎封装
│ │ ├── lightrag/ # LightRAG 源码
│ │ ├── raganything/ # RAGAnything 多模态
│ │ ├── llm/ # LLM 绑定
│ │ └── storage/ # 存储工厂
│ ├── rag_storage/ # 数据存储目录
│ ├── logs/ # 日志目录
│ ├── pyproject.toml # Python 依赖配置
│ └── .env # 环境变量配置
│
├── images/ # 项目截图
└── README.md # 项目文档
```
## 🔄 核心逻辑流程
### 1. 文档处理流程
```
用户上传文档 → 文件类型验证 → 保存到磁盘
↓
┌─────────┴─────────┐
│ │
纯文本文件 复杂文档(PDF/DOCX)
(TXT/MD/JSON) │
│ ↓
│ RAGAnything 解析
│ (图片/表格/公式)
│ │
└─────────┬──────────┘
↓
文本分块处理
↓
┌─────────┴─────────┐
↓ ↓
Embedding 向量化 LLM 实体抽取
↓ ↓
存入向量数据库 构建知识图谱
↓
文档状态更新为完成
```
### 2. LangGraph RAG Agent 流程 (新增)
```
用户提问 (Messages)
│
▼
┌────────────────────┐
│ Query Rewriter │ ← 多策略问题改写
│ (问题改写节点) │ - original: 保留原始
│ │ - simplify: 简化查询
│ │ - expand: 扩展概念
│ │ - rephrase: 重新表述
└────────┬───────────┘
│ 生成 3-5 个查询变体
▼
┌────────────────────┐
│ Parallel Retrieval │ ← LangGraph Send API
│ (并行检索节点) │ 为每个查询创建独立 Worker
│ │ 并行执行向量检索
└────────┬───────────┘
│ 合并所有检索结果
▼
┌────────────────────┐
│ Reranker │ ← 智能重排序
│ (重排序节点) │ - chunk_id 去重
│ │ - 内容哈希去重
│ │ - 可选 LLM 重排序
│ │ - 多样性优化
└────────┬───────────┘
│ Top-K 结果
▼
┌────────────────────┐
│ Synthesizer │ ← 答案合成
│ (答案合成节点) │ - 构建上下文
│ │ - LLM 生成答案
│ │ - 添加来源引用
└────────┬───────────┘
│
▼
流式返回答案 (AIMessage)
```
### 3. 传统检索流程
```
用户提问 → 查询预处理 → 选择检索模式
│
┌────────────────────┼────────────────────┐
↓ ↓ ↓
naive 模式 local 模式 global 模式
(纯向量检索) (本地图谱检索) (全局图谱检索)
│ │ │
└────────────────────┼────────────────────┘
↓
hybrid/mix 模式
(混合检索策略)
↓
结果重排序
↓
LLM 生成回答 (流式/非流式)
↓
返回前端展示
```
### 4. 知识图谱构建流程
```
文档文本 → LLM 实体抽取 → 实体去重合并
↓
关系抽取
↓
构建 (节点, 边) 结构
↓
存入图数据库
↓
前端力导向图可视化
```
## ✨ 功能特性
### 智能对话助手 (frontend-chat) 🆕
- **LangGraph SDK 集成**: 基于 `@langchain/langgraph-sdk` 实现流式对话
- **实时流式响应**: 使用 React Hooks 实现 SSE 流式输出
- **对话线程管理**: 支持创建、切换、删除对话历史
- **工具调用展示**: 可视化展示 Agent 工具调用过程
- **多模态输入**: 支持上传 PDF、图片等文件
- **Artifact 展示**: 支持代码、图表等 Artifact 侧边栏展示
- **Markdown 增强**: 支持代码高亮、数学公式 (KaTeX)、GFM 语法
- **响应式布局**: 适配桌面和移动端
### LangGraph RAG Agent 🆕
- **多查询改写 (Query Rewriting)**
- original: 保留原始查询
- simplify: 简化查询,去除冗余
- expand: 扩展相关概念
- rephrase: 用不同方式重新表述
- decompose: 将复杂问题分解
- **并行检索 (Parallel Retrieval)**
- 使用 LangGraph Send API 实现真正的并行
- 每个查询变体独立检索,结果自动合并
- **智能重排序 (Smart Reranking)**
- chunk_id 精确去重
- 内容哈希去重
- 可选 LLM 相关性评分
- 多样性优化,覆盖不同来源
- **答案合成 (Answer Synthesis)**
- 智能上下文构建
- 来源引用标注
- 降级处理策略
### MCP Server (Model Context Protocol) 🆕
- **FastMCP 实现**: 基于 FastMCP 框架的 RAG 工具服务
- **SSE 传输**: 支持 Server-Sent Events 传输协议
- **四大核心工具**:
- `rag_query_rewrite`: 查询改写工具
- `rag_retrieve`: 文档检索工具
- `rag_answer`: 完整 RAG 流程工具
- `rag_multi_query_search`: 多查询搜索工具
- **可配置参数**: 支持 top_k、num_variants、enable_llm_rerank 等
### LangGraph Chat Server 🆕
- **独立服务**: 端口 2025,支持 LangGraph Studio
- **图配置**: 通过 `langgraph.json` 配置多个 Agent 图
- **内存模式**: 支持开发环境内存存储
- **热重载**: 开发模式自动重载
### 文档管理
- **多格式支持**: TXT, MD, PDF, DOCX, PPTX, XLSX, HTML, JSON, 代码文件等
- **异步处理**: 文档上传后异步解析,SSE 实时进度推送
- **多模态处理**: 支持 PDF 中的图片、表格、公式提取和描述
- **状态追踪**: 完整的文档生命周期管理
### 知识图谱
- **自动构建**: LLM 驱动的实体和关系抽取
- **可视化**: 力导向图交互式展示
- **节点搜索**: 支持标签搜索和热门标签推荐
- **邻居探索**: 点击节点查看关联实体
### 智能问答 (传统模式)
- **多检索模式**: naive / local / global / hybrid / mix
- **流式回答**: SSE 流式输出,实时展示生成过程
- **对话历史**: 支持多轮对话上下文
- **参数可调**: 检索数量、Token 限制等可配置
- **Markdown 渲染**: 支持代码高亮和格式化展示
### 系统特性
- **多存储后端**: 灵活选择 JSON/Redis/PostgreSQL/Neo4j/Milvus
- **多 LLM 支持**: OpenAI / Azure OpenAI / Ollama / DeepSeek 等
- **统一响应格式**: 标准化 API 响应结构
- **完善的日志**: 结构化日志记录和日志轮转
- **CORS 支持**: 跨域请求配置
## 🎯 技术优势
### 架构优势
1. **前后端分离**: 独立部署、独立扩展
2. **双前端架构**: 智能对话 + 管理控制台分离
3. **模块化设计**: RAG 引擎、存储、LLM 绑定解耦
4. **插件化存储**: 通过配置切换不同存储后端
5. **异步优先**: FastAPI + asyncio 高并发处理
6. **Agent 架构**: LangGraph 实现可编排的智能体工作流
### 性能优势
1. **流式响应**: SSE 实现实时数据推送
2. **并行检索**: LangGraph Send API 实现真正的并行处理
3. **智能重排序**: 多策略去重 + 可选 LLM 重排序
4. **异步文档处理**: 上传即返回,后台处理
5. **LLM 缓存**: 避免重复调用,降低成本
6. **批量 Embedding**: 批量向量化提升效率
### 召回优化
1. **多查询改写**: 生成多个查询变体提高召回率
2. **并行检索**: 对每个变体并行检索,结果自动合并
3. **智能去重**: chunk_id + 内容哈希双重去重
4. **多样性优化**: 确保结果覆盖不同来源
5. **可选 LLM 重排序**: 更精准的相关性评估
### 用户体验
1. **现代化 UI**: Tailwind CSS + Radix UI 精美界面
2. **响应式设计**: 适配多种屏幕尺寸
3. **实时反馈**: 处理进度、流式回答
4. **工具调用可视化**: 展示 Agent 思考过程
5. **对话历史管理**: 线程列表、切换、删除
6. **状态持久化**: URL 参数 + localStorage
### 可扩展性
1. **多模态扩展**: RAGAnything 支持图片/表格/公式
2. **模型灵活**: 支持 OpenAI、Azure、Ollama、DeepSeek 等
3. **MCP 协议**: 支持 Model Context Protocol 工具集成
4. **存储可选**: 从单机 JSON 到分布式 PostgreSQL/Neo4j
5. **工作空间隔离**: 多租户数据隔离
## 🚀 快速开始
### 环境要求
- **Node.js**: 18.0+
- **Python**: 3.13+
- **包管理器**: npm/pnpm (前端) + uv/pip (后端)
### 后端启动
```bash
# 进入后端目录
cd backend
# 安装依赖 (推荐使用 uv)
uv sync
# 配置环境变量 (复制并修改)
cp .env.example .env
# 编辑 .env 配置 LLM_API_KEY 等
# 启动 FastAPI 服务 (文档管理/知识图谱/传统问答)
uv run python main.py
# 服务地址: http://localhost:8866
# API 文档: http://localhost:8866/docs
# 启动 LangGraph Chat Server (智能对话 Agent)
uv run python langgraph_chat_server.py
# 服务地址: http://localhost:2025
# Studio UI: http://localhost:2025/ui
# 启动 MCP Server (可选,用于 MCP 客户端集成)
uv run python -m agents.mcp.server --port 8002
# 服务地址: http://localhost:8002/sse
```
### 智能对话前端启动 (frontend-chat)
```bash
# 进入智能对话前端目录
cd frontend-chat
# 安装依赖 (使用 pnpm)
pnpm install
# 配置环境变量
echo "NEXT_PUBLIC_API_URL=http://localhost:2025" > .env.local
echo "NEXT_PUBLIC_ASSISTANT_ID=rag_agent" >> .env.local
# 开发模式启动
pnpm dev
# 访问地址: http://localhost:3000
```
### 管理控制台前端启动 (frontend-manage)
```bash
# 进入管理前端目录
cd frontend-manage
# 安装依赖
npm install
# 配置环境变量 (可选)
echo "NEXT_PUBLIC_API_URL=http://localhost:8866" > .env.local
# 开发模式启动
npm run dev
# 访问地址: http://localhost:3001
```
## ⚙️ 环境变量配置
### 后端配置 (.env)
```bash
# 应用配置
APP_NAME=万卷灵析
DEBUG=true
HOST=0.0.0.0
PORT=8866
# LLM 配置
LLM_BINDING=openai
LLM_BINDING_HOST=https://api.openai.com/v1
LLM_MODEL=gpt-4o-mini
LLM_API_KEY=sk-xxx
# Embedding 配置
EMBEDDING_BINDING=openai
EMBEDDING_MODEL=text-embedding-3-small
EMBEDDING_DIM=1536
EMBEDDING_API_KEY=sk-xxx
# 视觉模型配置 (多模态)
VL_BINDING=openai
VL_MODEL=gpt-4o
VL_BINDING_API_KEY=sk-xxx
# 存储配置
KV_STORAGE=JsonKVStorage
VECTOR_STORAGE=NanoVectorDBStorage
GRAPH_STORAGE=NetworkXStorage
WORKSPACE=default
# 可选: Redis/PostgreSQL/Neo4j/Milvus 配置
# REDIS_URI=redis://localhost:6379
# NEO4J_URI=bolt://localhost:7687
# ...
```
### 智能对话前端配置 (frontend-chat/.env.local)
```bash
# LangGraph API 服务器地址
NEXT_PUBLIC_API_URL=http://localhost:2025
# Agent/Graph ID (对应 langgraph.json 中的配置)
NEXT_PUBLIC_ASSISTANT_ID=rag_agent
```
### 管理控制台前端配置 (frontend-manage/.env.local)
```bash
NEXT_PUBLIC_API_URL=http://localhost:8866
```
## 📝 API 接口
### LangGraph API (端口 2025)
| 方法 | 路径 | 说明 |
|------|------|------|
| GET | `/info` | 服务信息 |
| GET | `/ok` | 健康检查 |
| POST | `/threads` | 创建对话线程 |
| GET | `/threads` | 线程列表 |
| GET | `/threads/{thread_id}` | 获取线程 |
| DELETE | `/threads/{thread_id}` | 删除线程 |
| POST | `/threads/{thread_id}/runs` | 执行 Agent 运行 |
| POST | `/threads/{thread_id}/runs/stream` | 流式执行 |
| GET | `/threads/{thread_id}/state` | 获取线程状态 |
| GET | `/assistants` | 助手列表 |
| GET | `/ui` | LangGraph Studio UI |
### MCP 工具 (端口 8002)
| 工具名称 | 说明 | 主要参数 |
|------|------|------|
| `rag_query_rewrite` | 查询改写 | question, num_variants |
| `rag_retrieve` | 文档检索 | query, top_k |
| `rag_answer` | 完整 RAG 流程 | question, num_variants, k_per_query, top_k, enable_llm_rerank |
| `rag_multi_query_search` | 多查询搜索 | queries, k_per_query, top_k |
### FastAPI (端口 8866)
#### 文档管理
| 方法 | 路径 | 说明 |
|------|------|------|
| POST | `/api/documents/upload` | 上传文档 |
| POST | `/api/documents/text` | 插入文本 |
| GET | `/api/documents` | 文档列表 |
| GET | `/api/documents/{id}` | 文档详情 |
| GET | `/api/documents/{id}/progress` | 处理进度 (SSE) |
| GET | `/api/documents/{id}/chunks` | 文档分块 |
| DELETE | `/api/documents/{id}` | 删除文档 |
#### 智能检索 (传统模式)
| 方法 | 路径 | 说明 |
|------|------|------|
| POST | `/api/query` | RAG 查询 |
| POST | `/api/query/stream` | 流式查询 |
| GET | `/api/query/modes` | 检索模式列表 |
#### 知识图谱
| 方法 | 路径 | 说明 |
|------|------|------|
| GET | `/api/graph` | 获取图谱数据 |
| GET | `/api/graph/stats` | 图谱统计 |
| GET | `/api/graph/node/{id}` | 节点详情 |
| POST | `/api/graph/search/labels` | 搜索标签 |
| GET | `/api/graph/labels/popular` | 热门标签 |
## 📄 许可证
MIT License
## 👨💻 作者
jinglv
---
**万卷灵析** - 让知识触手可及 📚