基于 LangChain 框架开发的智能 AI 助手,融合了 RAG 知识库检索、联网搜索、天气查询 等多功能工具集。创新性地引入 自反思机制,通过多轮质量审查确保 AI 回答的准确性、完整性和有用性。
🚀 这是一个生产级的 AI 助手项目模板,适用于构建私有知识库问答系统、智能客服等应用场景。
| 功能 | 描述 |
|---|---|
| 📚 RAG 知识库 | 基于 ChromaDB 向量数据库,支持本地 PDF 文档的智能检索与语义匹配 |
| 🌐 联网搜索 | 集成 DuckDuckGo 搜索,获取实时最新信息 |
| 🌤️ 天气查询 | 支持实时天气和未来预报查询 |
| 💾 记忆系统 | 轻量级对话记忆,支持上下文理解与用户偏好学习 |
| 特性 | 描述 |
|---|---|
| 🔄 自反思机制 | AI 生成回答后自动进行多维度质量审查 |
| ✅ 完整性检查 | 确保回答覆盖用户的所有问题 |
| 🎯 准确性验证 | 识别并纠正事实错误或误导性信息 |
| 🔒 安全性审查 | 检测潜在风险或不当内容 |
- ReAct 范式:理性推理与工具调用协同工作
- 多轮对话:保持对话连贯性,理解上下文
- 可扩展工具:模块化设计,便于添加新工具
┌─────────────────────────────────────────────────────────────┐
│ 用户界面层 │
│ (Terminal / CLI) │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Self-Reflective Agent │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ 反思审查层 │ │
│ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │
│ │ │ 完整性 │ │ 准确性 │ │ 有用性 │ │ │
│ │ │ 检查 │ │ 验证 │ │ 评估 │ │ │
│ │ └──────────┘ └──────────┘ └──────────┘ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ Smart Assistant │ │
│ │ (ReAct Agent) │ │
│ └─────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 工具层 │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ RAG检索 │ │ 搜索 │ │ 天气 │ │ 记忆 │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ LLM 层 │
│ (讯飞星火 / 智谱 AI Embedding) │
└─────────────────────────────────────────────────────────────┘
agent_langchain_open/
├── main.py # 🎯 主程序入口
├── init_rag.py # 📦 RAG 向量数据库初始化
├── config.py # ⚙️ 配置文件
├── requirements.txt # 📋 Python 依赖列表
│
├── agent/ # 🤖 Agent 核心模块
│ ├── smart_assistant.py # 基础智能助手 (ReAct Agent)
│ └── self_reflective_assistant.py # 带反思机制的智能助手
│
├── memory/ # 💾 记忆系统模块
│ ├── history.py # 对话历史管理器
│ └── light_memory.py # 轻量级记忆系统
│
├── tools/ # 🛠️ 工具集
│ ├── rag_tool.py # RAG 知识库检索工具
│ ├── search_tool.py # 联网搜索工具
│ └── weather_tool.py # 天气查询工具
│
├── llm_spark.py # 🔥 讯飞星火 LLM 调用
├── embedding_zhipu.py # 🧠 智谱 AI Embedding
│
└── docs/ # 📄 知识库文档目录
└── (放置 PDF 文档)
| 要求 | 版本说明 |
|---|---|
| Python | 3.9 或更高版本 |
| API Key | 讯飞星火 API / 智谱 AI API |
git clone https://github.com/L3n3L/agent_langchain_open.git
cd agent_langchain_openpip install -r requirements.txt# 复制环境变量模板
cp .env.example .env编辑 .env 文件,填入你的 API 密钥:
# ===========================================
# 讯飞星火大模型 API 配置
# https://console.xfyun.cn/services/bm35
# ===========================================
SPARK_APP_ID=your_app_id_here
SPARK_API_KEY=your_api_key_here
SPARK_API_SECRET=your_api_secret_here
# ===========================================
# 智谱 AI API 配置
# https://open.bigmodel.cn/
# ===========================================
ZHIPU_API_KEY=your_zhipu_api_key_here# 将 PDF 文档放入 docs/ 目录
# 运行初始化脚本
python init_rag.pypython main.py| 命令 | 别名 | 说明 |
|---|---|---|
/help |
help, 帮助 |
显示帮助信息 |
/reset |
reset, 重置 |
重置对话历史 |
/history |
history, 历史 |
查看对话历史 |
/stats |
stats, 状态 |
查看知识库统计 |
/memory |
memory, 记忆 |
查看记忆摘要 |
/reflection |
reflection, 反思 |
切换反思机制 |
/trace |
trace, 追踪 |
显示执行追踪 |
/pref |
pref, 偏好 |
查看用户偏好 |
/setpref |
setpref |
设置用户偏好 |
/quit |
quit, exit, 退出 |
退出程序 |
============================================================
LangChain 智能助手
支持:RAG知识库 / 联网搜索 / 天气查询 / 多轮对话
============================================================
初始化 LLM...
✓ 反思机制: 已启用
✓ 记忆系统: light (最大 15 条消息)
Agent 已就绪,已加载 6 个工具
命令:
/help - 显示帮助
/reset - 重置对话历史
...
你: 你好,请介绍一下自己
[阶段1] 生成初始回答...
[阶段2] 反思检查 (1/2)...
[反思结果] 回答通过
AI: 您好!我是基于 LangChain 的智能助手...
编辑 main.py 中的配置:
enable_reflection = True
max_reflections = 2 # 最大反思次数memory_type = "light"
max_memory_messages = 15 # 最大保留消息数# 基础 Agent(无反思)
agent = create_agent(llm, tools, ...)
# 带反思的 Agent(推荐)
agent = create_reflective_agent(llm, tools, ...)| 类别 | 技术 | 版本 |
|---|---|---|
| 核心框架 | LangChain | ≥ 0.1.0 |
| LLM | 讯飞星火大模型 | - |
| Embedding | 智谱 AI | - |
| 向量数据库 | ChromaDB | ≥ 0.4.0 |
| 搜索 | DuckDuckGo | ≥ 4.0.0 |
| PDF 解析 | pdfplumber | ≥ 0.10.0 |
欢迎提交 Issue 和 Pull Request!
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 创建 Pull Request
- ✨ 初始版本发布
- 🎉 支持 RAG 知识库检索
- 🎉 支持联网搜索
- 🎉 支持天气查询
- 🎉 引入自反思机制
本项目采用 MIT 许可证。
- GitHub Issues: https://github.com/L3n3L/agent_langchain_open/issues
如果这个项目对你有帮助,请给它一个 ⭐ Star!