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%