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

1.8 KiB
Raw Blame History

需求分析

时间戳

2026-04-19 04:13

需求来源

用户在使用 AI 修改确认弹窗时遇到两个问题:

  1. diff 弹窗左侧原始版本只显示一段内容,希望 AI 能一次性把全部内容都修改好
  2. diff 弹窗右侧 AI 提议版本的段落间有多余空行,希望结构和左侧保持一致

问题 1左侧只显示一段

现象diff 弹窗左侧「原始版本」只展示了一段文本。

根因分析

  • currentHtml 取自 .ai-contentinnerHTML,如果 .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> 标签内的内容)