news 2026/8/4 21:30:38

LangChain4j医疗助手开发实战(非常详细):打造企业级智能应用,从入门到精通,收藏这一篇就够了!

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LangChain4j医疗助手开发实战(非常详细):打造企业级智能应用,从入门到精通,收藏这一篇就够了!

在大模型加速落地的当下,「怎么把 LLM 真正融入到业务流程」已经成为医疗机构、互联网医院、数字化团队共同关注的问题。本篇文章基于 heyou-medical 项目,从实际代码出发,拆解一个可落地的「智能医疗客服 + 挂号助手」方案,并给出面向企业级应用的优化建议。


一、项目定位与整体能力概览

项目定位

  • 产品名称:禾优小智(医疗版)

  • 使用场景:医院官网 / 小程序 / 公众号 / 自助终端上的 智能导诊 + 挂号助手

  • 核心角色:

  • 智能医疗顾问:提供病情咨询、就诊建议、用药建议(基于提示词约束在医疗领域内)。

  • 就医流程助手:分导诊、查询号源、预约挂号、取消预约等。

维度说明
产品名称禾优小智(医疗版)
使用场景医院官网 / 小程序 / 公众号 / 自助终端
核心角色智能医疗顾问 + 就医流程助手

整体能力

  • 支持基于 医院专属知识库 的 RAG 问答(如医院介绍、科室信息、神经内科介绍等)。

  • 支持基于 工具调用(Tool Calling) 的智能挂号:查询是否有号源、预约、取消预约。

  • 支持 按用户维度的会话记忆(基于 MongoDB)以及 高性能流式输出体验(WebFlux + 前端流式渲染)。

  • 前后端分离:后端 Spring Boot + LangChain4j,前端 Vue3 + Element Plus 打造聊天工作台式体验。

  • 整体能力结构图


二、整体架构设计

系统架构图

从代码结构看,heyou-medical 主要分为三层:

1、前端 (heyou-ui)

  • 技术栈:Vue3 + Element Plus + Vite

  • 主要页面:App.vue + ChatWindow.vue

  • 聊天 UI、会话列表、本地 UUID 用于标识用户会话。

2、后端服务

2.1 技术栈:

  • Spring Boot 3.4.4

  • LangChain4j(含 DashScope、Reactor、Pinecone、Easy-RAG 等组件)

  • MyBatis-Plus + MySQL(挂号记录)

  • MongoDB(会话记忆)

  • Knife4j(接口文档)

2.2核心模块:

  • 启动入口:HeyouAgentApplication

  • 控制层:HeyouController(/heyou/chat 流式接口)

  • 智能体:HeyouAgent、MemoryChatAssistant、SeparateChatAssistant

  • 配置:HeyouAgentConfig、MemoryChatAssistantConfig、SeparateChatAssistantConfig、EmbeddingStoreConfig

  • 业务挂号:Appointment / AppointmentMapper / AppointmentService / AppointmentServiceImpl / AppointmentTools

