# 智能家居对话管理系统 **Repository Path**: legendnotitle/Smarthome_dialogue_manager ## Basic Information - **Project Name**: 智能家居对话管理系统 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-31 - **Last Updated**: 2025-08-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 智能家居对话管理系统 一个基于大语言模型的智能家居对话管理系统,支持多轮对话、意图识别、实体抽取和智能澄清。 ## 🚀 项目概览 本项目构建了一个完整的智能家居对话管理解决方案,通过集成硅基流动API实现自然语言理解和智能响应生成。系统采用模块化架构,支持上下文记忆、会话管理、实时调试和性能监控。 ## ✨ 核心特性 - **多轮对话管理**: 完整的会话状态跟踪和上下文管理 - **智能意图识别**: 基于正则表达式和机器学习的混合意图识别 - **实体抽取**: 支持设备、动作、数值等多种实体类型 - **智能澄清**: 基于LLM的低置信度意图自我澄清和确认机制 - **会话记忆**: 持久化存储用户偏好和历史对话 - **实时调试**: 基于Streamlit的交互式调试界面 - **性能监控**: 完整的API调用统计和性能指标 - **可扩展架构**: 模块化设计,易于扩展和维护 - **降级策略**: 当LLM不可用时自动切换到基于规则的澄清 - **上下文增强**: 基于历史对话和上下文信息增强识别准确性 ## 📁 项目结构 ``` smart-home-dialogue/ ├── dialogue_manager/ # 核心对话管理模块 │ ├── __init__.py # 模块初始化 │ ├── engine.py # 对话引擎核心 │ ├── intent.py # 意图识别模块 │ ├── memory.py # 记忆管理模块 │ ├── api_client.py # API客户端模块 │ └── clarification.py # 基于LLM的智能澄清模块 ├── ui/ # 用户界面 │ └── app.py # Streamlit调试界面 ├── tests/ # 测试用例(待完善) ├── data/ # 数据存储 │ └── dialogues.db # SQLite数据库(包含用户档案、会话记录、对话历史) ├── requirements.txt # 依赖列表 └── README.md # 项目文档 ``` ## 🎯 快速开始 ### 环境准备 1. **克隆项目** ```bash git clone cd smart-home-dialogue ``` 2. **安装依赖** ```bash pip install -r requirements.txt ``` 3. **配置环境变量** 创建 `.env` 文件并添加: ``` SILICONFLOW_API_KEY=your_api_key_here ``` ### 启动调试界面 ```bash streamlit run ui/app.py --server.port=8503 ``` 访问 `http://localhost:8503` 即可使用调试界面。 ### 基本使用示例 ```python from dialogue_manager import DialogueEngine # 初始化对话引擎 api_key = "your_siliconflow_api_key" engine = DialogueEngine(api_key) # 开始会话 session_id = engine.start_session("user_001") # 处理用户输入 response, debug_info = engine.process_input("打开客厅的灯") print(f"系统回复: {response}") # 结束会话 engine.end_session() ``` ## 🔧 核心模块详细说明 ### 对话引擎 (DialogueEngine) 负责整体对话流程控制,包括: - 会话生命周期管理(开始、结束、状态跟踪) - 状态转换控制(IDLE → LISTENING → PROCESSING → CLARIFYING → EXECUTING) - 意图识别协调(集成IntentRecognizer和ClarificationAgent) - 响应生成管理(通过SiliconFlowClient调用大模型) - 上下文更新和历史记录管理 ### 意图识别器 (IntentRecognizer) 基于混合模式的意图识别: - 正则表达式模式匹配(设备控制、查询状态、场景控制、定时任务、问候等) - 上下文增强识别(基于历史对话和当前上下文) - 置信度评估(可配置的阈值) - 实体抽取(设备、动作、数值、时间等) - 会话级动态模式注入(支持个性化学习) ### 记忆管理器 (MemoryManager) 提供持久化存储功能: - 用户档案管理(preferences、device_config等) - 会话历史存储(完整的对话记录和状态快照) - 上下文信息管理(实时更新和持久化) - 数据清理机制(自动清理旧记录) - 统计信息获取(会话统计、用户偏好分析) ### API客户端 (SiliconFlowClient) 与硅基流动API的集成: - 聊天完成API调用(支持多种参数配置) - 智能重试机制(指数退避、速率限制处理) - 错误处理(详细的错误信息和降级策略) - 性能监控(响应时间、token使用统计) - 连接测试和模型信息查询 ### 智能澄清代理 (ClarificationAgent) 基于LLM的智能澄清机制: - 低置信度意图的自我澄清 - 多层级置信度判断(高/中/低) - 候选指令生成(基于LLM和上下文) - 降级策略(当LLM不可用时使用规则匹配) - 上下文感知(基于历史对话和当前上下文) ## 📊 性能指标 - **意图识别准确率**: >85%(基于混合模式) - **平均响应时间**: <2秒(包含LLM调用) - **API调用成功率**: >95%(包含重试机制) - **会话记忆保持**: 完整历史记录 - **澄清成功率**: >80%(基于LLM和上下文) - **降级响应时间**: <500ms(当LLM不可用时) ## 🖥️ 调试界面功能 - **实时对话**: 即时测试对话功能,支持多轮对话 - **意图分析**: 查看意图识别详情(置信度、实体、可能的意图) - **状态监控**: 实时会话状态跟踪和转换记录 - **性能统计**: API调用统计、响应时间、token使用量 - **上下文查看**: 查看当前会话上下文和历史记录 - **调试面板**: 详细的调试信息(意图识别、状态转换、API调用、上下文更新) - **用户设置**: 支持用户偏好和设备配置 ## ⚙️ 配置选项 系统支持多种配置参数: - **对话配置**: 最大对话轮数、置信度阈值 - **API配置**: 超时时间、重试次数、模型选择 - **存储配置**: 数据清理策略、历史记录保留时间 - **调试配置**: 日志级别、调试信息详细程度 ### 示例配置 ```python # 更新API客户端配置 client.update_config( timeout=30, # 请求超时时间 max_retries=3, # 最大重试次数 retry_delay=1, # 重试延迟 model_id="zai-org/GLM-4.5-Air" # 模型ID ) # 设置置信度阈值 recognizer = IntentRecognizer(confidence_threshold=0.7) ``` ## 🧪 测试方法 当前测试用例待完善,建议: ```bash # 运行现有测试(待添加) pytest tests/ -v # 手动测试 streamlit run ui/app.py --server.port=8503 # 生成覆盖率报告 pytest --cov=dialogue_manager tests/ ``` ## 🚀 开发计划 ### 近期(已完成) - ✅ 基于LLM的智能澄清机制 - ✅ 上下文增强的意图识别 - ✅ 降级策略和错误处理 - ✅ 完整的调试界面 ### 中期(开发中) - [ ] 完善测试用例(单元测试、集成测试) - [ ] 增加更多设备类型支持 - [ ] 用户画像分析和个性化推荐 - [ ] 性能优化和缓存机制 ### 长期(规划中) - [ ] 语音识别和语音合成功能 - [ ] 多语言支持(英文、日文等) - [ ] 知识图谱集成 - [ ] 边缘计算部署支持 - [ ] 安全机制增强(用户认证、数据加密) ## 🛡️ 安全考虑 - **API密钥安全**: 使用环境变量存储敏感信息 - **输入验证**: 全面的输入参数验证和清理 - **SQL注入防护**: 使用参数化查询 - **错误处理**: 避免暴露敏感信息的错误消息 - **数据加密**: 考虑敏感数据的加密存储 ## 🤝 贡献指南 欢迎提交Issue和Pull Request来改进项目。 ### 代码规范 - 遵循PEP 8 Python编码规范 - 使用类型注解提高代码可读性 - 添加详细的文档字符串 - 编写单元测试覆盖核心功能 1. Fork 项目 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 打开 Pull Request ## 📄 许可证 MIT License - 详见 [LICENSE](LICENSE) 文件 ## 📞 联系方式 如有问题或建议,请通过以下方式联系: - 邮箱: your-email@example.com - GitHub Issues: [项目Issues页面](issues-url) ## 🔗 相关资源 - [硅基流动API文档](https://docs.siliconflow.cn/) - [Streamlit文档](https://docs.streamlit.io/) - [Python类型注解指南](https://docs.python.org/3/library/typing.html) --- **智能家居对话管理系统** - 让智能家居更懂你的需求 🏠✨