fix: use OpenAI provider for Doubao multimodal models (#519)

DeepSeek provider was not properly formatting image content for Doubao's
API. Now uses OpenAI provider for Doubao models (multimodal support),
while keeping DeepSeek provider for DeepSeek/Kimi models on the platform.
This commit is contained in:
Dayuan Jiang
2026-01-05 23:09:09 +09:00
committed by GitHub
parent 0026639ee8
commit 625d8f2afe
2 changed files with 38 additions and 12 deletions

View File

@@ -251,13 +251,26 @@ export async function POST(req: Request) {
} }
case "doubao": { case "doubao": {
// ByteDance Doubao uses DeepSeek-compatible API // ByteDance Doubao: use DeepSeek for DeepSeek/Kimi models, OpenAI for others
const doubao = createDeepSeek({ const doubaoBaseUrl =
apiKey, baseUrl || "https://ark.cn-beijing.volces.com/api/v3"
baseURL: const lowerModelId = modelId.toLowerCase()
baseUrl || "https://ark.cn-beijing.volces.com/api/v3", if (
}) lowerModelId.includes("deepseek") ||
model = doubao(modelId) lowerModelId.includes("kimi")
) {
const doubao = createDeepSeek({
apiKey,
baseURL: doubaoBaseUrl,
})
model = doubao(modelId)
} else {
const doubao = createOpenAI({
apiKey,
baseURL: doubaoBaseUrl,
})
model = doubao.chat(modelId)
}
break break
} }

View File

@@ -871,11 +871,24 @@ export function getAIModel(overrides?: ClientOverrides): ModelConfig {
overrides?.baseUrl || overrides?.baseUrl ||
process.env.DOUBAO_BASE_URL || process.env.DOUBAO_BASE_URL ||
"https://ark.cn-beijing.volces.com/api/v3" "https://ark.cn-beijing.volces.com/api/v3"
const doubaoProvider = createDeepSeek({ const lowerModelId = modelId.toLowerCase()
apiKey, // Use DeepSeek provider for DeepSeek/Kimi models, OpenAI for others (multimodal support)
baseURL, if (
}) lowerModelId.includes("deepseek") ||
model = doubaoProvider(modelId) lowerModelId.includes("kimi")
) {
const doubaoProvider = createDeepSeek({
apiKey,
baseURL,
})
model = doubaoProvider(modelId)
} else {
const doubaoProvider = createOpenAI({
apiKey,
baseURL,
})
model = doubaoProvider.chat(modelId)
}
break break
} }