From 81ba5a8f2ac9dcb05fa614804f5a2e20709eac1d Mon Sep 17 00:00:00 2001 From: Eugen Neufeld Date: Thu, 26 Sep 2024 08:49:38 +0200 Subject: [PATCH] fix ai-settings retrieval (#14221) The languageModelRequirements can be undefined and this needs to be correcly handled by callers. --- .../src/browser/ai-configuration/language-model-renderer.tsx | 2 +- .../ai-core/src/browser/frontend-language-model-registry.ts | 2 +- packages/ai-core/src/common/settings-service.ts | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/ai-core/src/browser/ai-configuration/language-model-renderer.tsx b/packages/ai-core/src/browser/ai-configuration/language-model-renderer.tsx index f41a8acfd84bd..1305168f65f59 100644 --- a/packages/ai-core/src/browser/ai-configuration/language-model-renderer.tsx +++ b/packages/ai-core/src/browser/ai-configuration/language-model-renderer.tsx @@ -31,7 +31,7 @@ export const LanguageModelRenderer: React.FC = ( const findLanguageModelRequirement = async (purpose: string): Promise => { const requirementSetting = await aiSettingsService.getAgentSettings(agent.id); - return requirementSetting?.languageModelRequirements.find(e => e.purpose === purpose); + return requirementSetting?.languageModelRequirements?.find(e => e.purpose === purpose); }; const [lmRequirementMap, setLmRequirementMap] = React.useState>({}); diff --git a/packages/ai-core/src/browser/frontend-language-model-registry.ts b/packages/ai-core/src/browser/frontend-language-model-registry.ts index 045d066b60970..90b80a0688451 100644 --- a/packages/ai-core/src/browser/frontend-language-model-registry.ts +++ b/packages/ai-core/src/browser/frontend-language-model-registry.ts @@ -288,7 +288,7 @@ export class FrontendLanguageModelRegistryImpl override async selectLanguageModels(request: LanguageModelSelector): Promise { await this.initialized; - const userSettings = (await this.settingsService.getAgentSettings(request.agent))?.languageModelRequirements.find(req => req.purpose === request.purpose); + const userSettings = (await this.settingsService.getAgentSettings(request.agent))?.languageModelRequirements?.find(req => req.purpose === request.purpose); if (userSettings?.identifier) { const model = await this.getLanguageModel(userSettings.identifier); if (model) { diff --git a/packages/ai-core/src/common/settings-service.ts b/packages/ai-core/src/common/settings-service.ts index 2c8f204b96643..007daec366250 100644 --- a/packages/ai-core/src/common/settings-service.ts +++ b/packages/ai-core/src/common/settings-service.ts @@ -28,6 +28,6 @@ export interface AISettingsService { } export type AISettings = Record; export interface AgentSettings { - languageModelRequirements: LanguageModelRequirement[]; - enable: boolean; + languageModelRequirements?: LanguageModelRequirement[]; + enable?: boolean; }