# HospitalAgent **Repository Path**: CodingKeep/HospitalAgent ## Basic Information - **Project Name**: HospitalAgent - **Description**: 基于 SpringBoot 3 + Vue 3 + LangChain4j 的医院导诊与就医流程咨询 AI Agent 系统,集成 RAG 知识库检索与 Tool Calling 工具调用 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-31 - **Last Updated**: 2026-07-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 🏥 HospitalAgent — 基于 SpringBoot + RAG 的医院导诊与就医流程咨询 Agent 系统

Spring Boot Java 17 Vue 3 LangChain4j MySQL License

面向医院就诊场景的 **AI Agent 智能业务系统**,集成传统后台管理、**RAG 知识库检索**、**Tool Calling 工具调用**与**多轮对话**能力。患者输入症状即可获得科室推荐、医生排班、就医流程等一站式导诊服务。 ## ✨ 核心特性 - 🤖 **AI 导诊对话**:多轮对话 + 会话记忆,自动完成「急症检测 → RAG 检索 → Tool 调用 → LLM 生成」完整链路 - 🚑 **急症风险识别**:内置急症关键词检测,高危症状优先提示急诊/120 - 📋 **智能分诊**:症状表单化填写,一键生成结构化导诊建议并留存分诊记录 - 📚 **RAG 知识库**:知识文档管理、段落自动切片、关键词向量检索(pgvector 扩展预留) - 🔧 **Tool Calling**:6 大内置工具覆盖科室、医生、排班、流程、FAQ 等真实业务查询 - 👥 **RBAC 权限体系**:用户/角色/菜单三级权限,JWT + Redis 双重保障 - 📊 **全链路日志**:Agent 调用日志、工具执行日志、操作日志全程可追溯 - 🎨 **现代化前端**:Vue 3 + TypeScript + Arco Design,支持 Markdown 富文本渲染与 ECharts 可视化 ## 🛠️ 技术栈 | 层级 | 技术 | |------|------| | 后端 | Spring Boot 3.2.5、Java 17、MyBatis-Plus 3.5.5、MySQL 8、Redis、Spring Security、JWT (jjwt 0.12)、Knife4j 4.5、Hutool | | AI | LangChain4j 0.35.0、Mock LLM(默认)/ OpenAI 兼容 API、MySQL 关键词 RAG、pgvector 预留 | | 前端 | Vue 3.5、Vite 6、TypeScript 5.7、Pinia、Vue Router 4、Arco Design Vue、ECharts 5、Markdown-it、Less | ## 📐 系统架构 ``` ┌────────────────────────────── 前端 Vue3 ──────────────────────────────┐ │ AI导诊对话 │ 智能分诊 │ 会话管理 │ 知识库管理 │ 医院信息管理 │ 系统管理 │ └──────────────────────────────────┬────────────────────────────────────┘ │ Axios + JWT ┌──────────────────────────────────▼────────────────────────────────────┐ │ Spring Boot 3.2 后端 │ │ ┌─────────────────────── Agent 编排层 ───────────────────────┐ │ │ │ 急症检测 → RAG 检索 → Tool Calling → Prompt 组装 → LLM 生成 │ │ │ └────────┬───────────────┬────────────────┬──────────────────┘ │ │ │ │ │ │ │ 会话记忆 Memory 向量检索 VectorStore 6 大业务工具 Tools │ └───────────┬───────────────┬────────────────┬───────────────────────────┘ │ │ │ Redis 缓存 MySQL 8 LLM (Mock / OpenAI 兼容) ``` ## 📁 目录结构 ``` ├── backend/ # Spring Boot 后端 │ └── src/main/ │ ├── java/com/example/hospitalagent/ │ │ ├── agent/ # AI Agent 核心(对话、分诊、记忆、RAG、工具) │ │ ├── auth/ # 认证授权(JWT 登录、过滤器) │ │ ├── hospital/ # 医院信息(科室、医生、排班、流程、FAQ) │ │ ├── knowledge/ # RAG 知识库(文档、切片、向量检索) │ │ ├── log/ # 日志(Agent 日志、工具日志、操作日志) │ │ ├── system/ # 系统管理(用户、角色、菜单) │ │ ├── common/ # 通用组件(统一返回、异常、工具类) │ │ └── config/ # 配置(Security、Redis、LLM、Agent 等) │ └── resources/ │ ├── sql/ # schema.sql + data.sql │ └── application.yml ├── frontend/ # Vue3 前端 │ └── src/ │ ├── api/ # 接口封装 │ ├── views/ # 页面(agent / hospital / knowledge / log / system) │ ├── layout/ # 布局框架 │ ├── stores/ # Pinia 状态 │ └── router/ # 路由与权限 └── README.md ``` ## 🚀 快速开始 ### 环境要求 - JDK 17+ - Maven 3.8+ - Node.js 18+ - MySQL 8.0 - Redis 6+(可选,未启动时 Token 缓存自动降级) ### 1. 数据库初始化 ```bash mysql -u root -p < backend/src/main/resources/sql/schema.sql mysql -u root -p < backend/src/main/resources/sql/data.sql ``` 修改 `backend/src/main/resources/application.yml` 中的数据库与 Redis 连接信息。 ### 2. 启动后端 ```bash cd backend mvn clean install mvn spring-boot:run ``` - 服务地址:http://localhost:8080 - API 文档(Knife4j):http://localhost:8080/doc.html ### 3. 启动前端 ```bash cd frontend npm install npm run dev ``` - 访问地址:http://localhost:5173 ## 👤 默认账号 | 用户名 | 密码 | 角色 | |--------|------|------| | admin | 123456 | 系统管理员 | | user | 123456 | 普通患者 | | nurse | 123456 | 导诊护士 | | knowledge | 123456 | 知识库管理员 | | doctor | 123456 | 医生专家 | ## 🤖 AI Agent 使用说明 1. 使用 `user` 或 `admin` 登录后进入 **AI 导诊对话**。 2. 输入症状或流程问题,系统自动执行:**急症检测 → RAG 检索 → Tool 调用 → LLM 生成 Markdown 回答**。 3. **智能分诊** 页面可填写症状表单生成结构化导诊建议。 4. 默认 `llm.provider=mock`,**无需 API Key 即可完整演示**。 ### 切换真实大模型 编辑 `application.yml`(兼容 OpenAI 协议的模型均可,如 DeepSeek、通义千问、Kimi 等): ```yaml llm: provider: openai api-key: your-api-key base-url: https://api.openai.com/v1 model-name: gpt-4o-mini ``` ## 📚 RAG 知识库 - 知识文档支持手动新增与**段落自动切片**。 - 当前使用 `MysqlKeywordVectorStoreServiceImpl` 关键词检索,零外部依赖。 - `PgVectorStoreServiceImpl` 为 pgvector 向量检索扩展预留,可无缝切换。 ## 🔧 Tool Calling 工具清单 | 工具 | 功能 | |------|------| | EmergencyRiskTool | 急症风险检测,识别高危症状 | | DepartmentTool | 科室推荐 / 科室信息查询 | | DoctorTool | 医生信息查询 | | ScheduleTool | 医生排班查询 | | MedicalProcessTool | 就医流程(挂号、缴费、医保等)查询 | | FaqTool | 医院常见问题搜索 | ## ⚠️ 医疗安全声明 本系统仅提供**导诊与就医流程参考**,不能替代医生的专业诊断。所有 AI 回复均包含急症提醒与安全声明;如遇紧急情况请立即拨打 120 或前往急诊。 ## ❓ 常见问题 **Q: Redis 未启动会怎样?** A: 核心功能仍可用,Token 缓存自动降级为 JWT 直解析。 **Q: 登录失败?** A: 确认已执行 `data.sql` 初始化数据,默认密码均为 `123456`。 **Q: 前端接口 401?** A: 检查 `frontend/.env.development` 中的 `VITE_API_BASE_URL` 与后端 CORS / 端口配置。 **Q: 不配置大模型 API Key 能用吗?** A: 可以。默认 Mock LLM 模式基于规则模板生成回复,完整演示 Agent 全链路。 ## 📄 License 本项目基于 [MIT License](https://opensource.org/licenses/MIT) 开源,仅供学习交流使用。