[Bug] OPENAI_IMAGE_API_PROTOCOL 保存后重启回落 'auto':_load_settings_to_config 未回载该设置
Deployment Method / 部署方式
Docker Compose (docker-compose.yml)
Issue Description / 问题描述
设置页的「图像 API 协议」(auto / images / chat)能正常持久化:settings_controller.py 的 update 路径写入 settings.openai_image_api_protocol,保存时 _sync_settings_to_config 也把它同步进了 app.config,当次会话一切正常。
但启动时的 _load_settings_to_config(backend/app.py)没有回载这个键 —— 重启后 app.config 里没有 OPENAI_IMAGE_API_PROTOCOL,_resolve_setting() 的解析链(services/ai_providers/__init__.py L404 附近)从空的 app.config 落到环境变量(通常未设),最后落到默认 'auto'。
影响:显式选了 images / chat 的用户(例如某些 OpenAI 兼容中转、Gemini 走代理必须强制 images 路径),后端重启后静默回落 auto,生成开始报错或路由错误;而设置界面和数据库里显示的仍是保存着的值,非常迷惑。
注意 main 分支最近刚给 _load_settings_to_config 加了 image_quality 的回载(cd168b0),但同样漏了 openai_image_api_protocol —— 两者应该一起回载。
Steps to Reproduce / 复现步骤
- 设置页把图像 API 协议设为 images,保存成功(当次会话生效)
- 重启后端(
docker compose restart backend) - 协议已回落 auto(在设置页看仍是 images,但实际请求走了 auto 路由;启动日志可佐证)
Expected Behavior / 期望行为
与 IMAGE_MODEL、IMAGE_QUALITY 等一致:启动时从数据库回载,重启不丢。
建议修复
在 _load_settings_to_config 里补(与 IMAGE_MODEL 同模式):
if settings.openai_image_api_protocol:
app.config['OPENAI_IMAGE_API_PROTOCOL'] = settings.openai_image_api_protocol已开 PR,见下方链接。
Version / 版本
v0.9.0-rc.7 与 main (199cf9e) 均存在
Source: Anionex/banana-slides