3、外部依赖与基础设施

  • 大模型与向量模型:阿里云百炼 Qwen 系列(qwen-max / qwen-plus / text-embedding-v3)

  • 向量库:Pinecone

  • 存储:

    MySQL:挂号订单表 MongoDB:会话记忆库
  • 本地知识库:src/main/resources/knowledge/*.md(医院信息、科室信息、神经内科等)

可以概括为一套 “前端聊天工作台 + 后端智能体服务 + RAG 知识库 + 工具驱动业务流程” 的完整闭环。


三、核心技术栈拆解

技术栈结构图

  1. 后端技术栈
  • Spring Boot 3.4.4

    负责 REST 接口、依赖注入、配置管理,端口 8088。
  • WebFlux + Reactor

    HeyouController.chat 直接返回 Flux<String>,支持流式响应,提升对话体验和性能。
  • LangChain4j(1.0.0-beta3 系列)

  • langchain4j-spring-boot-starter:与 Spring 深度集成,通过 @AiService 注解声明智能体。
  • langchain4j-reactor:与 Reactor 结合,实现流式、响应式对话。
  • langchain4j-community-dashscope-spring-boot-starter:对接阿里百炼 Qwen 系列模型。
  • langchain4j-document-parser-apache-pdfbox、langchain4j-easy-rag、langchain4j-pinecone:支撑文档解析、RAG 能力与 Pinecone 向量库。
  • 数据层与存储
  • MyBatis-Plus + MySQL:封装挂号数据操作(AppointmentMapper、AppointmentServiceImpl)。
  • Spring Data MongoDB:存储会话记忆(MongoChatMemoryStore)。
  • Pinecone:作为可扩展的在线向量存储,适合后续大规模知识库。
  • 前端技术栈

  • Vue3 + Element Plus + Vite

  • 单页应用,构建快捷,支持现代浏览器特性。
  • Axios
  • 通过 POST /api/heyou/chat 发起对话请求。
  • 利用 onDownloadProgress 处理 流式文本增量渲染。
  • UUID
  • 浏览器端生成并缓存 user_uuid,经过转换后作为 Long 型 memoryId 与后端的 @MemoryId 对应,实现「按用户隔离的会话上下文」。

四、核心功能拆解

对话请求处理流程(时序图)

智能体与配置关系图

预约挂号业务流程图

  1. 智能医疗顾问
  • 系统提示词定义在 heyou-prompt-template.txt 中,指定:
  • 助手名称为「禾优小智」,医院为「北京协和医院」。
  • 角色:医疗顾问 + 医疗伴诊助手。
  • 必须只在首次会话时打招呼,后续直接进入问答。
  • 对病情咨询需给出:
  • 可能病因
  • 诊断流程建议
  • 治疗与用药建议(含药品名、剂量、疗程)
  • 就医与检查建议
  • 严格限制只回答医疗相关问题,非本领域需礼貌拒绝。

  • 答案中适当加入轻松可爱的表情符号(面向 C 端用户体验)。

这些规则最终通过 @SystemMessage(fromResource = “heyou-prompt-template.txt”) 注入到 HeyouAgent.chat 中,对 LLM 行为做了非常清晰的「安全护栏」。

  1. AI 分导诊 + RAG 知识库
  • 在 HeyouAgentConfig 中:
  • 使用 FileSystemDocumentLoader 从 knowledge 目录加载如:

  • 医院信息.md

  • 科室信息.md

  • 神经内科.md

  • 使用 EmbeddingStoreIngestor 将这些文档切分为 TextSegment,并写入 InMemoryEmbeddingStore。

  • 通过EmbeddingStoreContentRetriever 暴露为 ContentRetriever,供智能体检索。

  • 另一条路径通过 EmbeddingStoreConfig + PineconeEmbeddingStore 集成了 Pinecone,contentRetrieverHeyouPinecone 使用外部向量库:
  • 支持:

  • 指定 index 名称、namespace。

  • 根据 EmbeddingModel.dimension() 自动配置维度。

  • 设置 maxResults 与 minScore 过滤相似度。

  1. 智能预约挂号与取消
  • 实体与数据表
  • Appointment:挂号信息实体,字段包含姓名、身份证号、科室、日期、时间、医生等。

  • AppointmentMapper:继承 BaseMapper

    ,直接使用 MyBatis-Plus 的 CRUD 能力。

  • AppointmentServiceImpl:使用 LambdaQueryWrapper 自定义 getOne 查询,用于判断是否已有相同时间段、科室的预约。

  • 工具函数(Tool)驱动业务流

  • AppointmentTools 中定义了 3 个关键 Tool:

  • bookAppointment(预约挂号)

  • cancelAppointment(取消挂号)

  • queryDepartment(查询是否有号源,当前为示例逻辑)

  • 工具的核心逻辑:

  • 预约前 先通过 getOne 判断是否存在相同时间、科室的记录,避免重复预约。

  • 新增成功则返回「预约成功,并返回详情信息」,失败返回失败提示。

  • 取消预约通过查询匹配记录并调用 removeById 删除。

  • queryDepartment 中预留 TODO,用于接入真正的医生排班逻辑。

  • 在 HeyouAgent 的 @AiService 注解中,通过 tools = {“appointmentTools”} 暴露这些 Tool 给大模型:

  • 大模型可在对话中根据用户意图自动调用挂号、取消等工具,实现真正的「对话即业务操作」。
  1. 会话记忆与用户识别
  • 后端侧会话记忆

  • HeyouAgentConfig.chatMemoryProviderHeyou 中:

  • 使用 MessageWindowChatMemory 并配置 maxMessages(20)。
  • 使用自定义的 MongoChatMemoryStore 实现持久化。
  • 前端侧用户标识

  • ChatWindow.vue 中:

  • 首次访问时在浏览器端生成 UUID,通过 uuidToNumber 转为 Long 范围数值并存在 localStorage。
  • 每次请求带上 memoryId,与后端的 @MemoryId Long memoryId 对应。
  • 新会话时清空本地 user_uuid,重新生成,从而重置会话记忆。

五、运行与搭建步骤

搭建流程图

1. 后端服务(Spring Boot)
  • 运行前准备

  • JDK 17+

  • Maven 3.8+

  • 本地 MySQL,创建库 heyou-agent,配置账号密码(application.properties 中默认 root/root)。

  • 本地 MongoDB,默认连接串:mongodb://localhost:27017/chat_memory_db。

  • 配置阿里云百炼环境变量:

  • ALI_API_KEY:用于 Qwen 对话与向量模型。

  • 配置 Pinecone 环境变量:

  • PINECONE_API_KEY:用于创建与访问向量索引。

  • 启动步骤

  • 在 heyou-medical 目录执行:

  • mvn clean package(或直接 mvn spring-boot:run)

  • 应用启动类:HeyouAgentApplication

  • 启动成功日志:HeyouAgent Server Start Success!

  • 默认服务端口:8088

2. 前端应用(Vue3)
  • 安装依赖

  • 进入 heyou-ui 目录:

  • npm install 或 pnpm install

  • 启动开发环境

  • npm run dev

  • 通过 Vite 本地启动前端服务。

  • 与后端联调

  • 前端中调用接口地址为 /api/heyou/chat,可在 Vite 代理配置中将 /api 代理到 http://localhost:8088:

  • 例如在 vite.config.js 中配置:

  • proxy: { ‘/api’: { target: ‘http://localhost:8088’, changeOrigin: true, rewrite: path => path.replace(/^/api/, ‘’) } }


六、项目亮点总结

  1. 智能体编排清晰,易于扩展

HeyouAgent、MemoryChatAssistant、SeparateChatAssistant 将不同场景的对话逻辑拆分为多个智能体接口,使用 @AiService 描述 wiring 模式、模型、记忆、工具、内容检索等,后续新增业务只需新增接口和配置 Bean,非常符合企业级可扩展性要求。

  1. 业务「工具化」抽象合理

将挂号、取消、查询号源等功能抽象为 Tool(AppointmentTools),对模型而言就是可调用的「函数」,实现了「自然语言 → 业务动作」的桥接,这种架构设计在未来扩展如检验报告查询、费用查询时也可以复用。

  1. 诊疗知识与医院知识分层管理

医院及科室信息以 Markdown 文档形式存储在 knowledge 目录,便于非技术人员维护;通过 RAG 将其载入向量库供模型检索,兼顾了准确性与可维护性。

  1. 用户体验友好的流式对话

WebFlux + Vue 的流式渲染方案,让用户在医疗场景下获得接近 IM 工具的顺滑体验,尤其对移动端做了响应式适配(@media 媒体查询)。

核心亮点小结


七、面向企业级落地的优化建议

企业级落地建议(结构图)

从企业医疗项目视角看,这套方案已经具备很好的骨架,但在真正面向生产时,还可以进一步强化:

1. 安全与合规
  • 合规提示与免责声明
  • 在前端 Chat 页面增加明显的「免责声明」区域,强调本系统提供的是健康建议,不能替代医生面诊。
  • 对涉及处方药、敏感疾病的回答增加固定模板提示。
  • 权限与风控
  • 为挂号、取消等操作增加 用户身份体系(如登录态、患者账号),避免仅凭姓名 + 身份证号即可操作所有记录。
  • 对敏感操作(如取消他人预约)增加二次确认或短信验证码校验。
2. 医疗业务深度融合
  • 与 HIS/预约系统打通
  • 目前 queryDepartment 中仍是 TODO,建议:

  • 接入医院真实排班表,综合科室、日期、时间、医生的号源信息。

  • 设计 失败回退机制:当外部系统不可用时,模型不要给出成功预约的承诺,而是友好提示「系统繁忙,请稍后再试」。

  • 多科室、多医院支持
  • 将医院信息、科室信息抽象为数据配置,增加医院/院区/科室的层级字段,支持多机构共用同一平台。
3. 知识库与模型治理
  • 知识库管理后台
  • 将 knowledge 目录中的 markdown 文本管理后台化:

  • 支持运营同学在后台更新科室介绍、医生简介、就医流程。

  • 后端自动触发重新向量化与索引更新。

  • 答案追踪与反馈闭环
  • 为每次问答增加唯一 traceId,记录:

  • 用户问题、模型回答、调用过的 Tool、RAG 命中文档片段。

  • 提供运营或医生审核界面,对不当回答打标,并基于反馈优化提示词或知识库内容。

4. 性能与可观测性
  • 缓存策略
  • 对高频访问的静态知识问答可加入缓存(如科室信息),减少重复向量检索。
  • 日志与监控
  • 对关键环节(Tool 调用、RAG 检索、外部接口调用)增加结构化日志与指标:

  • QPS、错误率、超时率、平均响应时长等。

  • 利用 Prometheus + Grafana 打造监控大盘。

5. 工程与多环境管理
  • 多环境配置
  • 将 Ali 百炼、Pinecone、数据库连接等参数统一放入多 profile(dev、test、prod)配置中,通过环境变量注入,避免硬编码路径(如本地知识库绝对路径)。
  • 自动化测试与灰度
  • 已有测试类基础上,补充更多模拟会话、Tool 调用的集成测试,确保升级 LangChain4j 或模型时行为可控。

  • 引入灰度发布策略,在小部分用户上先验证新版本的提示词、RAG 策略、Tool 行为。


结语

heyou-medical 项目很好地展示了一条可复制的路径:用 LangChain4j 将大模型、结构化业务系统和医院知识库编排在一起,构建一个真正能「办事」的智能医疗助手。在此基础上,结合企业级的安全、合规、监控与多环境管理能力,就可以逐步把这套系统从 Demo 推向真实生产环境。

如果你后续希望,我可以再帮你拆一份更偏「产品白皮书」或「招标/立项文档」风格的版本,或者针对当前代码给出更细致的重构与优化建议。

学AI大模型的正确顺序,千万不要搞错了

🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!

有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!

就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋

📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇

学习路线:

✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析
✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑
✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操
✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用
✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代
✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经

以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!

我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/2 23:08:10

泉州视频号代运营推广公司

泉州视频号代运营推广公司&#xff1a;开启视频号营销新征程在数字化营销的浪潮中&#xff0c;视频号作为新兴的营销阵地&#xff0c;正逐渐成为企业和品牌推广的重要渠道。在泉州&#xff0c;泉州市云舟网络科技有限公司以其专业的服务和卓越的实力&#xff0c;成为众多企业在…

作者头像 李华
网站建设 2026/8/2 7:07:08

告别断连:Wi-Fi 6网卡驱动全攻略

告别断连&#xff1a;Wi-Fi 6网卡驱动全攻略 【免费下载链接】rtl8852be Realtek Linux WLAN Driver for RTL8852BE 项目地址: https://gitcode.com/gh_mirrors/rt/rtl8852be 副标题&#xff1a;适用于RTL8852BE/CE系列芯片 问题导入&#xff1a;Linux系统检测不到Wi-F…

作者头像 李华
网站建设 2026/8/2 22:54:05

3步实现小说自由:fanqienovel-downloader让你告别网络依赖

3步实现小说自由&#xff1a;fanqienovel-downloader让你告别网络依赖 【免费下载链接】fanqienovel-downloader 下载番茄小说 项目地址: https://gitcode.com/gh_mirrors/fa/fanqienovel-downloader 在数字阅读普及的今天&#xff0c;网络不稳定、平台限制和流量费用成…

作者头像 李华
网站建设 2026/8/1 10:45:10

广佛莞深排名领先:数谷智能助力企业构建AI知识库

广佛莞深排名领先&#xff1a;数谷智能助力企业构建AI知识库在粤港澳大湾区的商业丛林中&#xff0c;效率从来不是一个抽象的词汇&#xff0c;而是实实在在的生存法则。步入2026年&#xff0c;当数字化转型进入“深水区”&#xff0c;深圳、广州、东莞、佛山的企业主们发现&…

作者头像 李华
网站建设 2026/8/2 23:08:12

EdgeRemover:让Windows Edge浏览器彻底消失的系统级解决方案

EdgeRemover&#xff1a;让Windows Edge浏览器彻底消失的系统级解决方案 【免费下载链接】EdgeRemover PowerShell script to remove Microsoft Edge in a non-forceful manner. 项目地址: https://gitcode.com/gh_mirrors/ed/EdgeRemover 为什么微软的Edge浏览器像粘在…

作者头像 李华