feat(core): fallback to chat-base when using unrecognized models for chat (#19016)

This commit is contained in:
Sandy Tao
2026-02-13 11:00:08 -08:00
committed by GitHub
parent 9c285eaf15
commit e844a57bfc
4 changed files with 100 additions and 11 deletions

View File

@@ -26,6 +26,10 @@ export interface ModelConfigKey {
// This allows overrides to specify different settings (e.g., higher temperature)
// specifically for retry scenarios.
isRetry?: boolean;
// Indicates whether this request originates from the primary interactive chat model.
// Enables the default fallback configuration to `chat-base` when unknown.
isChatModel?: boolean;
}
export interface ModelConfig {
@@ -122,6 +126,7 @@ export class ModelConfigService {
const { aliasChain, baseModel, resolvedConfig } = this.resolveAliasChain(
context.model,
allAliases,
context.isChatModel,
);
const modelToLevel = this.buildModelLevelMap(aliasChain, baseModel);
@@ -159,6 +164,7 @@ export class ModelConfigService {
private resolveAliasChain(
requestedModel: string,
allAliases: Record<string, ModelConfigAlias>,
isChatModel?: boolean,
): {
aliasChain: string[];
baseModel: string | undefined;
@@ -206,6 +212,21 @@ export class ModelConfigService {
};
}
if (isChatModel) {
const fallbackAlias = 'chat-base';
if (allAliases[fallbackAlias]) {
const fallbackResolution = this.resolveAliasChain(
fallbackAlias,
allAliases,
);
return {
aliasChain: [...fallbackResolution.aliasChain, requestedModel],
baseModel: requestedModel,
resolvedConfig: fallbackResolution.resolvedConfig,
};
}
}
return {
aliasChain: [requestedModel],
baseModel: requestedModel,