Agentic RAG 基于 LangChain 1.1 标准 Agent 架构的 RAG 示例,配合 DeepSeek-Chat 与 FAISS,涵盖动态系统提示、工具调用和可溯源引用展示。 功能特性 智能 Agent 架构 —— 基于 LangChain 1.1 标准 Agent 实现,支持动态工具选择和调用 双层文档切分 —— Markdown 章节识别 + 递归字符切分,兼顾语义完整性与检索精度 可溯源引用 —— 工具返回 ,前端可展示引用来源与相关性分数 动态系统提示 —— 根据知识库元数据自动组装场景化 System Prompt 本地向量存储 —— FAISS 本地存储,无需外部向量数据库,数据隐私可控 技术栈 层级 | 技术 后端 | FastAPI + LangChain
基于 LangChain 1.1 标准 Agent 架构的 RAG 示例,配合 DeepSeek-Chat 与 FAISS,涵盖动态系统提示、工具调用和可溯源引用展示。
content_and_artifact,前端可展示引用来源与相关性分数| 层级 | 技术 |
|---|---|
| 后端 | FastAPI + LangChain 1.1 + OpenAI Embeddings |
| 前端 | Vite + React |
| 向量库 | FAISS |
| LLM | DeepSeek-Chat / OpenAI |
backend/ ├─ app/ │ ├─ main.py # 应用入口与 CORS 配置 │ ├─ api/endpoints.py # 上传/建库/召回/对话接口 │ ├─ services/ │ │ ├─ file_service.py # 文件清洗、切分、向量化、元数据生成 │ │ └─ agent_service.py # Agent 编排、工具绑定、结果解析 ├─ data/ │ ├─ uploads/ # 上传文件临时存放 │ └─ vector_stores/ # FAISS 索引与 metadata.json frontend/ # Web 客户端,详情见 frontend/README.md docs/ # 项目的AI开发文档,用于展示项目开发过程
cp .env.example .env # 根据实际情况修改 .env 文件中的各项参数
cd backend pip install -r requirements.txt # 安装依赖 uvicorn app.main:app --host 0.0.0.0 --port 8002 --reload # 启动服务 curl http://localhost:8002/health # 健康检查
cd ../frontend pnpm install # 或 npm install pnpm dev # 默认代理 http://localhost:8002
POST /api/upload,返回文件名列表。POST /api/kb/create,参数 kb_name、file_filenames、chunk_size、chunk_overlap。POST /api/kb/recall,查看检索片段与分数。POST /api/chat,携带 query 与可选 kb_name、top_k,返回回答与引用来源。POST /api/upload:上传 Markdown/文本文件。POST /api/kb/create:基于上传文件构建向量库。POST /api/kb/recall:仅检索不生成回答,返回文档片段与分数。POST /api/chat:Agentic RAG 对话,返回 answer 与 sources。GET /health:服务探活。Q: 为什么对话没有返回引用来源?
A: 请确认:
kb_name/api/kb/create 成功构建Q: 相关性分数如何解读?
A: 使用 FAISS L2 距离,数值越小表示相关性越高。建议根据实际效果调整 top_k 参数。
Q: 模型无响应或返回错误?
A: 请检查:
DEEPSEEK_API_KEY 或 OPENAI_API_KEY 是否正确配置