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