What happened / 发生了什么
原来 fallback_chat_models 只有在默认模型请求失败时报错后才会尝试切换。默认模型不支持图片时,系统会把图片降级成 [Image],但不会主动切到备用多模态模型。
正确流程应该为:
- 如果配置了“默认图片转述模型”先用转述模型看图,把图片描述变成文本,再交给默认对话模型。
- 如果没有配置“默认图片转述模型”,并且当前请求里有图片:
- 默认模型支持图片:继续用默认模型。
- 默认模型不支持图片:从回退对话模型列表里找第一个支持图片的模型。
- 找到后,本次请求直接切到那个视觉模型。
- 如果回退列表里也没有支持图片的模型,就记录 warning,然后保持原来的降级行为(把真实图片内容移除,只给模型留下文本占位)。
故应该做到如下修正:
py312\Lib\site-packages\astrbot\core\astr_main_agent.py
改为:
astr_main_agent.py
Reproduce / 如何复现?
- 选择纯文本的默认模型+多模态的回退对话模型列表,并且不设置图片转述模型
- 传输图片
- 不会自动callback:
如果是只有图片,则会异常终止,bot不会上传任何内容
如果是图文混排(未测试,不知道具体情况)
AstrBot version, deployment method (e.g., Windows Docker Desktop deployment), provider used, and messaging platform used. / AstrBot 版本、部署方式(如 Windows Docker Desktop 部署)、使用的提供商、使用的消息平台适配器
AstrBot(Windows)
v4.24.2
OS
Windows
Logs / 报错日志
无报错日志,复现结论极其容易,可以自行测试
Are you willing to submit a PR? / 你愿意提交 PR 吗?
Code of Conduct
What happened / 发生了什么
原来 fallback_chat_models 只有在默认模型请求失败时报错后才会尝试切换。默认模型不支持图片时,系统会把图片降级成 [Image],但不会主动切到备用多模态模型。
正确流程应该为:
故应该做到如下修正:
py312\Lib\site-packages\astrbot\core\astr_main_agent.py
改为:
astr_main_agent.py
Reproduce / 如何复现?
如果是只有图片,则会异常终止,bot不会上传任何内容
如果是图文混排(未测试,不知道具体情况)
AstrBot version, deployment method (e.g., Windows Docker Desktop deployment), provider used, and messaging platform used. / AstrBot 版本、部署方式(如 Windows Docker Desktop 部署)、使用的提供商、使用的消息平台适配器
AstrBot(Windows)
v4.24.2
OS
Windows
Logs / 报错日志
无报错日志,复现结论极其容易,可以自行测试
Are you willing to submit a PR? / 你愿意提交 PR 吗?
Code of Conduct