# cloud-med-ai **Repository Path**: codesdev/cloud-med-ai ## Basic Information - **Project Name**: cloud-med-ai - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-21 - **Last Updated**: 2025-08-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 智能医疗问诊系统 (Cloud Med AI Graph) ## 📋 项目概述 基于Spring AI + Alibaba DashScope的智能医疗问诊系统,采用StateGraph状态图模式,实现智能意图识别、症状收集和科室推荐。 ## 🚀 核心功能 - **智能意图识别**:AI驱动的医疗意图判断,区分有意图和无意图问诊 - **动态症状收集**:根据用户描述智能追问症状细节 - **科室推荐**:基于症状分析推荐最合适的医疗科室 - **对话管理**:支持多轮对话,实时状态管理 - **Redis缓存**:分布式会话管理,支持并发用户 ## 🏗️ 技术架构 - **Spring Boot 3.2+** - 应用框架 - **Spring AI Alibaba** - AI集成框架 - **StateGraph** - 状态流程管理 - **Redis** - 会话状态存储 - **DashScope API** - 阿里云大模型服务 - **Nacos** - 配置中心和服务发现 ## 🔧 环境要求 - Java 17+ - Maven 3.6+ - Redis 6.0+ - Nacos 2.0+ ## ⚙️ 配置说明 ### 应用配置 (bootstrap.yml) ```yaml server: port: 9900 spring: application: name: ai-graph profiles: active: dev cloud: nacos: config: server-addr: 172.172.2.201:8848 namespace: public group: liyuxiang1 discovery: server-addr: 172.172.2.201:8848 ``` ### Nacos配置文件 (ai-graph-dev.yml) ```yaml spring: ai: dashscope: api-key: your-dashscope-api-key chat: options: model: qwen-max-latest data: redis: port: 6379 host: localhost password: your-redis-password # ChatMemory配置 - 防止内存溢出 chat: memory: max-messages: 50 ttl-hours: 12 batch-size: 20 ``` ## 🚀 启动步骤 1. **启动基础服务** ```bash # 启动Redis redis-server # 启动Nacos sh startup.sh -m standalone ``` 2. **配置Nacos** - 访问 http://localhost:8848/nacos - 创建配置文件 `ai-graph-dev.yml` - 填入DashScope API Key和Redis配置 3. **编译运行** ```bash mvn clean compile mvn spring-boot:run ``` ## 🌐 API接口 ### 智能问诊聊天 ```http POST /diagnosis/chat Content-Type: application/json { "query": "我头痛", "userId": "1001", "threadId": "session_1001", "isNewSession": false } ``` ### 获取诊断上下文 ```http GET /diagnosis/context/{threadId} ``` ### 清除会话 ```http DELETE /diagnosis/context/{threadId} ``` ## 🏭 系统流程 ```mermaid graph TD A[用户输入] --> B[意图识别] B --> C{有医疗意图?} C -->|是| D[症状收集] C -->|否| E[友好引导] D --> F{症状完整?} F -->|否| G[继续询问] F -->|是| H[科室推荐] G --> D H --> I[结束对话] E --> I ``` ## 🔒 内存安全 系统实现了完善的内存溢出防护: - **会话限制**:每个会话最多50条消息 - **TTL过期**:12小时自动清理过期数据 - **批量处理**:限制单次处理20条消息 - **双重清理**:同时管理DiagnosisContext和ChatMemory ## 📊 监控指标 - 会话并发数 - AI API调用次数和响应时间 - Redis内存使用情况 - 错误率和超时率 ## 🛠️ 开发指南 ### 添加新的节点 1. 实现 `NodeAction` 接口 2. 在 `GraphConfiguration` 中注册节点 3. 配置节点间的条件边 ### 扩展AI服务 1. 继承现有Service模式 2. 使用 `@Qualifier("simpleCharClientBuilder")` 避免ChatMemory问题 3. 实现结构化JSON响应解析 ## 🔍 故障排查 ### 常见问题 - **端口占用**:修改 `bootstrap.yml` 中的端口配置 - **Redis连接失败**:检查Redis服务状态和连接配置 - **DashScope超时**:系统有自动fallback机制 - **Nacos配置错误**:确认命名空间和组配置正确 ## 📚 参考文档 - [Spring AI Alibaba文档](https://spring-ai.alibaba.com/) - [StateGraph使用指南](https://spring-ai.alibaba.com/graph/) - [DashScope API文档](https://help.aliyun.com/zh/dashscope/) - [Spring Boot官方文档](https://docs.spring.io/spring-boot/) - [Official Apache Maven documentation](https://maven.apache.org/guides/index.html) - [Spring Boot Maven Plugin Reference Guide](https://docs.spring.io/spring-boot/docs/2.6.13/maven-plugin/reference/html/) 欢迎提交Issue和Pull Request来完善这个项目!