# learn-langchain **Repository Path**: breath57/learn-langchain ## Basic Information - **Project Name**: learn-langchain - **Description**: 基于 LangChain 的学习项目 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2025-05-27 - **Last Updated**: 2025-12-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 🦜🔗 LangChain 智能助手学习项目 这是一个全面的LangChain学习项目,展示了LangChain框架的各种功能和最佳实践。项目包含多个示例,从基础的聊天机器人到高级的RAG(检索增强生成)系统。 ## 📋 项目特性 - **🤖 多种LLM集成**: OpenAI GPT、Anthropic Claude等 - **📚 文档处理**: PDF、Word、网页内容加载和处理 - **🔍 向量搜索**: 使用ChromaDB进行语义搜索 - **🛠️ 工具调用**: 网络搜索、计算器、代码执行等 - **🤖 智能体系统**: 自动推理和工具选择的AI助手 - **💾 记忆管理**: 对话历史和上下文管理 - **🔗 链式操作**: 复杂的多步骤推理 - **📊 流式输出**: 实时响应显示 - **🎯 提示工程**: 高级提示模板和技巧 ## 🚀 快速开始 ### 1. 环境准备 确保您已安装Python 3.9+: ```bash python --version ``` ### 2. 激活虚拟环境 ```bash # Windows venv\Scripts\activate # macOS/Linux source venv/bin/activate ``` ### 3. 安装依赖 ```bash pip install -r requirements.txt ``` ### 4. 配置环境变量 复制环境变量示例文件: ```bash copy .env.example .env ``` 编辑 `.env` 文件,添加您的API密钥: ```env OPENAI_API_KEY=your_actual_openai_api_key_here ``` ### 5. 运行主程序 ```bash python main.py ``` ## 💡 主要功能 ### 命令行界面 程序提供了丰富的命令行交互功能: ```bash # 基本命令 /help # 显示帮助信息 /config # 查看系统配置 /tools # 查看可用工具 /agent # 进入智能体模式 ⭐ /examples # 运行示例程序 /quit # 退出程序 # 模型管理 /models # 列出可用模型 /switch # 切换LLM模型 # 会话管理 /memory # 查看记忆统计 /clear # 清空当前会话 /history # 查看对话历史 /export # 导出会话数据 ``` ### 智能体模式特色功能 - **自动工具选择**: AI根据问题自动选择最合适的工具 - **多轮对话**: 保持上下文,支持复杂对话流程 - **实时思考过程**: 显示AI的推理和工具使用过程 - **错误恢复**: 自动处理工具调用失败并重试 ## 📁 项目结构 ``` langchain-assistant/ ├── main.py # 主程序入口 ├── config/ │ ├── __init__.py │ └── settings.py # 配置管理 ├── core/ │ ├── __init__.py │ ├── llm_manager.py # LLM管理器 │ ├── memory_manager.py # 记忆管理 │ ├── vector_store.py # 向量数据库 │ └── tools.py # 工具集合 ├── chains/ │ ├── __init__.py │ ├── basic_chain.py # 基础链 │ ├── rag_chain.py # RAG链 │ └── agent_chain.py # 智能体链 ├── utils/ │ ├── __init__.py │ ├── document_loader.py # 文档加载器 │ ├── text_splitter.py # 文本分割器 │ └── helpers.py # 辅助函数 ├── data/ │ ├── documents/ # 示例文档 │ └── knowledge_base/ # 知识库 ├── examples/ │ ├── basic_chat.py # 基础聊天示例 │ ├── rag_example.py # RAG示例 │ ├── agent_example.py # 智能体示例 │ └── tool_example.py # 工具使用示例 ├── requirements.txt # 依赖列表 ├── .env.example # 环境变量示例 └── README.md # 项目文档 ``` ## 🎯 学习路径 1. **基础概念** - 从 `examples/basic_chat.py` 开始 2. **文档处理** - 学习 `utils/document_loader.py` 3. **向量搜索** - 探索 `core/vector_store.py` 4. **工具使用** - 测试 `examples/tool_example.py` 5. **RAG系统** - 运行 `examples/rag_example.py` 6. **智能体** - 体验 `examples/agent_example.py` ## 🔧 功能模块 ### LLM管理器 - 支持多种LLM提供商 - 自动重试和错误处理 - 流式输出支持 ### 记忆管理 - 对话历史保存 - 上下文窗口管理 - 长期记忆存储 ### 向量数据库 - 文档嵌入和存储 - 语义相似度搜索 - 增量更新支持 ### 工具集成 - 网络搜索 (DuckDuckGo) - 数学计算器 - 当前时间获取 - 文档摘要生成 ### 🤖 智能体系统 本项目实现了功能完整的LangChain智能体,具备以下特性: #### 核心功能 - **智能推理**: 能够理解复杂问题并制定解决方案 - **工具选择**: 自动选择最合适的工具来完成任务 - **多步骤执行**: 支持复杂的多步骤任务流程 - **错误处理**: 自动处理工具执行错误并重试 - **上下文记忆**: 在对话中保持历史上下文 #### 可用工具 - **DuckDuckGo搜索**: 实时网络信息搜索 - **计算器**: 数学运算和计算 - **时间工具**: 获取当前日期和时间 - **文档摘要**: 生成文本内容摘要 #### 使用方式 1. 在主程序中输入 `/agent` 进入智能体模式 2. 直接提问,智能体会自动选择合适的工具 3. 支持多轮对话和上下文理解 4. 输入 `/exit` 退出智能体模式 #### 示例对话 ``` 用户: 今天是几号?北京的天气怎么样? 智能体: 我来帮您查询。首先获取今天的日期,然后搜索北京的天气信息... [自动使用时间工具和搜索工具] ``` #### 技术实现 - 基于LangChain的 `create_openai_tools_agent` - 支持OpenAI函数调用格式 - 可配置的最大迭代次数 - 详细的执行日志和错误处理 #### 扩展性 - 易于添加新工具 - 支持自定义提示模板 - 可配置的智能体行为参数 ## 🎯 学习资源 - [LangChain官方文档](https://python.langchain.com/) - [LangChain GitHub仓库](https://github.com/langchain-ai/langchain) - [LangSmith调试平台](https://smith.langchain.com/) - [LangGraph工作流框架](https://langchain-ai.github.io/langgraph/) ## 🤝 贡献 欢迎提交Issue和Pull Request来改进这个学习项目! ## 📄 许可证 MIT License - 详见 [LICENSE](LICENSE) 文件 --- **开始您的LangChain学习之旅吧!** 🚀