Agentic RAG(智能体检索增强生成)系统是我基于 TypeScript 全栈开发的智能文档问答平台。该系统结合业界前沿的 LangChain 生态和 LangGraph 编排框架,配合 Chroma 向量数据库,构建了一个具备自我反思、自我修正能力的智能问答系统。
传统 RAG 系统在面对复杂查询时往往存在检索不准确的问题。本项目通过引入智能体思维,实现了:
本项目采用分层架构设计,确保系统的高可维护性和扩展性:
设计目标:构建文档处理与基础检索能力
核心实现:
技术亮点:
设计目标:实现具备自我修正能力的智能问答系统
核心架构:
智能决策流程:
| 技术组件 | 选型理由 | 实现功能 |
|---|---|---|
| TypeScript | 类型安全,工程化友好 | 全栈开发,确保代码质量 |
| LangChain.js | AI 应用开发标准框架 | 构建基础组件链式调用 |
| LangGraph.js | 支持循环结构的图编排 | 实现智能体的决策闭环 |
| Chroma | 轻量级本地向量数据库 | 高效的向量存储与检索 |
| Docker | 环境一致性保障 | 数据库容器化部署 |
// 文件加载器工厂模式
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);
}
}
// 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'
});
}
多格式文档支持
智能检索优化
企业级部署
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 # 项目依赖配置
# 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
本系统的核心创新在于引入了自我反思与修正机制:
如有技术问题或合作意向,欢迎通过以下方式联系:
本项目采用 MIT 开源协议,欢迎技术交流与二次开发。
构建者:LGJ
技术栈:TypeScript + LangChain + LangGraph + ChromaDB + Deepseek API
项目类型:全栈 AI 应用开发
最后更新:2026年1月