尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
【安心陪诊 Agent】Node.js 20 + Express 4 实战:/api/plan 与 /api/chat 验证
【安心陪诊 Agent】Node.js API 设计/api/plan 与 /api/chat 如何支撑 Agent项目名称安心陪诊 Agent。本文解决一个具体工程问题陪诊类 Agent 不能只做聊天入口它必须把用户输入拆成就医任务、材料清单、安全边界和家属同步结果并且要能在前端页面和 Node.js 接口里复查。一、实际问题陪诊 Agent 为什么不能只接一个聊天框真实就医场景里用户通常不是问一个孤立问题而是同时包含出发地、医院、症状描述、陪诊时间、材料准备和家属通知。若后端只返回一段自然语言前端就无法稳定展示任务卡片也无法判断哪些信息需要人工确认。输入类型前端表现后端处理出发地与医院生成行程卡片校验必填字段症状描述生成问诊问题过滤诊断、剂量、处方类高风险词家属联系方式生成同步摘要只做本地展示不自动发送隐私信息二、运行环境与版本项目版本用途Node.js20.11.1运行本地 API 服务Express4.18.3提供 /api/plan 与 /api/chatChrome126验证 Web Demo、移动端响应式布局和接口调用HarmonyOS 迁移目标ArkTS / ArkUI后续把任务卡片迁移成原生页面三、接口结构/api/plan 负责稳定输出任务卡片import express from express; const app express(); app.use(express.json()); app.post(/api/plan, (req, res) { const { start, hospital, visitTime, symptoms, familyPhone } req.body; if (!start || !hospital) { return res.status(400).json({ code: MISSING_ROUTE, message: 请补充出发地和医院名称, fields: [start, hospital] }); } const riskWords [诊断, 处方, 剂量, 停药]; const hitRisk riskWords.some((word) String(symptoms || ).includes(word)); if (hitRisk) { return res.json({ code: SAFE_GUARD, message: 系统只整理就医准备信息请以医生现场判断为准, tasks: [携带病历, 记录既往用药, 向医生确认下一步检查] }); } return res.json({ code: OK, route: { start, hospital, visitTime }, tasks: [预约提醒, 材料清单, 问诊问题, 家属同步摘要], notifyFamily: Boolean(familyPhone) }); });这段代码的边界很明确/api/plan 不做诊断只把就医准备拆成稳定的结构化结果。前端拿到 tasks 后可以渲染为卡片拿到 SAFE_GUARD 后可以展示医疗安全提示。四、对话接口/api/chat 只回答陪诊流程相关问题app.post(/api/chat, (req, res) { const text String(req.body.text || ).trim(); if (!text) { return res.status(400).json({ code: EMPTY_TEXT, message: 请输入就医需求 }); } const allowTopics [材料, 挂号, 复查, 检查, 家属, 路线]; const matched allowTopics.some((topic) text.includes(topic)); if (!matched) { return res.json({ code: OUT_OF_SCOPE, reply: 我只能协助整理就医流程、材料清单和家属同步内容。 }); } res.json({ code: OK, reply: 建议先准备身份证、医保卡、既往病历并把想问医生的问题列成清单。, nextActions: [生成材料清单, 生成问诊问题, 同步给家属] }); });五、前端如何消费接口结果async function submitPlan(form) { const response await fetch(/api/plan, { method: POST, headers: { Content-Type: application/json }, body: JSON.stringify(form) }); const data await response.json(); if (data.code MISSING_ROUTE) return showFormError(data.message); if (data.code SAFE_GUARD) return showSafetyCard(data.message, data.tasks); return renderTaskCards(data.tasks, data.route); }前端不直接解析自然语言而是根据 code 字段决定展示错误、提醒还是任务卡片。这样做的好处是页面状态稳定、测试路径清楚、后续迁移 ArkUI 时也能保留同样的数据结构。六、实操验证记录curl -X POST http://localhost:5188/api/plan ^ -H Content-Type: application/json ^ -d {start:杭州西湖文化广场,hospital:浙江省人民医院,visitTime:周三上午,symptoms:复查材料准备} HTTP/1.1 200 OK { code: OK, tasks: [预约提醒, 材料清单, 问诊问题, 家属同步摘要], notifyFamily: false }验证项输入预期结果正常规划出发地、医院、时间完整返回任务卡片通过缺少医院hospital 为空返回 MISSING_ROUTE通过风险词包含处方或剂量返回 SAFE_GUARD通过非陪诊问题询问无关内容返回 OUT_OF_SCOPE通过七、排错记录问题原因处理方式页面只显示一段文本接口没有结构化字段统一返回 code、tasks、nextActions医疗风险过高用户输入包含诊断、剂量、处方进入 SAFE_GUARD 分支移动端卡片拥挤任务字段过长卡片只展示标题详情折叠八、迁移到 ArkTS 页面时怎么保留边界如果把这个 Web Demo 迁移到 HarmonyOS ArkTS建议不要把接口返回结果直接拼到一个长文本里而是保留 PlanResult、TaskItem、GuardMessage 三类模型。这样页面可以分别处理正常任务、缺字段提示和医疗安全边界。interface TaskItem { title: string; detail: string; done: boolean; } interface PlanResult { code: OK | MISSING_ROUTE | SAFE_GUARD; message?: string; tasks: TaskItem[]; } function toTaskCards(result: PlanResult): TaskItem[] { if (result.code ! OK) { return [{ title: 需要人工确认, detail: result.message || 请补充信息, done: false }]; } return result.tasks; }这个模型的价值在于UI 层只负责渲染状态不承担医疗判断服务层只负责整理流程不越界输出诊断。对于参赛 Demo 来说这种分层能让评委更容易看懂工程边界。九、发布前检查清单检查点通过标准说明接口输入空输入、正常输入、风险输入都能返回明确 code避免前端只能靠文本猜状态页面状态任务卡片、错误提示、安全提醒三类状态可见用户知道下一步该做什么隐私边界不自动上传家属电话和病情细节医疗辅助类项目必须保守处理演示材料截图、接口样例、测试表和项目说明一致避免文章、Demo 和 PPT 互相矛盾十、结论安心陪诊 Agent 的核心不是“能聊天”而是把就医需求转成可展示、可验证、可迁移的任务链。接口需要明确输入、输出和安全边界前端需要围绕 code 字段展示状态文章复查时则重点看版本、代码、验证记录和异常路径是否完整。
RELATED

