logo
0
0
WeChat Login

🚀 Agentic RAG 智能检索增强生成系统

📋 项目概述

Agentic RAG(智能体检索增强生成)系统是我基于 TypeScript 全栈开发的智能文档问答平台。该系统结合业界前沿的 LangChain 生态和 LangGraph 编排框架,配合 Chroma 向量数据库,构建了一个具备自我反思、自我修正能力的智能问答系统。

🎯 核心价值

传统 RAG 系统在面对复杂查询时往往存在检索不准确的问题。本项目通过引入智能体思维,实现了:

  • 智能检索:基于语义理解的文档检索
  • 自我评估:LLM 驱动的相关性评分机制
  • 动态优化:问题重写与二次检索的闭环优化
  • 企业级应用:完整的文档管理和问答流程

🏗️ 系统架构设计

模块化架构

本项目采用分层架构设计,确保系统的高可维护性和扩展性:

1. 基础 RAG 模块 (src/1-simple-rag/)

设计目标:构建文档处理与基础检索能力

核心实现

  • 向量化引擎:基于 Chroma 的本地向量数据库
  • 文档处理流水线:文本清洗 → 智能分块 → 向量化存储
  • 基础检索:相似度匹配与 Top-K 片段提取

技术亮点

  • 支持多种文档格式(Markdown、TXT、PDF、Word、Excel)
  • 自适应文本分块策略,确保语义完整性
  • 高效的向量索引构建与查询优化

2. 智能体 RAG 模块 (src/2-agentic-rag/)

设计目标:实现具备自我修正能力的智能问答系统

核心架构

智能决策流程

  1. 检索阶段:基于语义相似度检索相关文档片段
  2. 评估阶段:LLM 作为智能评估器,判断检索结果的准确性
  3. 优化阶段:当评估不通过时,系统自动重写查询并重新检索
  4. 生成阶段:基于高质量检索结果生成最终答案

🛠️ 技术栈与实现细节

核心技术选型

技术组件选型理由实现功能
TypeScript类型安全,工程化友好全栈开发,确保代码质量
LangChain.jsAI 应用开发标准框架构建基础组件链式调用
LangGraph.js支持循环结构的图编排实现智能体的决策闭环
Chroma轻量级本地向量数据库高效的向量存储与检索
Docker环境一致性保障数据库容器化部署

关键实现技术

1. 文档处理流水线

// 文件加载器工厂模式 class FileLoaderFactory { static createLoader(fileType: string): FileLoader { switch(fileType) { case '.md': return new MarkdownLoader(); case '.pdf': return new PDFLoader(); // ... 其他格式支持 } } } // 智能文本分割 class SmartTextSplitter { splitText(content: string): DocumentChunk[] { // 基于语义边界的智能分割算法 return this.semanticSplit(content); } }

2. 智能体决策引擎

// StateGraph 状态图定义 export function createAgenticRAGWorkflow() { const workflow = new StateGraph(GraphStateSchema) .addNode('retrieve', retrieveNode) .addNode('grade', gradeNode) .addNode('generate', generateNode) .addNode('rewrite', rewriteNode); // 条件路由逻辑 workflow.addConditionalEdges('grade', routeCondition, { generate: 'generate', rewrite: 'rewrite' }); }

📊 系统特性与优势

🔧 核心功能特性

  1. 多格式文档支持

    • Markdown、TXT、PDF、Word、Excel 等格式
    • 自动格式识别与内容提取
  2. 智能检索优化

    • 语义相似度检索
    • 相关性自动评估
    • 动态查询重写
  3. 企业级部署

    • Docker 容器化部署
    • 环境配置自动化
    • 监控与日志系统

🚀 性能优势

  • 响应速度:毫秒级文档检索
  • 准确率:智能评估机制提升答案质量
  • 扩展性:模块化设计支持功能快速迭代
  • 稳定性:完整的错误处理与重试机制

📁 项目结构

