# robot-business **Repository Path**: Marthew01/robot-business ## Basic Information - **Project Name**: robot-business - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-04-19 - **Last Updated**: 2025-04-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Robot AI 智能语音助手 基于LangChain的智能语音助手系统,用于处理与项目信息相关的语音查询。 ## 功能特点 - **自然语言理解**:理解用户的意图和关键信息 - **业务数据查询**:查询如"某单位火警次数"、"维保情况"等业务数据 - **语音交互界面**:友好的语音和可视化交互界面 - **实时推送**:通过WebSocket提供实时查询状态和结果推送 ## 技术栈 - 前端:Vue 2 + Vuex + Vue Router + Element UI - 后端:SpringBoot 2 + MyBatis-Plus + MySQL - LLM集成:LangChain4j,支持OpenAI和Azure OpenAI - 实时通信:WebSocket + STOMP ## 项目结构 后端服务结构: ``` src/main/java/com/robot/ ├── config/ # 配置类 │ ├── LangChainConfig.java # LangChain4j配置 │ └── WebSocketConfig.java # WebSocket配置 ├── controller/ # API 控制器 │ ├── MCPController.java # REST API控制器 │ └── WebSocketController.java # WebSocket控制器 ├── exception/ # 异常处理 ├── mapper/ # MyBatis-Plus Mapper接口 ├── mcp/ # 简化的MCP实现 │ ├── MCPAgent.java # 基础接口 │ ├── AbstractMCPAgent.java # 抽象实现 │ └── MCPOrchestrator.java # 简化的业务编排器 ├── model/ # 数据模型 ├── service/ # 业务逻辑层 │ ├── LangChainService.java # LangChain集成服务 │ └── langchain/ # LangChain接口定义 │ ├── ApiQueryService.java # API查询服务 │ └── ConversationService.java # 对话服务 └── RobotBusinessApplication.java # 应用入口 ``` ## 快速上手 请参考 [GETTING-STARTED.md](GETTING-STARTED.md) 文件了解如何构建和运行项目。 ## 开发指南 请参考 [DEVELOPMENT.md](DEVELOPMENT.md) 文件了解项目架构和开发流程。 ## API接口 ### REST API - 处理用户意图:`POST /api/mcp/process` - 请求体: `{"query": "一分公司五月份火警次数是多少?"}` - 响应: `{"success": true, "response": "一分公司五月份共发生火警3次。"}` - 对话接口:`POST /api/mcp/chat` - 请求体: `{"message": "二分公司的维保情况怎么样?"}` - 响应: `{"success": true, "response": "二分公司的设备维保情况良好,上个月完成了全部设备的检修。"}` ### WebSocket API - WebSocket连接:`/iff/ws`(使用SockJS) - 发送查询:发送到 `/app/query` - 格式: `{"query": "一分公司五月份火警次数是多少?", "sessionId": "unique-session-id"}` - 订阅接收结果: `/topic/response/unique-session-id` - 订阅状态更新: `/topic/status/unique-session-id` - 发送聊天:发送到 `/app/chat` - 格式: `{"message": "二分公司的维保情况怎么样?", "sessionId": "unique-session-id"}` - 订阅接收结果: `/topic/chat/unique-session-id` ## 实现流程 1. 用户发送自然语言查询 2. 系统使用LangChain解析查询,判断应该调用哪个API 3. 系统调用相应的REST API获取数据 4. 系统使用LangChain将数据转换为自然语言回答 5. 通过WebSocket实时推送处理状态和最终回答 ## 使用示例 - 询问"一分公司五月份火警次数是多少?" - 询问"二分公司12月的维保情况" ## 开发环境要求 - JDK 17+ - Maven 3.6+ - IDE 推荐使用 IntelliJ IDEA 或 Eclipse ## 如何贡献 1. Fork 本项目 2. 创建功能分支: `git checkout -b feature/amazing-feature` 3. 提交更改: `git commit -m 'Add some amazing feature'` 4. 推送分支: `git push origin feature/amazing-feature` 5. 提交 Pull Request ## 许可证 本项目采用 MIT 许可证 - 详情参见 LICENSE 文件