Files
Mdeical_Sur_Report/工程分析/20260419_0413/需求分析.md
admin c7e7033e7d feat(ai): diff弹窗内容完整性优化 + HTML空行清洗
- systemPrompt和promptText中明确要求AI生成完整多段落内容,不要只改写现有段落
- systemPrompt增加HTML格式约束:<p>标签包裹、禁止<br>和换行符、紧凑HTML
- setDiffModal和execCmd之前增加正则清洗:移除<br>、移除</p>与<p>间空白、trim首尾
2026-04-19 04:15:36 +08:00

40 lines
1.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 需求分析
## 时间戳
2026-04-19 04:13
## 需求来源
用户在使用 AI 修改确认弹窗时遇到两个问题:
1. diff 弹窗左侧原始版本只显示一段内容,希望 AI 能一次性把全部内容都修改好
2. diff 弹窗右侧 AI 提议版本的段落间有多余空行,希望结构和左侧保持一致
## 问题 1左侧只显示一段
**现象**diff 弹窗左侧「原始版本」只展示了一段文本。
**根因分析**
- `currentHtml` 取自 `.ai-content``innerHTML`,如果 `.ai-content` 内确实只有一段内容,左侧自然只显示一段
- 这不是代码 Bug而是当前 AI 区域的内容组织问题
- 但用户期望 AI 能基于全局上下文生成更丰富、更完整的内容,而不是仅改写当前已有的段落
**解决方向**
- 在 systemPrompt 和 prompt 中明确要求 AI 生成完整的、结构化的多段落内容
- 强调 AI 应基于全局参考内容补充和完善目标区域,而不是仅做局部改写
## 问题 2右侧多余空行
**现象**diff 弹窗右侧「AI 提议版本」的段落间出现额外空行,与左侧结构不一致。
**根因分析**
1. 大模型返回的 HTML 中可能包含 `<br>` 标签或 `\n` 换行符
2. `</p>\n<p>` 中的换行符会被浏览器解析为文本节点,产生额外空白
3. 不同 LLM 的输出格式随机性导致 HTML 结构不统一
**解决方向**
1. **输入端控制**:在 systemPrompt 中明确要求紧凑 HTML禁止 `<br>`、禁止换行符)
2. **输出端兜底**:在 `setDiffModal` 之前对 `updatedHtml` 进行正则清洗,移除多余空行和 `<br>`
## 约束条件
- 保持现有 diff 弹窗的左右分栏结构不变
- 清洗逻辑不应破坏合法的 HTML 结构(如 `<p>` 标签内的内容)