这是一个基于 Langchain 框架的完整学习项目,涵盖了从基础概念到实际应用的各个方面,包括 RAG(检索增强生成)、智能体开发以及综合项目实践。
最新更新: 项目已集成 Streamlit 前端界面,提供更好的用户体验 项目特色: 商业级扫地机器人智能客服系统,200+条专业问答数据支撑
本项目是一套完整的 Langchain 学习和实践体系,从基础概念到商业级应用,循序渐进地引导学习者掌握 AI 应用开发的核心技能。项目特别包含了基于 ReAct 模式的扫地机器人智能客服系统,展示了如何将理论知识转化为实际的商业解决方案。
D:\Langchain\
├── 01-学习\ # 📖 基础学习模块
│ ├── 数据资料\ # 学习数据集(CSV、JSON、TXT格式)
│ ├── 基础学习.ipynb # Jupyter Notebook 基础教程
│ └── 测试.py # 基础功能验证脚本
├── 02-案例\ # 🧪 实际应用案例
│ ├── data\ # 案例训练数据
│ ├── rag.py # RAG 核心实现(检索增强生成)
│ ├── app_qa.py # QA 应用示例
│ ├── vector_stores.py # 向量存储管理
│ ├── config_data.py # 核心配置文件
│ ├── konwledge_base.py # 知识库构建模块
│ └── 其他工具文件... # 辅助工具集合
├── 03-智能体\ # 🤖 Agent 智能体开发
│ ├── 01智能体初体验.py # 智能体基础入门
│ ├── 02Agent的stream流式输出.py # 流式输出实现
│ ├── 03ReAct案例.py # ReAct 模式案例(推理-行动-观察)
│ └── 04middleware中间件.py # 中间件应用与监控
└── 04-综合项目\ # 🏢 商业级综合应用
├── agent\ # 🤖 智能体核心模块
│ ├── tools\ # 自定义工具集合
│ └── react_agent.py # ReAct 模式主代理
├── config\ # ⚙️ YAML 配置文件
│ ├── rag.yml # RAG 配置
│ ├── agent.yml # Agent 配置
│ ├── chroma.yml # 向量数据库配置
│ └── prompts.yml # 提示词配置
├── data\ # 📊 项目数据集
│ ├── external\ # 外部数据源
│ └── 专业问答文档... # 200+条扫地机器人问答
├── model\ # 🏭 模型工厂模式
├── prompts\ # 💬 提示词模板库
├── rags\ # 🔍 RAG 服务层
├── utils\ # 🛠️ 工具函数库
│ ├── config_handler.py # 配置处理器
│ ├── file_handler.py # 文件操作工具
│ ├── logger_handler.py # 日志管理系统
│ ├── path_tool.py # 路径工具
│ └── prompt_loader.py # 提示词加载器
├── logs\ # 📋 运行日志
├── app.py # 🖥️ Streamlit 主应用
└── chroma_db\ # 💾 Chroma 向量数据库
本项目旨在帮助学习者:
- 📚 掌握 Langchain 核心概念:从零开始学习 Langchain 框架的基础组件和设计理念
- 🔍 深入理解 RAG 系统:掌握检索增强生成的技术原理和实现方法
- 🤖 开发智能代理系统:学习 Agent 开发、ReAct 模式和中间件应用
- 🏢 构建商业级应用:通过完整的扫地机器人客服系统实践企业级开发
- 🛠️ 培养工程化思维:学习模块化设计、配置管理、日志系统等工程实践
- 主要框架: Langchain 0.3+
- 语言模型: Ollama (qwen3:4b, qwen3.5:cloud)
- 向量数据库: ChromaDB (本地持久化存储)
- 嵌入模型: qwen3-embedding:4b
- 前端框架: Streamlit 1.30+
- 用户界面: 响应式聊天界面
- 交互体验: 实时流式响应
- 配置管理: YAML 配置文件
- 日志系统: Python logging 模块
- 依赖管理: pip / conda
- 开发环境: Jupyter Notebook, VS Code
- 版本控制: Git
- 主要语言: Python 3.8+
- 核心库: langchain, langchain-ollama, chromadb
# 推荐使用 Python 3.8+
pip install langchain==0.3.0 langchain-ollama==0.1.0 chromadb==0.5.0 streamlit==1.30.0 pyyaml==6.0# 基础模型(必需)
ollama pull qwen3:4b
ollama pull qwen3-embedding:4b
# 高性能模型(可选)
ollama pull qwen3.5:cloud
# 验证模型安装
ollama list# 克隆项目
git clone <repository-url>
cd Langchain
# 创建虚拟环境(推荐)
python -m venv venv
source venv/bin/activate # Linux/Mac
# 或 venv\Scripts\activate # Windows
# 安装依赖
pip install -r requirements.txt # 如果存在requirements文件cd 01-学习
jupyter notebook 基础学习.ipynb
# 或者直接运行测试脚本
python 测试.pycd 02-案例
# 初始化知识库(首次运行)
python konwledge_base.py
# 运行 RAG 问答系统
python rag.py
# 测试 QA 应用
python app_qa.pycd 03-智能体
# 基础智能体体验
python 01智能体初体验.py
# 流式输出演示
python 02Agent的stream流式输出.py
# ReAct 模式案例
python 03ReAct案例.py
# 中间件监控功能
python 04middleware中间件.pycd 04-综合项目
# 启动 Streamlit 前端
streamlit run app.py
# 访问地址
# 浏览器打开: http://localhost:8501
# 查看运行日志
ls logs/
tail -f logs/app.log# 启用详细日志
cd 04-综合项目
export LOG_LEVEL=DEBUG # Linux/Mac
# 或 set LOG_LEVEL=DEBUG # Windows
streamlit run app.py
# 单元测试
python -m pytest tests/ -v包含 Langchain 的基础知识学习,适合零基础学习者:
核心内容:
- 🐍 Python 基础语法复习: 数据类型、控制结构、函数等
- 🔗 Langchain 核心概念: LLM、Prompt、Chain、Agent 等基础组件
- 💬 文本处理实践: 提示词工程、文本生成、对话系统
- 📊 数据处理技能: CSV、JSON、TXT 文件的加载和预处理
- 🧪 基础实验验证: 通过 Jupyter Notebook 交互式学习
学习建议:
- 先运行
基础学习.ipynb理解核心概念 - 修改
测试.py观察不同参数的效果 - 重点掌握 Langchain 的基本组件使用
实际业务场景的完整实现,展示核心技术应用:
关键技术点:
- 🔍 RAG 系统实现: 向量检索、语义搜索、上下文增强
- 🗃️ 知识库构建: 文档切分、向量化存储、相似度匹配
- 💾 对话状态管理: 会话历史持久化、上下文维护
- ⚙️ 配置系统: 参数化配置、环境适配
核心文件说明:
rag.py: RAG 核心服务实现konwledge_base.py: 知识库初始化和管理vector_stores.py: 向量数据库操作封装config_data.py: 系统配置参数定义
Agent 智能体开发的完整实践,涵盖前沿技术:
学习内容:
- 🤖 智能体基础: Agent 创建、工具注册、调用机制
- 🌊 流式处理: 实时响应输出、用户体验优化
- 🔄 ReAct 模式: 推理-行动-观察循环机制
- 🛡️ 中间件应用: 请求拦截、监控、日志记录
技术亮点:
- 实现了完整的工具调用链路
- 支持复杂业务逻辑处理
- 具备完善的监控和调试能力
完整的商业级扫地机器人智能客服系统:
系统架构:
- 🖥️ 前端界面: Streamlit 聊天界面,支持实时交互
- 🧠 智能核心: ReAct 模式 Agent,支持多轮对话
- 🔧 工具生态: 7个专业工具,覆盖完整业务场景
- 📊 数据支撑: 200+条专业问答,真实业务数据
- ⚙️ 配置管理: YAML 配置驱动,支持灵活部署
- 📋 日志系统: 完整运行记录,便于问题追踪
核心功能:
- 🛒 产品咨询: 选购指南、型号推荐、功能对比
- 🔧 技术支持: 故障诊断、维修指导、配件更换
- 🧹 使用指导: 操作说明、清洁技巧、日常维护
- 📈 数据分析: 使用报告生成、性能分析、趋势预测
- 🌡️ 环境适配: 地区天气影响、季节性建议
业务价值:
- 提升客户服务质量
- 降低人工客服成本
- 7×24小时智能响应
- 个性化精准推荐
项目主要配置位于 02-案例/config_data.py,控制核心行为参数:
# 🗃️ 向量数据库配置
collection_name = "rags" # ChromaDB 集合名称
embedding_name = "qwen3-embedding:4b" # 嵌入模型
persist_directory = "./chroma_db" # 本地存储路径
# ✂️ 文本分割参数
chunk_size = 1000 # 每个文本块大小
chunk_overlap = 100 # 块间重叠字符数
separators = ['\n\n', '\n', ' ', '', '!', '?', ';', ':', ',', '!', '?', ';', ':', ',']
# 🤖 模型配置
chat_model_name = "qwen3:4b" # 对话模型名称
similarity_threshold = 1 # 检索返回的文档数量
# 👥 会话配置
session_config = {
"configurable": {
"session_id": "user_002" # 用户会话标识
}
}采用模块化的 YAML 配置文件管理,支持灵活部署:
RAG 配置 (04-综合项目/config/rag.yml):
# 对话模型配置
chat_model_name: qwen3.5:cloud # 高性能云端模型
# chat_model_name: qwen3:4b # 本地基础模型
# 嵌入模型配置
embedding_model_name: qwen3-embedding:4bAgent 配置 (04-综合项目/config/agent.yml):
# 外部数据源路径
external_data_path: data/external/records.csvChromaDB 配置 (04-综合项目/config/chroma.yml):
# 数据库连接配置
database_path: ./chroma_db
collection_name: robot_knowledge
similarity_search_k: 3提示词配置 (04-综合项目/config/prompts.yml):
# 提示词模板路径
main_prompt_path: prompts/main_prompt.txt
rag_summarize_prompt_path: prompts/rag_summarize.txt
report_prompt_path: prompts/report_prompt.txt环境区分:
# 开发环境
export ENV=development
# 生产环境
export ENV=production动态切换:
# 根据环境加载不同配置
if os.getenv('ENV') == 'production':
config = load_production_config()
else:
config = load_development_config()配置验证:
# 启动时验证配置完整性
validate_configurations()
check_model_availability()
verify_database_connection()为初学者提供多样化的练习材料:
结构化数据:
info.csv: 用户信息表格数据,练习 CSV 处理stu.csv: 学生信息数据集,包含成绩等字段stu.json,stus.json: JSON 格式学生数据,练习嵌套结构处理stu_json_lines.json: JSON Lines 格式,逐行处理练习
文本资料:
Python基础语法.txt: 详细的 Python 语法参考手册(755行)- 尺码推荐、洗涤养护、颜色选择等垂直领域文本
构建垂直领域知识库的专业数据:
业务文档:
- 尺码推荐指南:服装尺寸选择专业知识
- 洗涤养护手册:纺织品清洗保养规范
- 颜色选择指导:色彩搭配和应用建议
技术特点:
- 领域专业性强
- 内容结构化程度高
- 适合构建行业知识库
商业级扫地机器人客服系统的丰富数据支撑:
核心问答库(200+条):
- 📄
扫地机器人100问2.txt: 基础功能和使用问答 - 📄
扫拖一体机器人100问.txt: 高级功能专业解答 - 🛠️
故障排除.txt(41KB): 165个常见故障解决方案 - 🔧
维护保养.txt(23KB): 日常维护和保养指南 - 🛒
选购指南.txt(21KB): 产品选择和购买建议
外部数据源:
records.csv: 用户使用记录数据- 包含用户ID、居住环境、使用习惯等信息
- 支持个性化报告生成
- 真实业务场景模拟
数据特征:
- 🎯 覆盖面广: 从选购到维护全生命周期
- 📈 专业性强: 技术细节和解决方案详尽
- 🔄 实时更新: 基于最新产品特性和用户反馈
- 📊 结构清晰: 便于知识抽取和向量化处理
- 📚 完整的学习路径: 从基础概念到商业应用的系统化学习体系
- 🧪 实用案例驱动: 基于真实业务场景的技术实现和应用示范
- 🖥️ 现代化交互体验: Streamlit 前端提供流畅的用户界面
- 🏗️ 模块化架构设计: 清晰的代码组织,支持灵活扩展和维护
- ⚙️ 丰富的配置选项: 多种模型支持和参数调优能力
- 🔧 配置驱动开发: YAML 配置文件管理,代码与配置分离
- 📋 完善的日志系统: 多级别日志记录,便于问题追踪和调试
- 📁 标准化目录结构: 符合 Python 项目规范的组织方式
- 🧩 可复用组件设计: 工具函数库和通用模块,提升开发效率
- 📝 清晰的文档注释: 详细的代码说明和使用指南
- 🤖 ReAct 模式应用: 推理-行动-观察循环机制的实际落地
- 🛡️ 中间件架构: 请求监控、日志记录、上下文管理一体化
- 📊 多维度数据融合: 结构化数据与非结构化文本的统一处理
- 📈 智能报告生成: 基于用户数据的个性化分析报告
- 🌡️ 环境感知能力: 结合地理位置和天气因素的智能建议
- 💼 降低客服成本: 7×24小时智能响应,减少人工投入
- 🚀 提升服务效率: 秒级响应,精准解答用户问题
- 🎯 个性化体验: 基于用户画像的定制化服务
- 📊 数据驱动决策: 用户行为分析和产品优化建议
- 🔄 持续迭代优化: 基于反馈的智能系统自我完善
IDE 工具:
- VS Code: 推荐插件 - Python、Jupyter、GitLens
- PyCharm: Professional 版本支持科学计算
- Jupyter Lab: 交互式开发和数据分析
版本管理:
- Git: 版本控制和协作开发
- GitHub/GitLab: 代码托管和 CI/CD
包管理:
- pip: Python 官方包管理器
- conda: 环境管理和依赖解决
- poetry: 现代化依赖管理
模型工具:
- Ollama: 本地大模型管理平台
- Docker: 容器化部署(可选)
架构优势:
- 🏗️ 模块化设计: 高内聚低耦合,便于维护扩展
- ⚙️ 配置驱动: YAML 配置文件,支持环境隔离
- 📋 日志系统: 多级别日志,完整运行追踪
- 🖥️ 前端交互: Streamlit 实时响应,用户体验佳
- 🔄 多模型支持: 本地/云端模型无缝切换
开发调试:
-
日志跟踪: 使用不同日志级别定位问题
logger.debug("详细调试信息") logger.info("一般运行信息") logger.warning("警告信息") logger.error("错误信息")
-
交互式调试: Jupyter Notebook 实时验证想法
# 在 notebook 中逐步验证逻辑 result = my_function(test_input) print(f"结果: {result}")
-
向量数据库检查: 验证检索效果
# 查看存储的向量内容 docs = vector_store.similarity_search("查询词", k=3) for doc in docs: print(doc.page_content[:100])
性能优化: 4. 模型监控: 跟踪推理时间和资源消耗
import time
start_time = time.time()
result = model.invoke(prompt)
print(f"耗时: {time.time() - start_time:.2f}秒")-
前端优化: Streamlit 响应式设计
# 添加加载状态提示 with st.spinner("智能客服正在思考..."): response = agent.execute_stream(user_input)
-
配置调优: 通过配置文件快速测试不同参数
# rag.yml chat_model_name: qwen3:4b # 基础性能 # chat_model_name: qwen3.5:cloud # 高性能选项
欢迎提交 Issue 和 Pull Request 来改进这个学习项目!我们鼓励社区参与和知识分享。
技术实现类:
- 🔧 新的案例实现: 垂直领域的 RAG 应用场景
- ⚡ 性能优化: 检索速度、响应时间、资源利用率提升
- 🛠️ 最佳实践分享: 代码重构、架构改进、设计模式应用
文档完善类:
- 📚 技术教程: 详细的操作指南和原理说明
- 📖 API 文档: 函数接口和使用方法说明
- 🎨 示例代码: 清晰易懂的代码样例
功能增强类:
- 🐛 错误修复: Bug 修复和稳定性改进
- ✨ 功能增强: 新特性开发和现有功能完善
- 🤖 模型集成: 支持更多大语言模型和嵌入模型
-
Fork 项目
# Fork 到你的 GitHub 账户 git clone https://github.com/your-username/Langchain.git cd Langchain
-
创建功能分支
git checkout -b feature/amazing-feature # 或者修复分支 git checkout -b fix/important-bug -
开发和测试
# 确保代码质量 python -m pytest tests/ -v # 检查代码风格 flake8 . black .
-
提交更改
git add . git commit -m "feat: 添加令人惊叹的新功能" git push origin feature/amazing-feature
-
发起 Pull Request
- 在 GitHub 上创建 PR
- 详细描述变更内容和解决的问题
- 关联相关的 Issue
代码规范:
- 遵循 PEP 8 Python 编码规范
- 添加必要的类型注解
- 编写清晰的函数和类文档字符串
- 保持代码简洁和可读性
提交信息格式:
type(scope): description
详细说明变更内容和影响
Fixes #123
类型说明:
feat: 新功能fix: Bug 修复docs: 文档更新style: 代码格式调整refactor: 代码重构test: 测试相关chore: 构建过程或辅助工具变动
- 从
01-学习开始,掌握基础概念 - 学习
02-案例中的具体实现 - 尝试修改参数观察效果变化
- 在
03-智能体中体验高级功能 - 运行
04-综合项目体验完整应用
- 深入理解 RAG 系统架构和优化策略
- 自定义 Agent 工具和提示词工程
- 优化向量检索效果和相似度算法
- 构建自己的垂直领域应用
- 学习配置管理和部署最佳实践
- 实现多 Agent 协作系统
- 集成外部 API 和数据库
- 设计复杂的业务逻辑处理
- 性能优化和监控告警
- 企业级部署和运维
本项目仅供学习交流使用。
感谢 Langchain 社区提供的优秀框架和工具,使得 AI 应用开发变得更加简单高效。
注意: 本项目持续更新中,建议定期查看最新版本获取更多学习内容和案例。
项目状态: ✅ 稳定可用 | 🔄 持续更新 | 📈 功能增强中