feat(ai): 修改模式自动锁定目标区域 + SystemPrompt模式语义强化
- handleAIGenerate开头增加自动修正目标区域逻辑:修改模式开启且未选区域时,自动选择文档中第一个AI区域 - systemPrompt明确标注'当前处于【修改模式】/【对话模式】',并细化字段要求 - diffModal的targetId改为使用actualTargetId,确保确认注入时使用实际修正后的区域ID
This commit is contained in:
29
工程分析/20260419_0359/需求分析.md
Normal file
29
工程分析/20260419_0359/需求分析.md
Normal file
@@ -0,0 +1,29 @@
|
||||
# 需求分析
|
||||
|
||||
## 时间戳
|
||||
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 弹窗交互不变(左原稿右可编辑稿)
|
||||
Reference in New Issue
Block a user