# LangChainQwen **Repository Path**: sdatafarmer/LangChainQwen ## Basic Information - **Project Name**: LangChainQwen - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-02 - **Last Updated**: 2026-03-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # LangChain + 通义千问学习项目 基于LangChain框架和阿里通义千问大模型的完整学习项目,覆盖LangChain中文网的所有语法和函数调用知识。 ## 🚀 项目特色 - **完整的LangChain学习路径**:从基础LLM使用到高级RAG应用 - **通义千问集成**:使用阿里云通义千问大模型 - **LangSmith监控**:集成LangSmith进行实验跟踪和监控 - **中文友好**:所有示例和文档均为中文 - **模块化设计**:每个功能都有独立的示例文件 ## 📚 学习内容 1. **基础LLM使用** - LangChain核心概念和基础用法 2. **聊天模型** - 聊天模型的使用和对话管理 3. **Chain和LCEL** - 链式调用和LCEL表达式 4. **Agent和Tools** - 智能代理和工具开发 5. **RAG应用** - 检索增强生成应用 6. **记忆和聊天机器人** - 对话记忆和聊天机器人 7. **LangSmith集成** - 实验跟踪和监控 8. **对话式RAG应用** - 多轮对话检索增强生成(RAG) 9. **SQL数据问答** - 基于结构化SQL数据的自然语言问答 10. **查询分析系统** - 智能分析用户查询意图并生成SQL 11. **本地RAG应用** - 使用本地知识库的RAG检索增强 12. **数据库问答** - 多表/复杂SQL数据库的智能问答 13. **PDF问答系统** - 针对PDF文档的内容检索与问答 14. **提取链** - 信息抽取与结构化输出链式应用 15. **生成合成数据** - 利用大模型自动生成结构化或文本数据 16. **文本分类** - 多类别文本智能分类 17. **文本总结** - 长文本自动摘要与总结 ## 🛠️ 环境要求 - Python 3.8+ - 阿里云通义千问API密钥 - LangSmith API密钥(可选,用于实验跟踪) ## 🔒 安全配置 **重要安全提醒:** - 所有API密钥都通过环境变量管理,不会硬编码在代码中 - `.env`文件已被`.gitignore`忽略,不会上传到Git仓库 - 请确保在系统环境变量中设置API密钥,而不是在代码中直接写入 ### 推荐的环境变量设置方式: #### Windows系统: ```cmd # 设置通义千问API密钥 set DASHSCOPE_API_KEY=your_actual_api_key_here # 设置LangSmith API密钥(可选) set LANGSMITH_API_KEY=your_langsmith_api_key_here ``` #### Linux/Mac系统: ```bash # 设置通义千问API密钥 export DASHSCOPE_API_KEY=your_actual_api_key_here # 设置LangSmith API密钥(可选) export LANGSMITH_API_KEY=your_langsmith_api_key_here ``` #### 使用.env文件(仅本地开发): ```bash # 复制示例文件 cp env_example.txt .env # 编辑.env文件,填入真实的API密钥 # 注意:.env文件不会被提交到Git ``` ## 📦 安装步骤 ### 1. 克隆项目 ```bash git clone cd LangChain_QWEN ``` ### 2. 安装依赖 ```bash # 方法1:使用requirements.txt pip install -r requirements.txt # 方法2:使用Python 3.12专用依赖文件 pip install -r requirements_python312.txt # 方法3:使用安装脚本 python install_dependencies.py ``` ### 3. 配置环境变量 复制环境变量示例文件: ```bash copy env_example.txt .env ``` 编辑 `.env` 文件,设置以下变量: ```env # 阿里通义千问API配置 DASHSCOPE_API_KEY=your_dashscope_api_key_here # LangSmith配置(可选) LANGSMITH_API_KEY=your_langsmith_api_key_here LANGSMITH_PROJECT=langchain-qwen-learning LANGSMITH_ENDPOINT=https://api.smith.langchain.com LANGSMITH_TRACING_V2=true # 应用配置 DEBUG=True LOG_LEVEL=INFO ``` ### 4. 获取API密钥 #### 通义千问API密钥 1. 访问 [阿里云通义千问](https://dashscope.console.aliyun.com/) 2. 注册并登录账号 3. 创建API密钥 4. 将密钥添加到环境变量 #### LangSmith API密钥(可选) 1. 访问 [LangSmith](https://smith.langchain.com/) 2. 注册并登录账号 3. 创建API密钥 4. 将密钥添加到环境变量 ## 🎯 使用方法 ### 运行主程序 ```bash python main.py ``` ### 运行单个示例 ```bash # 基础LLM使用 python examples/01_basic_llm_usage.py # 聊天模型 python examples/02_chat_models.py # Chain和LCEL python examples/03_chains_and_lcel.py # Agent和Tools python examples/04_agents_and_tools.py # RAG应用 python examples/05_rag_application.py # 记忆和聊天机器人 python examples/06_memory_and_chatbots.py # LangSmith集成 python examples/07_langsmith_integration.py # 对话式RAG应用 python examples/08_conversational_rag.py # SQL数据问答 python examples/09_sql_qa.py # 查询分析系统 python examples/10_query_analysis.py # 本地RAG应用 python examples/11_local_rag.py # 数据库问答 python examples/12_db_qa.py # PDF问答系统 python examples/13_pdf_qa.py # 提取链 python examples/14_extraction_chain.py # 生成合成数据 python examples/15_data_generation.py # 文本分类 python examples/16_text_classification.py # 文本总结 python examples/17_text_summarization.py ``` ### 快速运行脚本 ```bash python run_example.py ``` ## 📁 项目结构 ``` LangChain_QWEN/ ├── config.py # 配置文件 ├── main.py # 主程序入口 ├── run_example.py # 快速运行脚本 ├── requirements.txt # 依赖文件 ├── requirements_python312.txt # Python 3.12专用依赖 ├── install_dependencies.py # 安装脚本 ├── env_example.txt # 环境变量示例 ├── models/ │ ├── __init__.py │ └── qwen_llm.py # 通义千问LLM模型 ├── utils/ │ └── langsmith_utils.py # LangSmith工具模块 └── examples/ ├── __init__.py ├── 01_basic_llm_usage.py # 基础LLM使用 ├── 02_chat_models.py # 聊天模型 ├── 03_chains_and_lcel.py # Chain和LCEL ├── 04_agents_and_tools.py # Agent和Tools ├── 05_rag_application.py # RAG应用 ├── 06_memory_and_chatbots.py # 记忆和聊天机器人 ├── 07_langsmith_integration.py # LangSmith集成 ├── 08_conversational_rag.py # 对话式RAG应用 ├── 09_sql_qa.py # SQL数据问答 ├── 10_query_analysis.py # 查询分析系统 ├── 11_local_rag.py # 本地RAG应用 ├── 12_db_qa.py # 数据库问答 ├── 13_pdf_qa.py # PDF问答系统 ├── 14_extraction_chain.py # 提取链 ├── 15_data_generation.py # 生成合成数据 ├── 16_text_classification.py # 文本分类 └── 17_text_summarization.py # 文本总结 ``` ## 🔧 配置说明 ### 模型配置 在 `config.py` 中可以调整以下参数: - `DEFAULT_MODEL`: 默认使用的模型 - `MAX_TOKENS`: 最大token数 - `TEMPERATURE`: 温度参数 ### LangSmith配置 - `LANGSMITH_PROJECT`: LangSmith项目名称 - `LANGSMITH_ENDPOINT`: LangSmith API端点 - `LANGSMITH_TRACING_V2`: 是否启用V2追踪 ## 🐛 常见问题 ### 1. 依赖安装失败 ```bash # 尝试升级pip python -m pip install --upgrade pip # 使用国内镜像源 pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/ ``` ### 2. Python 3.12兼容性问题 ```bash # 使用Python 3.12专用依赖文件 pip install -r requirements_python312.txt ``` ### 3. API密钥错误 - 确保环境变量正确设置 - 检查API密钥是否有效 - 确认网络连接正常 ### 4. LangSmith连接问题 - 检查LANGSMITH_API_KEY是否正确 - 确认网络可以访问LangSmith服务 - 查看LangSmith项目是否存在 ### 5. API密钥安全问题 - **不要**在代码中硬编码API密钥 - **不要**将包含真实API密钥的.env文件提交到Git - 使用系统环境变量或本地.env文件(已被.gitignore忽略) - 定期轮换API密钥以提高安全性 ### 6. 环境变量设置问题 ```bash # 检查环境变量是否正确设置 python check_env.py # 验证配置 python -c "from config import Config; Config.validate_config()" ``` ## 📖 学习资源 - [LangChain中文文档](https://www.langchain.com.cn/docs/introduction/) - [LangChain官方文档](https://python.langchain.com/) - [通义千问API文档](https://help.aliyun.com/zh/dashscope/) - [LangSmith文档](https://docs.smith.langchain.com/) ## 🤝 贡献指南 欢迎提交Issue和Pull Request来改进项目! ## 📄 许可证 本项目采用MIT许可证。 ## 🙏 致谢 - [LangChain](https://github.com/langchain-ai/langchain) - 优秀的LLM应用开发框架 - [阿里云通义千问](https://dashscope.console.aliyun.com/) - 强大的中文大语言模型 - [LangSmith](https://smith.langchain.com/) - 实验跟踪和监控平台 # LangChainQwen