# 基础agent **Repository Path**: yakumo12/basic-agent ## Basic Information - **Project Name**: 基础agent - **Description**: 基于黑马程序员的第一个langchain视频 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-16 - **Last Updated**: 2026-05-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 智扫通智能客服系统 基于 RAG (Retrieval-Augmented Generation) 和 ReAct (Reasoning + Acting) 框架的智能客服系统,专为扫地机器人产品提供专业问答和个性化使用报告生成服务。 ## 项目概述 该系统模拟智扫通扫地机器人智能客服,能够: - 回答用户关于扫地机器人的专业问题(选购建议、使用维护、故障排除等) - 根据用户需求生成个性化使用报告 - 通过 ReAct 框架实现思考→行动→观察→再思考的智能推理流程 ## 技术架构 ### 核心模块 | 模块 | 路径 | 说明 | |------|------|------| | `agent/react_agent.py` | ReactAgent | 主 Agent,基于 LangChain 的 ReAct 推理引擎 | | `rag/rag_service.py` | RagSummarizeService | RAG 摘要服务,检索向量库并生成回答 | | `rag/vector_store.py` | VectorStoreSearch | 向量存储管理,基于 ChromaDB | | `app.py` | - | Streamlit Web 应用入口 | ### 工具集 | 工具 | 功能 | |------|------| | `rag_summarize` | 从向量知识库检索专业资料并生成摘要 | | `get_weather` | 查询城市天气(用于环境适配建议) | | `get_user_location` | 获取用户所在城市 | | `get_user_id` | 获取用户唯一标识 | | `get_current_month` | 获取当前月份 | | `fetch_external_data` | 查询用户在指定月份的使用记录 | | `fill_context_for_report` | 触发报告生成场景的提示词切换 | ### 中间件 | 中间件 | 功能 | |--------|------| | `report_prompt_switch` | 根据上下文动态切换提示词(问答/报告) | | `monitor_tool` | 监控工具调用日志 | | `log_before_model` | 模型调用前日志记录 | ## 项目结构 ``` Agent智能体项目/ ├── agent/ │ ├── tools/ │ │ ├── agent_tools.py # Agent 工具定义 │ │ └── middleware.py # 中间件 │ └── react_agent.py # ReAct Agent 实现 ├── config/ │ ├── agent.yml # Agent 配置 │ ├── chroma.yml # ChromaDB 配置 │ ├── prompts.yml # 提示词配置 │ └── rag.yml # RAG 配置 ├── data/ │ ├── external/ │ │ └── records.csv # 用户使用记录数据 │ └── *.txt # 知识库文档 ├── model/ │ └── factory.py # 模型工厂(OpenAI/Embedding) ├── prompts/ │ ├── main_prompt.txt # 主提示词 │ ├── rag.summarize.txt # RAG 摘要提示词 │ └── report_prompt.txt # 报告生成提示词 ├── rag/ │ ├── vector_store.py # 向量存储 │ └── rag_service.py # RAG 服务 ├── utils/ │ ├── config_handler.py # 配置加载 │ ├── file_handler.py # 文件处理 │ ├── logger_handler.py # 日志 │ ├── path_tool.py # 路径工具 │ └── prompt_loader.py # 提示词加载 ├── app.py # Streamlit Web 应用 └── pyproject.toml # 项目依赖 ``` ## 环境要求 - Python >= 3.11 - 支持的模型:DeepSeek V3 (通过 OpenAI API) ## 安装 ```bash # 使用 uv 安装依赖 uv sync # 或使用 pip pip install -r requirements.txt ``` ## 配置 ### 环境变量 配置 API Key 和基础 URL: ```bash # 建议使用 .env 文件 CHAT_MODEL_API_KEY=your_api_key CHAT_MODEL_BASE_URL=https://api.deepseek.com EMBEDDING_API_KEY=your_api_key EMBEDDING_BASE_URL=https://api.deepseek.com ``` ### 配置文件 - `config/rag.yml` - ChatGLM 模型配置 - `config/chroma.yml` - 向量数据库配置 - `config/agent.yml` - Agent 配置 - `config/prompts.yml` - 提示词文件路径 ## 运行 ### 启动 Web 应用 ```bash streamlit run app.py ``` ### 直接运行 Agent ```bash python agent/react_agent.py ``` ## 使用说明 ### 问答模式 用户可以直接咨询扫地机器人相关问题: - 选购建议 - 使用方法 - 维护保养 - 故障排除 - 环境适配 ### 报告生成模式 当用户有生成报告需求时(如"生成xxx用户xxx月的使用报告"),Agent 会: 1. 获取用户 ID 2. 获取目标月份 3. 查询外部数据 4. 生成个性化使用报告 ## 依赖技术 - **LangChain** - Agent 框架 - **ChromaDB** - 向量数据库 - **Streamlit** - Web UI - **OpenAI SDK** - 模型调用