fix(models): inherit baseUrl and api from provider config
When using custom providers with inline model definitions, the baseUrl and api properties from the provider config were not being passed to the individual models. This caused requests to be sent to the wrong endpoint or with the wrong API format. Changes: - buildInlineProviderModels now copies baseUrl from provider to models - buildInlineProviderModels now inherits api from provider if not set on model - resolveModel fallback path now includes baseUrl from provider config Co-Authored-By: Claude (claude-opus-4.5) <noreply@anthropic.com>
This commit is contained in:
committed by
Gustavo Madeira Santana
parent
2930ebfd43
commit
6bf2f0eee6
@@ -8,15 +8,25 @@ import { DEFAULT_CONTEXT_TOKENS } from "../defaults.js";
|
||||
import { normalizeModelCompat } from "../model-compat.js";
|
||||
import { normalizeProviderId } from "../model-selection.js";
|
||||
|
||||
type InlineModelEntry = ModelDefinitionConfig & { provider: string };
|
||||
type InlineModelEntry = ModelDefinitionConfig & { provider: string; baseUrl?: string };
|
||||
type InlineProviderConfig = {
|
||||
baseUrl?: string;
|
||||
api?: ModelDefinitionConfig["api"];
|
||||
models?: ModelDefinitionConfig[];
|
||||
};
|
||||
|
||||
export function buildInlineProviderModels(
|
||||
providers: Record<string, { models?: ModelDefinitionConfig[] }>,
|
||||
providers: Record<string, InlineProviderConfig>,
|
||||
): InlineModelEntry[] {
|
||||
return Object.entries(providers).flatMap(([providerId, entry]) => {
|
||||
const trimmed = providerId.trim();
|
||||
if (!trimmed) return [];
|
||||
return (entry?.models ?? []).map((model) => ({ ...model, provider: trimmed }));
|
||||
return (entry?.models ?? []).map((model) => ({
|
||||
...model,
|
||||
provider: trimmed,
|
||||
baseUrl: entry?.baseUrl,
|
||||
api: model.api ?? entry?.api,
|
||||
}));
|
||||
});
|
||||
}
|
||||
|
||||
@@ -72,6 +82,7 @@ export function resolveModel(
|
||||
name: modelId,
|
||||
api: providerCfg?.api ?? "openai-responses",
|
||||
provider,
|
||||
baseUrl: providerCfg?.baseUrl,
|
||||
reasoning: false,
|
||||
input: ["text"],
|
||||
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
||||
|
||||
Reference in New Issue
Block a user