AI 开发
编辑器 AI 改写与多轮修改
从原文快照生成建议,处理停止、迟到响应、应用与撤销。
调用流程
富文本工具栏打开 AI 修改对话框,记录当前输入框全文作为原文快照。用户选择动作、提示词与文本模型,提交 /api/ai/resume/rewrite,完成稿先进入对话记录,确认后才替换原文。
快捷目标只设置动作与要求,不立即调用模型。已有完成稿后继续修改需要填写要求。用户临时改选提示词不会更新全局绑定。
请求与输出
请求包含原文、区块上下文、动作、可选 promptId、当前要求与历史。客户端发送最近两份完成稿;服务端最多接收 6 份历史,历史序列化最多 100,000 字符,单轮要求最多 2,000 字符。
输出要求完整 HTML 修改稿,不是差量补丁,也不是聊天说明。预览与应用前使用现有富文本清理流程。
生命周期
- 会话保存在组件内存,关闭后结束,不自动存入 D1。
- 生成中禁止重复发送、配置修改与应用结果。
- 停止、关闭或卸载中止客户端请求,请求序号拒绝迟到响应。
- 原文在会话外变化时,生成及应用禁用,要求重新打开。
- 应用时再次比较原文,用编辑器事务替换并保留 undo。
- 失败保留最近完成稿和当前要求,方便重试。
客户端超时 30 秒,服务端生成超时 25 秒;中止客户端请求不等于供应商已停止计费。
实现入口
src/features/resume/components/ai-editor:对话、原文快照与请求生命周期。src/features/resume/api/rewrite-contracts.ts、rewrite-validation.ts:请求边界。src/features/resume/api/rewrite-service-core.ts:生成核心。src/ai/resume/output.ts:输出处理。
验证要点
模拟成功、失败、停止、迟到结果和原文过期;确认只有用户点击替换才修改编辑器,撤销能恢复原文。真实模型质量另行使用已确认事实的样本评估。