Skip to content

敏感词过滤器未覆盖多模态链路(/draw、/tts、ASR、图片理解、/music、/defectify) #71

Description

@3aKHP

现象

v1.5.0 引入的敏感词过滤器(sensitive_filter.py)目前覆盖了以下路径:

  • ✅ 文本 LLM 输入(service.py:617
  • ✅ 文本 LLM 输出(service.py:896
  • ✅ 对话历史 scrub(service.py:772
  • ✅ 工具调用 arguments(tool_loop.py:235
  • ✅ 工具调用 results(tool_loop.py:259

以下多模态路径未接入过滤器:

  • /draw 图片生成 — prompt 未扫描(generation/image.py
  • /tts 语音合成 — 输入文本未扫描(generation/audio.py
  • ❌ ASR 语音识别 — 转写文本注入 LLM 前未扫描(generation/asr.py
  • ❌ 图片理解 — 视觉模型转述文本注入 LLM 前未扫描(llm/image_preprocessor.pyVisionImagePreprocessor.describe_images 返回的 ImageDescription.text_description
  • /music 音乐生成 — 歌词文本未扫描(generation/music.py
  • /defectify 故障机器人 — 输入文本未扫描(llm/defectify.py

另外 generation/config.pyImageGenerationConfig / AudioGenerationConfig / MusicGenerationConfig 均声明了 prompt_blocklist: list[str] 字段,但实际代码中未发现读取或执行该字段的逻辑。

影响

  • 用户可能通过 /draw / /tts / /music 等命令提交含敏感词的文本,绕过输入侧过滤器直接发给外部生成服务(可能触发服务商的审核网关)
  • ASR 转写和视觉模型转述的外部内容注入 LLM 时同样绕过了过滤器(与 v1.5.0 工具调用结果扫描修复的"外部来源拉取违规内容"场景类似)
  • /defectify 作为 LLM 调用的变体,未被过滤器保护

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions