Skip to content

v1.4.1 - 修复首词截断/Think泄露/重复回复

Choose a tag to compare

@MagicalYuYu MagicalYuYu released this 20 Jun 02:55
  • 修复消息首词截断_filter_duplicate_response 使用 " response" 作为 GLM 多段草稿分隔符时,会误匹配英文常见词汇(如 "few responses"),导致输出以截断的 "s, ..." 开头。改用正则负向前瞻 r" response(?!\w)",仅当 " response" 后不紧跟单词字符时才判定为草稿分隔符
  • 修复 Think 内容泄露:GLM-4 使用 直接跟在文字后面作为多段草稿分隔符,但原有正则要求 前后有换行,无法匹配此新模式,导致 标记残留在用户端输出中。新增 内联模式检测,并在 _filter_thinking_tags 末尾增加 ``` 残留兜底清理
  • 修复 _filter_thinking_tags" response" 同样误匹配:同步改用 r" response(?!\w)" 正则
  • 修复概率唤醒语义重复回复:两次独立的概率唤醒触发两次 LLM 调用时,LLM 基于相似上下文可能生成语义重复的回复。采用三层机制从根源解决:
    • 源头预防(主):在 on_llm_request 中注入 <anti_repeat_guidance> 提示,告知 LLM 最近一次回复内容,引导其主动避免重复
    • 重新生成(兜底):输出阶段检测到语义相似度≥0.55时,注入防重复提示重新调用 LLM 生成不同内容,而非直接堵住输出
    • 最终抑制(保底):重新生成仍重复或 LLM 主动输出 [SKIP] 时才抑制回复
    • 仅对非直接呼叫场景生效,直接呼叫不受影响