架构手记(八):终局复盘——从“玩具 Demo”到高可用医疗 SaaS 的架构抉择与妥协
标签: 架构复盘 / 软件工程 / 大模型落地 / Trade-off / 开源交付
一、 跨越鸿沟:当实训项目走向工程落地
随着 Gitee 仓库的最后一次 Merge Request 合并成功,我们历时近三个月的《面向全场景用药安全的大模型 Agent 决策引擎》迎来了最终的开源交付与答辩节点。
回望这三个月,我们团队经历了从兴奋、迷茫到重构、破局的全过程。在这个“大模型 API 满天飞”的时代,花一天时间写个 Python 脚本调一下对话接口,就能做出一个看起来很酷的“医疗问答 Demo”。但要将这个 Demo 变成一个具备确定性、高并发、强容错的 Web SaaS 原型,中间横亘着巨大的工程鸿沟。
站在项目结题的十字路口,作为系统的架构设计者,我想抛开那些花哨的运行截图,深入复盘一下这三个月里,我们究竟做对了哪些决策,又向现实做出了哪些妥协。
二、 核心胜负手:我们做对了什么?
如果让我总结这个项目最核心的成功要素,我认为是在三个关键节点上,我们克制了盲目追逐新技术的冲动,回归了医疗业务的本质。
1. 坚决抛弃向量检索,死磕 Graph RAG(图谱增强)
在 RAG(检索增强生成)大火的今天,不使用 Milvus/Chroma 这类向量数据库似乎是“逆潮流”的。但我们清醒地认识到:医疗决策不容许“语义相似”,只接受“非黑即白”的绝对规则。 我们用最基础的数据结构(哈希邻接表)在后端构建了轻量级医药冲突图谱。这个决策不仅彻底杀死了大模型的“幻觉”,还利用 $O(1)$ 的算法复杂度为系统赢得了极速的响应时间。
2. 叫停多智能体(Multi-Agent),重构 ReAct 单智能体
多智能体博弈听起来极具学术深度,但在初期的压测中,模型间的互相轮询导致响应时间飙升至 15 秒以上。我们果断“悬崖勒马”,将其降维重构为“单智能体 + ReAct + 工具调用(Tool Calling)”架构,并引入了 SSE 流式协议。最终,我们将系统的 TTFB(首字节延迟)压低到了 1 秒以内,保住了系统的产品级体验。
3. 承认“无知”,构建 Vue3 前端柔性降级(Fallback)
真实医疗场景充满了“信息缺失”。我们没有让 AI 强行作答,也没有让系统死板报错。通过前端的状态机设计,我们引入了“智能追问”与生成“黄色高亮免责医嘱”的 Fallback 机制。这种把边界 Case 当作核心 Feature 来设计的思路,让系统的鲁棒性得到了质的飞跃。
三、 工程的本质是妥协:我们留下了哪些遗憾?
没有任何架构是完美的。受限于 4 人团队的精力和 3 个月的极限开发周期,我们为了保证主干流程的按时交付,在以下几个方面做出了战术性的妥协(Trade-off):
1. 数据底座的妥协:放弃原生图数据库(Neo4j)
为了追求敏捷,我们的 Graph RAG 底座目前是硬编码在后端内存中的嵌套 JSON/字典。
-
代价:失去了图数据库原生的可视化能力和复杂关系图谱(如三度以上的人际/药物网络)的推演能力,知识库的动态热更新也变得较为困难。
-
反思:如果这是一个真实的商业项目,微服务架构中必须拆分出独立的 GraphDB 节点。但在目前的实训场景下,“用 Python 字典模拟图谱”无疑是 ROI(投资回报率)最高的选择。
2. 模型控制力的妥协:对 JSON Schema 的脆弱依赖
尽管我们利用了 LangChain 的 OutputParser 和各种自动重试机制(Auto-Retry)来兜底,但整个系统依然高度依赖于底层大模型(如 GLM-4)对 System Prompt 的服从度。一旦上游厂商的模型能力发生降级,我们的 JSON 解析逻辑随时面临崩溃风险。
-
反思:目前业界最前沿的解法是利用
JSON Mode或通过微调(Fine-tuning)专门训练一个只输出 JSON 的小模型(如 Llama-3-8B-Instruct)作为专属调度大脑。受限于算力,我们未能在这个实训中落地本地化微调。
四、 结语:复杂性管理的艺术
长久以来,我们常常认为“软件工程”就是画画 UML 图、写写文档的枯燥理论。但在这次被跨域报错、被代理断裂、被幻觉折磨的三个月里,我才真正领悟到那句名言的真谛:“软件工程的本质,就是管理复杂性。”
从前端复杂的响应式状态,到后端异步流式的分发,再到充满不确定性的大模型 Prompt 调优,架构师的工作就像是在钢丝上跳舞——不仅要让每一个齿轮严丝合缝,还要提前为齿轮的崩坏设计好缓冲垫。
感谢负责前端的杨奕天、负责后端的严炜国、负责微调的苗怀睿。是团队无数个肝到凌晨的夜晚,把架构图上的一个个虚线框,变成了此时此刻正在服务器上平稳运行的真实代码。
这是本系列架构手记的最后一篇。项目虽然迎来了结题,但我们探索 AI 与千行百业融合的脚步,才刚刚开始。再见,或者在下一个开源仓库里,再见!
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)