fix: support gemini and volcano-vision provider types for scene fusion model selection
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled

This commit is contained in:
Your Name 2026-01-18 21:37:08 +08:00
parent 7620f0b7e0
commit 1a0dad7895
2 changed files with 15 additions and 8 deletions

View File

@ -3920,8 +3920,9 @@ export function AdminSettingsClient() {
// 过滤出支持图片生成/编辑的模型
const provider = (providersData?.providers || []).find((p: AiProvider) => p.id === m.providerId);
if (!provider) return false;
// 支持阿里生图和Gemini图片模型
return ["alibaba-image", "gemini-image"].includes(provider.type);
// 支持阿里生图、Gemini、既梦等图片模型
const imageProviderTypes = ["alibaba-image", "gemini-image", "gemini", "volcano-vision"];
return imageProviderTypes.includes(provider.type);
})
.map((m: AiModel) => {
const provider = (providersData?.providers || []).find((p: AiProvider) => p.id === m.providerId);
@ -3935,16 +3936,17 @@ export function AdminSettingsClient() {
{/* 如果没有找到生图模型,显示提示 */}
{(modelsData?.models || []).filter((m: AiModel) => {
const provider = (providersData?.providers || []).find((p: AiProvider) => p.id === m.providerId);
return provider && ["alibaba-image", "gemini-image"].includes(provider.type);
const imageProviderTypes = ["alibaba-image", "gemini-image", "gemini", "volcano-vision"];
return provider && imageProviderTypes.includes(provider.type);
}).length === 0 && (
<SelectItem value="" disabled>
暂无可用的生图模型,请先配置阿里生图或Gemini图片供应商
暂无可用的生图模型,请先配置生图供应商
</SelectItem>
)}
</SelectContent>
</Select>
<div className="text-xs text-muted-foreground">
选择用于场景裂变的生图模型,支持阿里生图和Gemini图片编辑模型
选择用于场景裂变的生图模型,支持阿里生图、Gemini、既梦等图片模型
</div>
</div>

View File

@ -440,9 +440,14 @@ export async function POST(request: Request) {
// 如果没有配置或配置的模型不可用,使用默认的阿里生图模型
if (!selectedModel) {
selectedModel = allModels.find(
(m) => m.provider.type === "alibaba-image" && m.model.isEnabled
);
// 按优先级查找:alibaba-image > gemini > volcano-vision
const imageProviderTypes = ["alibaba-image", "gemini", "volcano-vision"];
for (const providerType of imageProviderTypes) {
selectedModel = allModels.find(
(m) => m.provider.type === providerType && m.model.isEnabled
);
if (selectedModel) break;
}
}
if (!selectedModel) {