# 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 --- **万卷灵析** - 让知识触手可及 📚