这是一个基于 Java (Spring Boot) 和 Vue 3 的全栈 AI 医疗助手项目。它利用了 DeepSeek 大模型的能力,结合 RAG(检索增强生成)技术和 Function Calling(函数调用),提供智能化的医疗咨询、导诊和挂号服务。
- 智能对话:基于 DeepSeek-V3 模型,提供自然流畅的医疗咨询服务。
- 流式响应 (SSE):支持 Server-Sent Events,实现打字机效果的实时回复,提升用户体验。
- RAG 检索增强:集成 Pinecone 向量数据库和阿里通义千问 Embedding 模型,能够基于本地医疗知识库(如医院介绍、科室专家信息)回答问题,减少幻觉。
- 工具调用 (Function Calling):AI 可以自主调用后端工具,实现查询号源、预约挂号、取消预约等实际业务操作。
- 会话管理:
- 支持创建多个会话窗口。
- 自动保存历史对话记录(本地存储)。
- 新会话自动生成标题。
- 支持删除不需要的会话。
- 记忆功能:基于 Redis/MongoDB 实现的长短期记忆,让 AI 能够记住用户的上下文(如姓名、病情描述)。
- 核心框架: Spring Boot 3.2.6
- AI 框架: LangChain4j 1.0.0-beta3
- LLM 模型: DeepSeek-Chat (OpenAI API 兼容模式)
- Embedding 模型: 阿里通义千问 (DashScope text-embedding-v3)
- 向量数据库: Pinecone
- 数据存储:
- MySQL (业务数据)
- Redis (缓存/会话记忆)
- MongoDB (聊天记录存档)
- ORM: MyBatis-Plus
- 框架: Vue 3 (Composition API)
- 构建工具: Vite
- UI 组件库: Element Plus
- HTTP 客户端: Axios
- Markdown 渲染: Marked
- 图标: FontAwesome
- JDK 17+
- Node.js 18+
- MySQL 8.0+
- Redis
- MongoDB (可选)
- Maven 3.6+
git clone https://github.com/your-username/java-ai-langchain4j.git
cd java-ai-langchain4j- 修改
src/main/resources/application.properties,配置你的 API Key 和数据库连接信息:# DeepSeek API 配置 langchain4j.open-ai.chat-model.api-key=your_deepseek_api_key # 阿里 DashScope API 配置 (Embedding) langchain4j.community.dashscope.embedding-model.api-key=your_dashscope_api_key # Pinecone 配置 langchain4j.pinecone.api-key=your_pinecone_api_key # 数据库配置 spring.datasource.password=your_mysql_password spring.data.redis.password=your_redis_password
- 启动后端服务:
或者使用 IDE 直接运行
mvn spring-boot:run
example.Main类。
- 进入前端目录:
cd xiaozhi-ui - 安装依赖:
npm install
- 启动开发服务器:
npm run dev
- 访问浏览器:打开
http://localhost:5173即可开始对话。
项目根目录下提供了便捷脚本:
./run-all.shjava-ai-langchain4j/
├── src/main/java/example/ # 后端源码
│ ├── assistant/ # AI 助手定义 (LangChain4j @AiService)
│ ├── controller/ # Web 接口 (SSE 接口)
│ ├── tool/ # AI 可调用的工具函数 (挂号、查询等)
│ └── ...
├── xiaozhi-ui/ # 前端源码
│ ├── src/components/ # Vue 组件 (ChatWindow.vue)
│ └── ...
└── ...
欢迎提交 Issue 和 Pull Request!