# medical_agent **Repository Path**: astonika/medical_agent ## Basic Information - **Project Name**: medical_agent - **Description**: SpringBoot3+LangChain4j+MongoDB小智医疗项目 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2025-10-01 - **Last Updated**: 2025-10-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 项目介绍 一个基于AI的医疗咨询助手系统,项目的功能和技术栈如下: ## 主要功能 1. 智能医疗咨询 - 提供基于AI的医疗咨询服务 - 支持流式输出,实现打字机效果的对话响应 - 具备上下文记忆功能,保持对话连贯性 2. 预约挂号管理 - 支持查询科室号源 - 提供预约挂号功能 - 支持取消预约服务 3. 知识库检索 - 集成医院信息、科室信息、神经内科等专业知识 - 支持向量化检索,提供精准的医疗信息匹配 ## 技术栈 1. 核心框架 - Spring Boot 3.2.6 - Java 17 - Maven 项目管理 2. AI 技术 - LangChain4j 框架(版本1.0.0-beta3) - 阿里云通义千问API集成 - 对话模型:qwen-max(基础对话) - 流式输出:qwen-plus - 文本向量模型:text-embedding-v3 3. 数据存储 - MySQL:存储预约等业务数据 - MongoDB:存储对话历史 - Pinecone:向量数据库,用于知识库检索 4. 其他技术 - MyBatis-Plus:ORM框架 - Knife4j:API文档 - WebFlux:响应式编程支持 - Easy-RAG:简单的检索增强生成实现 1. 核心框架 - Vue 3 - Vite 构建工具 2. UI组件 - Element Plus - Element Plus Icons 3. 工具库 - Axios:HTTP 客户端 - Marked:Markdown 渲染 - UUID:生成唯一标识 # 项目运行 1.在系统环境变量中声明ALIYUN_PLATFORM_API_KEY,这个key的值在https://bailian.console.aliyun.com/?tab=model#/api-key进行创建。 2.在系统环境变量中声明PINECONE_API_KEY,这个key的值在https://app.pinecone.io进行创建。 如何新增系统环境变量?教程:https://blog.csdn.net/weixin_65032328/article/details/136580118 3.安装MySQL8.0并导入 [mmgxiaozhi.sql](mmgxiaozhi.sql) 脚本文件,安装教程:https://blog.csdn.net/A129837/article/details/143512929 4.安装MongoDB,安装教程:https://blog.csdn.net/weixin_42039228/article/details/123657641 5.安装Node.js18版本以上,下载链接:https://nodejs.org/dist/v18.20.8/node-v18.20.8-x64.msi 6.进入xiaozhi-ui安装依赖npm i并启动前端npm run dev,即可完成前端的运行 7.修改 [application.properties](src\main\resources\application.properties) 文件中数据库连接配置信息 8.运行 [Application.java](src\main\java\com\mmg\medical_agent\Application.java) 文件即可完成后端的启动 8.访问http://localhost:5173/即可! # 项目演示 ![image-20250511174727856](readme.assets/image-20250511174727856.png) ![image-20250511174742701](readme.assets/image-20250511174742701.png) ![image-20250511174754806](readme.assets/image-20250511174754806.png)