LGJ_Repo-agentic-rag/ ├── src/ │ ├── models/ # 模型调用层 │ │ ├── embedding.ts # 向量化模型 │ │ └── llm.ts # 语言模型接口 │ ├── db/ # 数据访问层 │ │ └── chroma-client.ts # Chroma 数据库客户端 │ ├── file-loaders/ # 文件加载模块 │ │ ├── pdf-loader.ts # PDF 文档加载 │ │ ├── docx-loader.ts # Word 文档加载 │ │ └── index.ts # 加载器工厂 │ ├── file-splitter/ # 文本分割模块 │ │ ├── text-splitter.ts # 基础文本分割 │ │ ├── markdown-splitter.ts # Markdown 智能分割 │ │ └── index.ts # 分割器工厂 │ ├── 1-simple-rag/ # 基础 RAG 实现 │ │ ├── ingest.ts # 文档入库 │ │ └── query.ts # 基础查询 │ └── 2-agentic-rag/ # 智能体 RAG 实现 │ ├── graph.ts # 工作流图定义 │ ├── nodes.ts # 节点函数实现 │ ├── state.ts # 状态管理 │ ├── main.ts # 主程序入口 │ └── cli.ts # 命令行接口 ├── data/ # 示例文档数据 ├── docker-compose.yaml # 数据库容器配置 ├── .env.example # 环境配置模板 └── package.json # 项目依赖配置

🚀 快速部署与使用

环境要求

  • Node.js 18+
  • Docker & Docker Compose
  • 可选的 OpenAI API Key 或本地模型服务

一键部署

# 1. 启动向量数据库 docker compose up -d # 2. 安装项目依赖 npm install # 3. 配置环境变量 cp .env.example .env # 编辑 .env 文件,配置模型服务 # 4. 文档向量化入库 npm run rag:ingest # 5. 启动智能问答系统 npm run agent:run

使用示例

# 基础文档检索测试 npm run rag:query # 启动智能体交互模式 npm run agent:run # 开发模式(热重载) npm run dev

🔍 技术深度解析

智能体决策机制

本系统的核心创新在于引入了自我反思与修正机制:

  1. 检索质量评估:LLM 对检索结果进行相关性评分
  2. 问题意图分析:当检索失败时,分析用户真实意图
  3. 查询重写优化:基于意图分析生成更准确的查询语句
  4. 闭环优化:通过多次迭代提升答案质量

性能优化策略

  1. 向量索引优化:Chroma 的高效相似度搜索算法
  2. 缓存机制:频繁查询结果的本地缓存
  3. 批量处理:文档入库的批量向量化操作
  4. 异步处理:非阻塞的 I/O 操作设计

🎯 应用场景

企业知识管理

  • 内部文档智能检索
  • 政策法规快速查询
  • 技术文档问答系统

客户服务

  • 智能客服知识库
  • 产品文档自助查询
  • 常见问题自动解答

教育培训

  • 学习资料智能检索
  • 课程内容问答助手
  • 个性化学习推荐

🔮 未来规划

短期优化

  • 支持更多文档格式(PPT、HTML等)
  • 实现多轮对话记忆
  • 增加混合检索策略

中期发展

  • 集成外部知识源(Web Search)
  • 实现多模态文档处理
  • 构建分布式向量数据库集群

长期愿景

  • 构建企业级知识图谱
  • 实现个性化推荐系统
  • 开发可视化配置界面

📞 技术支持

如有技术问题或合作意向,欢迎通过以下方式联系:

  • 项目仓库:[GitHub Repository]
  • 技术文档:[详细技术文档]
  • 联系方式:[您的联系方式]

📄 开源协议

本项目采用 MIT 开源协议,欢迎技术交流与二次开发。


构建者:LGJ
技术栈:TypeScript + LangChain + LangGraph + ChromaDB + Deepseek API
项目类型:全栈 AI 应用开发
最后更新:2026年1月

About

· Agentic RAG 智能体 · 技术栈:TypeScript + LangChain + ChromaDB + DeepSeek API 此系统为本人基于云原生开发环境(CNB)独立设计并开发的智能体RAG(检索增强生成)平台——成功整合了LangChain生态、LangGraph编排框架与向量数据库技术,实现了从文档处理、智能检索到多轮对话的完整AI工程化实践,致力于提供高效、准确的智能问答服务。

Language
TypeScript100%