# Agent案例 **Repository Path**: pikailo/agent-case ## Basic Information - **Project Name**: Agent案例 - **Description**: No description available - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 4 - **Forks**: 2 - **Created**: 2026-02-24 - **Last Updated**: 2026-03-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 扫地机器人智能客服系统 基于LangChain框架开发的智能客服系统,专门服务于扫地机器人和扫拖一体机器人的用户咨询场景。系统采用ReAct Agent架构,结合RAG技术实现专业知识问答,并支持个性化使用报告生成功能。 ## 🌟 项目特色 - **专业领域问答**:内置100+扫地机器人常见问题解答 - **智能Agent架构**:基于ReAct模式的自主思考与工具调用 - **RAG知识检索**:向量数据库支持精准的知识匹配 - **个性化报告**:可根据用户ID生成专属使用报告 - **流式交互体验**:Streamlit界面实现实时对话效果 ## 🏗️ 技术架构 ``` 智能客服系统 ├── Agent层 (agent/) │ ├── ReAct_Agent - 核心智能代理 │ └── Tools - 工具集合 ├── RAG层 (rag/) │ ├── VectorStoreService - 向量存储服务 │ └── RagSummarizeService - 检索增强生成 ├── Model层 (model/) │ ├── ChatModelFactory - 对话模型工厂 │ └── EmbeddingModelFactory - 嵌入模型工厂 ├── 数据层 (data/) │ ├── 专业知识库 │ └── 用户使用记录 └── 应用层 (app.py) - Streamlit前端界面 ``` ## 🚀 快速开始 ### 环境要求 - Python 3.8+ - Windows/Linux/macOS ### 安装依赖 ``` bash pip install -r requirements.txt ``` ### 环境变量配置 创建 `.env` 文件并配置以下参数: ``` env # 阿里云DashScope API密钥 DASHSCOPE_API_KEY=your_api_key_here # 其他可选配置 LOG_LEVEL=INFO ``` ### 初始化向量数据库 首次运行前需要初始化知识库: ``` bash python rag/vector_store.py ``` ### 启动应用 ``` bash streamlit run app.py ``` 访问地址:`http://localhost:8501` ## 🔧 核心功能 ### 1. 智能问答 支持以下专业领域的咨询: - ✅ 基础使用指导 - ✅ 故障诊断与排除 - ✅ 维护保养建议 - ✅ 选购指南推荐 - ✅ 清洁效果优化 ### 2. 工具调用能力 Agent可调用多种工具获取信息: | 工具名称 | 功能描述 | 使用场景 | |---------|---------|---------| | `rag_summarize` | 检索专业知识库 | 补充专业信息 | | `get_weather` | 获取城市天气 | 环境适配建议 | | `get_user_id` | 获取用户标识 | 个性化服务 | | `get_current_month` | 获取当前月份 | 报告生成 | | `fetch_external_data` | 查询使用记录 | 生成使用报告 | ### 3. 个性化报告 支持生成用户专属的使用报告: ``` "请生成我的6月使用报告" "查看我的机器人使用记录" ``` ## 📁 项目结构 ``` 智能客服/ ├── agent/ # Agent核心组件 │ ├── react_agent.py # ReAct Agent实现 │ └── tools/ # 工具集合 │ ├── agent_tools.py # 业务工具 │ └── middleware.py # 中间件 ├── rag/ # RAG相关组件 │ ├── rag_service.py # 检索服务 │ └── vector_store.py # 向量存储 ├── model/ # 模型工厂 │ └── factory.py # 模型实例化 ├── config/ # 配置文件 │ ├── agent.yaml # Agent配置 │ ├── chroma.yaml # 向量库配置 │ ├── prompts.yaml # 提示词配置 │ └── rag.yaml # RAG配置 ├── data/ # 数据文件 │ ├── *.txt # 专业知识库 │ └── external/ # 外部数据 ├── prompts/ # 提示词模板 │ ├── main_prompt.txt # 主提示词 │ └── rag_summarize.txt # RAG提示词 ├── utils/ # 工具函数 │ ├── config_handler.py # 配置处理器 │ └── prompt_loader.py # 提示词加载器 ├── app.py # 主应用入口 └── requirements.txt # 依赖列表 ``` ## ⚙️ 配置说明 ### 模型配置 (`config/rag.yaml`) ``` yaml chat_model_name: qwen3-max # 对话模型 embedding_model_name: text-embedding-v4 # 嵌入模型 ``` ### 向量库配置 (`config/chroma.yaml`) ``` yaml collection_name: agent # 集合名称 persist_directory: chroma_db # 存储目录 k: 3 # 检索数量 chunk_size: 200 # 分块大小 chunk_overlap: 20 # 重叠长度 ``` ## 📊 数据准备 ### 知识库文件 将专业知识文档放置在 `data/` 目录下: - `扫地机器人100问2.txt` - 常见问题解答 - `故障排除.txt` - 故障处理指南 - `维护保养.txt` - 保养维护知识 - `选购指南.txt` - 购买建议 ### 支持的文件格式 - `.txt` 文本文件 - `.pdf` PDF文档 ## 🔍 使用示例 ### 基础咨询 ``` 用户:小户型适合哪种扫地机器人? 系统:[调用rag_summarize工具] → 根据您的户型特点,我推荐... 用户:我家在北京,最近湿度比较大,会影响机器人使用吗? 系统:[调用get_weather工具] → 北京当前湿度XX%,[调用rag_summarize工具] → 湿度对机器人的影响... ``` ### 故障处理 ``` 用户:机器人找不到充电座怎么办? 系统:[调用rag_summarize工具] → 这个问题很常见,请按以下步骤处理... ``` ### 报告生成 ``` 用户:请生成我的使用报告 系统:[调用get_user_id] → [调用get_current_month] → [调用fill_context_for_report] → [调用fetch_external_data] → 生成个性化使用报告 ``` ## 🛠️ 开发指南 ### 添加新工具 1. 在 `agent/tools/agent_tools.py` 中定义工具函数 2. 在 `agent/react_agent.py` 的tools列表中注册 3. 更新 `prompts/main_prompt.txt` 中的工具说明 ### 扩展知识库 1. 将新文档放入 `data/` 目录 2. 修改 `config/chroma.yaml` 中的 `data_path` 3. 重新运行向量库初始化脚本 ### 自定义提示词 修改 `prompts/` 目录下的对应提示词文件,系统会自动加载更新。 ## 📈 性能优化 ### 向量检索优化 - 调整 `chunk_size` 和 `chunk_overlap` 参数 - 优化检索关键词的相似度阈值 - 定期更新和清理向量数据库 ### 响应速度提升 - 使用更高效的嵌入模型 - 实施缓存机制 - 优化Agent推理链路 ## 🤝 贡献指南 欢迎提交Issue和Pull Request! ### 开发规范 - 遵循PEP8代码规范 - 添加必要的注释和文档 - 编写单元测试 - 提交前运行代码检查 ## 📄 许可证 MIT License ## 🙏 致谢 - [LangChain](https://github.com/langchain-ai/langchain) - 核心框架 - [Streamlit](https://streamlit.io/) - 前端界面 - [Chroma](https://www.trychroma.com/) - 向量数据库 - [阿里云通义千问](https://dashscope.aliyun.com/) - 大语言模型 ---