文本生成设计与自测
请求和业务分开
业务层构造 messages、用户输入和所需输出结构,服务模块映射模型、参数与错误。替换实现时保留角色顺序、工具/JSON 模式、流式语义及结果消费,不把图片任务塞进文本 completion。
密钥放在自己的测试后端环境配置中,前端只提交授权范围内的业务输入。按输入大小、并发和本次费用预算限制请求,不允许网页自选任意后端 URL 或密钥。
流式与结构化结果
将分片按协议解析,缓冲半个事件与跨分片 UTF-8,不把网络 chunk 当完整 JSON。增量内容进入正在显示的同一条消息;收到真实结束信号后才完成。断流保留已显示文本并明确未完成,重试生成不拼进旧回答。
结构化结果先验证必需字段、类型和业务范围,再应用到剧情、角色或规则。模型文本按文本显示,HTML/Markdown 使用安全渲染;工具调用按允许清单校验,不把输出直接当脚本执行。
取消和切换
停止接收、服务端取消与用户重新生成分别处理;请求被 abort 不等于模型已停止或费用已撤销。切会话/账号后旧分片不能写入新会话。刷新恢复只使用真实服务支持的任务/历史能力,没有恢复能力就明确说明该次中断。
本地自测和通过标准
从作品真实输入完成生成、渲染并执行原结果用途。再测试长中文、空结果、输出截断、非法 JSON、分片拆分、限流、流中断、取消后迟到分片、切号与重复点击。显示内容和结束状态准确,不重复提交或把旧回答写入新会话。
常见问题
回答完成但仍显示生成中:检查协议结束信号与 UI 状态转换。分片 JSON 报错:先检查事件边界与缓冲。重新生成覆盖错消息:使用稳定动作/消息标识并核对当前会话代次。