mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-04-27 21:44:25 -07:00
feat(core): Plumbing for late resolution of model configs. (#14597)
This commit is contained in:
@@ -1344,6 +1344,30 @@ describe('Generation Config Merging (HACK)', () => {
|
||||
expect(serviceConfig.overrides).toEqual(userOverrides);
|
||||
});
|
||||
|
||||
it('should merge default overrides when user provides only aliases', () => {
|
||||
const userAliases = {
|
||||
'my-alias': {
|
||||
modelConfig: { model: 'my-model' },
|
||||
},
|
||||
};
|
||||
|
||||
const params: ConfigParameters = {
|
||||
...baseParams,
|
||||
modelConfigServiceConfig: {
|
||||
aliases: userAliases,
|
||||
},
|
||||
};
|
||||
|
||||
const config = new Config(params);
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
const serviceConfig = (config.modelConfigService as any).config;
|
||||
|
||||
// Assert that the user's aliases are present
|
||||
expect(serviceConfig.aliases).toEqual(userAliases);
|
||||
// Assert that the default overrides are present
|
||||
expect(serviceConfig.overrides).toEqual(DEFAULT_MODEL_CONFIGS.overrides);
|
||||
});
|
||||
|
||||
it('should use user-provided aliases if they exist', () => {
|
||||
const userAliases = {
|
||||
'my-alias': {
|
||||
|
||||
@@ -629,11 +629,19 @@ export class Config {
|
||||
// TODO(12593): Fix the settings loading logic to properly merge defaults and
|
||||
// remove this hack.
|
||||
let modelConfigServiceConfig = params.modelConfigServiceConfig;
|
||||
if (modelConfigServiceConfig && !modelConfigServiceConfig.aliases) {
|
||||
modelConfigServiceConfig = {
|
||||
...modelConfigServiceConfig,
|
||||
aliases: DEFAULT_MODEL_CONFIGS.aliases,
|
||||
};
|
||||
if (modelConfigServiceConfig) {
|
||||
if (!modelConfigServiceConfig.aliases) {
|
||||
modelConfigServiceConfig = {
|
||||
...modelConfigServiceConfig,
|
||||
aliases: DEFAULT_MODEL_CONFIGS.aliases,
|
||||
};
|
||||
}
|
||||
if (!modelConfigServiceConfig.overrides) {
|
||||
modelConfigServiceConfig = {
|
||||
...modelConfigServiceConfig,
|
||||
overrides: DEFAULT_MODEL_CONFIGS.overrides,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
this.modelConfigService = new ModelConfigService(
|
||||
|
||||
@@ -209,4 +209,14 @@ export const DEFAULT_MODEL_CONFIGS: ModelConfigServiceConfig = {
|
||||
},
|
||||
},
|
||||
},
|
||||
overrides: [
|
||||
{
|
||||
match: { model: 'chat-base', isRetry: true },
|
||||
modelConfig: {
|
||||
generateContentConfig: {
|
||||
temperature: 1,
|
||||
},
|
||||
},
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user