- handleAIGenerate开头增加自动修正目标区域逻辑:修改模式开启且未选区域时,自动选择文档中第一个AI区域 - systemPrompt明确标注'当前处于【修改模式】/【对话模式】',并细化字段要求 - diffModal的targetId改为使用actualTargetId,确保确认注入时使用实际修正后的区域ID
1.7 KiB
1.7 KiB
需求分析
时间戳
2026-04-19 03:59
需求来源
用户希望 AI 辅助撰写功能实现两个明确的场景:
- 场景 A(修改模式):勾选「允许修改正文」→ AI 自动修改当前选定的 AI 可编辑区域 → 弹出 diff 对比弹窗(左侧原稿、右侧可二次编辑的 AI 稿)→ 用户可确认或放弃
- 场景 B(纯对话模式):取消勾选「允许修改正文」→ AI 只回复聊天内容,不修改编辑器
当前状态评估
从上一次修改后,当前代码已基本实现两个场景的核心逻辑:
systemPrompt条件为aiModifyEnabled(已解绑 targetRegionEl)- 接收逻辑为
if (responseJson.updatedHtml && aiModifyEnabled),然后分支判断 targetRegionEl diffModal已实现左右分栏:左侧原稿只读,右侧 AI 稿可编辑(contentEditable)
剩余问题
问题 1:修改模式开启但未选区域时,AI 找不到修改目标
aiTargetRegion 默认值为 'none'。用户勾选「允许修改正文」后,如果未在下拉框中手动选择具体区域,targetRegionEl 为 null,prompt 中不会包含目标区域源码,导致 AI 虽然返回了 updatedHtml,但可能不是用户期望的修改位置。
问题 2:systemPrompt 文案可进一步优化
当前 systemPrompt 对修改模式和纯对话模式的区分可以更加明确,让大模型更清楚知道是否应该生成 HTML。
约束条件
- 自动修正目标区域时,若下拉框原本为
'none',应同步更新 UI 状态(setAiTargetRegion) diffModal的targetId应使用实际修正后的区域 ID- 保持现有 diff 弹窗交互不变(左原稿右可编辑稿)