从演示到应用:画清系统边界
- 辨认界面、后端、模型和存储的责任
- 解释展示成功为何不等于生产可用
一个漂亮按钮背后有什么
星桥手作社展示一个页面,输入十人活动就出现材料草案。小白容易认为有输入框、有答案就已经做成应用,其实展示可以只播放预设文本,生产系统还要处理谁在使用、输入是否合法、资料版本、请求失败、数据保存和成本。本课先把系统画出来,再讨论代码。页面不会实际调用AI,所有返回采用模拟数据;这使我们能专注于结构和验收,不会因为偶尔一次回答漂亮就误判可靠性。
各部分分工而不是相互替代
前端是用户看到的界面,负责收集输入和展示状态;后端接收请求、检查身份、验证数据、查授权资料并组织任务;模型服务提供候选生成内容;存储保存被允许保留的草案和必要记录。模型不是数据库,也不能代替身份认证。前端隐藏一个按钮不等于后端禁止操作,因为请求可能从其他入口到达。所有真正影响权限与数据的检查都应在可信服务边界完成,前端检查主要改善体验。
完整的离线请求旅程
用户输入活动练习一、人数十、每人两张纸。前端先提示必填项,后端再次检查人数等字段,取得受信账户身份,读取该账户允许的虚构库存十八。确定计算得出需求二十和缺口两,再把计算结果与表达要求交给模拟模型返回器。模型只生成说明,不决定数字或访问范围。后端检查结构和内容,将结果返回为草案,并明确需要人工确认。保存草案时绑定账户和版本,不能只凭模型写出的账户名决定归属。
错误也是产品的一部分
真实应用会遇到输入缺失、工具找不到资料、模型返回格式不对、网络超时或预算到限。应区分这些状态,让用户知道哪些已完成、哪些需要补充,不能一直显示正在思考。若只是生成草案失败,可以保留确定计算结果并说明暂未生成文字,而不是丢掉全部输入。涉及写入或外部动作时还要防止重复执行。把错误情况写入流程图,是工程设计的一部分,不是等到上线后才加的补丁。
最小可验收版本
一个学习版可以只包含输入检查、明确计算、模拟返回、结构校验和草案展示,不引入真实账户或网络。验收时分别检查正常输入、负数人数、未知库存和坏格式返回,记录预期结果。生产版还需要认证、访问控制、持续日志、部署管理与恢复方案。区分这两个层次不是贬低演示,而是避免把未验证能力宣传为已经具备。先把每个边界的责任写清楚,再选择实现工具,通常比先堆很多技术名称更容易做出可靠应用。
本节要点
- 界面、后端、模型和存储各有独立责任
- 前端隐藏不替代服务端授权
- 错误路径和验收是应用的一部分
动手练习:画出材料草案应用的数据流
- 列前端、后端、模拟模型返回器和存储四个方框
- 标出人数输入、受信账户身份、库存、计算结果和草案的流向
- 为非法人数与模型坏格式分别画失败分支,并写学习版不具备的生产能力
自查清单
- 计算、鉴权和存储不交给模型自行决定
- 包含至少两个错误分支并注明模拟边界
先自己做,再查看参考答案
参考数据流为前端提交活动编号和人数,后端使用受信身份检查该账户范围,再读授权库存并用明确公式计算需求和缺口。模拟模型返回器只接收必要结果并组织说明,后端随后校验格式,合格才展示为待确认草案。存储记录账户归属、草案版本和保存状态,归属不来自模型自称。负数人数在输入边界拒绝,模型坏格式则返回生成失败,不直接展示或保存为正式记录。学习版没有真实登录、实际模型连接与生产监控,应在交付说明中明确,不能因为流程图完整就声称全部能力已运行。