[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_MODEL(backend/app/transcriber/groq.py):
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'}}前端只显示「笔记生成失败,请稍后重试」,真实错误被吞掉,用户无从排查。
问题在于这个变量对桌面端用户几乎不可知:
- 桌面安装包的运行目录里没有
.env模板,用户看不到仓库根目录.env.example里那行GROQ_TRANSCRIBER_MODEL=whisper-large-v3-turbo(PR #102 加入的),README 也未提及; - 界面「AI 模型设置 → 选择模型/保存模型」可以把
whisper-large-v3-turbo存进已启用模型列表,但转写代码只读环境变量、不读 models 表——界面上保存了也没有任何作用,形成误导; - 转写设置页对在线引擎没有模型选择项(
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 和地址完全正确也会一直失败。
复现步骤
- Windows 安装包 v2.4.5,设置 → 音频转写配置选择 Groq
- AI 模型设置配置有效的 Groq API Key,启用模型
whisper-large-v3-turbo(此时「刷新模型」正常、「测试连通性」报「API 地址不正确」) - 生成笔记 → 转写阶段失败,提示「笔记生成失败,请稍后重试」,后端日志为上述 400
model is a required property - 在运行目录手动创建
.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 地址不正确」误报)
Source: JefferyHcool/BiliNote