#456·BiliNote

[BUG] Groq 在线转写缺少模型名配置入口(依赖 GROQ_TRANSCRIBER_MODEL),导致 400 model is a required property,且连通性测试误报

Author: IwassoobsessedwithCreated Sep 17, 2026Updated Sep 17, 2026

版本说明

BiliNote v2.4.5

部署方式

桌面端(Windows 安装包)

描述问题

音频转写引擎选择 Groq 时,转写请求的 model 字段来自环境变量 GROQ_TRANSCRIBER_MODELbackend/app/transcriber/groq.py):

python
transcription = client.audio.transcriptions.create(
    file=(filename, file.read()),
    model=os.getenv('GROQ_TRANSCRIBER_MODEL'),
    response_format="verbose_json",
)

该变量未设置时 os.getenv 返回 None,请求体里没有 model,Groq 返回 400:

Error code: 400 - {'error': {'message': "'model' is a required property",
'type': 'invalid_request_error', 'code': 'invalid_model'}}

前端只显示「笔记生成失败,请稍后重试」,真实错误被吞掉,用户无从排查。

问题在于这个变量对桌面端用户几乎不可知:

  1. 桌面安装包的运行目录里没有 .env 模板,用户看不到仓库根目录 .env.example 里那行 GROQ_TRANSCRIBER_MODEL=whisper-large-v3-turbo(PR #102 加入的),README 也未提及;
  2. 界面「AI 模型设置 → 选择模型/保存模型」可以把 whisper-large-v3-turbo 存进已启用模型列表,但转写代码只读环境变量、不读 models 表——界面上保存了也没有任何作用,形成误导;
  3. 转写设置页对在线引擎没有模型选择项(transcriber_config_manager 把在线引擎视为「永远 ready,不需要本地模型」),启动日志里 model_size=tiny 是本地 whisper 的遗留字段,与 Groq 无关,进一步造成困惑。

另外还有一个叠加的误导:「测试连通性」取已启用模型列表中的第一个模型去发 chat/completions(日志:连通性测试失败(model=whisper-large-v3-turbo))。whisper 是 ASR 模型不支持 chat,Groq 返回 400 does not support chat completions,前端统一显示为「API / API 地址不正确」(错误码 200105)——见 #243,用户即使 key 和地址完全正确也会一直失败。

复现步骤

  1. Windows 安装包 v2.4.5,设置 → 音频转写配置选择 Groq
  2. AI 模型设置配置有效的 Groq API Key,启用模型 whisper-large-v3-turbo(此时「刷新模型」正常、「测试连通性」报「API 地址不正确」)
  3. 生成笔记 → 转写阶段失败,提示「笔记生成失败,请稍后重试」,后端日志为上述 400 model is a required property
  4. 在运行目录手动创建 .env 并写入 GROQ_TRANSCRIBER_MODEL=whisper-large-v3-turbo,重启后端 → 转写和笔记生成立即成功

预期行为

  • 转写模型名有界面配置入口(或在转写设置页为在线引擎提供模型选择),界面「保存模型」对转写生效或明确不作用于转写
  • .env.example 的该项同步进 README / 桌面端首次配置引导
  • 转写失败时向前端透出真实错误信息,而不是笼统的「生成失败」
  • 「测试连通性」跳过不支持 chat 的模型(如 whisper),按模型类型选择测试端点,避免误报「API 地址不正确」

环境

  • version: 2.4.5
  • 部署方式: Windows 安装包
  • 操作系统:Windows 10 专业版 22H2
  • 转写引擎:groq(whisper-large-v3-turbo);LLM:OpenAI 兼容接口

相关:#102(曾将 GROQ_TRANSCRIBER_MODEL 补入 .env.example)、#199(Windows 桌面端转写器配置问题)、#243(「API 地址不正确」误报)