相关推荐

深入探讨ROS2 QoS策略:确保机器人系统中的高效可靠通信

深入探讨ROS2 QoS策略:确保机器人系统中的高效可靠通信

在机器人软件开发领域,高效的通信机制对系统的整体性能与稳定性至关重要。ROS2为解决数据传输过程中的可靠性问题,采用了先进的服务质量(QoS)框架进行管理。其中,面向“可靠性”的策略旨在确保信息有序、无遗漏地抵达目标节点。通过对该项参数进行优配置定,开发者能够有效…

📅 2026/10/8 1:18:20
实战解析:Python抖音批量下载架构设计与高效应用

实战解析:Python抖音批量下载架构设计与高效应用

实战解析:Python抖音批量下载架构设计与高效应用 【免费下载链接】douyinhelper 抖音批量下载助手 项目地址: https://gitcode.com/gh_mirrors/do/douyinhelper 在内容创作和数据分析日益重要的今天,如何高效获取抖音平台上的视频资源成为许多用户…

📅 2026/10/5 19:19:35
拿来即用!C#上位机实现PLC远程控制:Modbus TCP协议+网口通信全解析

拿来即用!C#上位机实现PLC远程控制:Modbus TCP协议+网口通信全解析

摘要:在工业自动化现场,上位机与PLC的通信是绕不开的核心环节。本文摒弃纯理论堆砌,从Modbus TCP报文结构入手,结合C# Socket 原生编程与 NModbus4 工业库两种方案,手把手带你实现一套稳定、可复用的PLC远程读写控制程…

📅 2026/8/25 9:22:57
MORE NEWS

更多资讯

📰

6D位姿估计的三大主流架构:DenseFusion、MaskedFusion与PoseCNN深度解析

简介:本资源是一份面向机器人视觉方向研究者与工程实践者的6D位姿估计技术综述思维导图,聚焦于机器人抓取、AR/VR及自动驾驶等场景下的物体空间定位核心问题。内容系统梳理了RGB-D融合(DenseFusion、MaskedFusion、poseCNN)、纯点…

📰

16G内存本地部署DeepSeek-R1:Ollama量化选型与调参避坑

简介:面向AI开发者、初学者及具备一定硬件基础的技术人员,这份PDF文档聚焦DeepSeek模型的本地部署与应用优化,帮助读者在数据隐私和定制化需求下完成从环境准备到交互测试的完整实践。内容按低、中、高三档硬件配置给出准备建议,并…

📰

树莓派双线寻迹实战:OpenCV Python与L298N差速转向

简介:这是一份基于树莓派3B四轮驱动小车、利用OpenCV与Python实现双线寻迹的完整项目设计报告,适合自动化、嵌入式视觉方向的学生与开发者参考学习。内容围绕双线寻迹任务,系统梳理了系统烧录与环境配置、L298N电机驱动转向控制、视觉处理参数…

📰

四人抢答器数字电路设计:D触发器锁存与倒计时计分实现

简介:这份四人智力竞赛抢答器完整课程设计,面向电子信息、自动化等专业学生及需要完成课程设计或电子制作实践的读者,帮助解决抢答信号分辨、计时与计分电路设计等典型问题。资源包内含1个doc文档,压缩包约857KB,文档以…

📰

PLC不会过时:自动化新人从入行到扛项目的成长路线

去年有个应届生问我:“PLC是不是快被淘汰了?你们搞这个还能干几年?”一个干了12年写逻辑程序的人,听到这个问题多少有点哭笑不得。自动化产线的核心从来都是控制器,只是现在能跑控制器的载体确实越来越多了。真正值得问…

📰

Windows Server 2012 远程桌面多用户并发配置与排错

简介:面向 Windows Server 2012 系统管理员与运维学习者的远程桌面多用户登录配置文档,聚焦服务器默认仅允许单个用户会话、连接数受限等实际使用痛点,适合需要提升终端并发接入与资源利用率的初中级运维人员参考。压缩包内共 1 个 docx 文件…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