Add support for dynamic model Resolution to ModelConfigService (#22578)

This commit is contained in:
kevinjwang1
2026-03-17 14:15:50 -07:00
committed by GitHub
parent 77ca3c0e13
commit 27a50191e3
17 changed files with 1050 additions and 42 deletions
@@ -180,6 +180,8 @@ export class ClassifierStrategy implements RoutingStrategy {
routerResponse.model_choice,
useGemini3_1,
useCustomToolModel,
config.getHasAccessToPreviewModel?.() ?? true,
config,
);
return {
@@ -26,6 +26,9 @@ export class DefaultStrategy implements TerminalStrategy {
const defaultModel = resolveModel(
config.getModel(),
config.getGemini31LaunchedSync?.() ?? false,
false,
config.getHasAccessToPreviewModel?.() ?? true,
config,
);
return {
model: defaultModel,
@@ -28,6 +28,9 @@ export class FallbackStrategy implements RoutingStrategy {
const resolvedModel = resolveModel(
requestedModel,
config.getGemini31LaunchedSync?.() ?? false,
false,
config.getHasAccessToPreviewModel?.() ?? true,
config,
);
const service = config.getModelAvailabilityService();
const snapshot = service.snapshot(resolvedModel);
@@ -156,6 +156,8 @@ export class NumericalClassifierStrategy implements RoutingStrategy {
modelAlias,
useGemini3_1,
useCustomToolModel,
config.getHasAccessToPreviewModel?.() ?? true,
config,
);
const latencyMs = Date.now() - startTime;
@@ -38,6 +38,9 @@ export class OverrideStrategy implements RoutingStrategy {
model: resolveModel(
overrideModel,
config.getGemini31LaunchedSync?.() ?? false,
false,
config.getHasAccessToPreviewModel?.() ?? true,
config,
),
metadata: {
source: this.name,