From d05d826e934cc5b5ad3cecc4aa33d125ebcbcb63 Mon Sep 17 00:00:00 2001 From: Tsering Paljor Date: Wed, 15 Apr 2026 16:58:20 +0700 Subject: [PATCH 1/4] fix: improve error handling of AI form (#5086) * Ignore ai models that have no settings * Ensure GenerativeAIModelType has a base getSettings() that returns an empty array * Don't show override settings when there is nothing to override. * Add docstring --- .../improved_error_handling_for_the_ai_form.json | 9 +++++++++ .../workspace/GenerativeAIWorkspaceSettings.vue | 2 +- .../modules/core/generativeAIModelTypes.js | 15 +++++++++++++++ .../ai/components/integrations/AIForm.vue | 5 ++++- 4 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 changelog/entries/unreleased/bug/improved_error_handling_for_the_ai_form.json diff --git a/changelog/entries/unreleased/bug/improved_error_handling_for_the_ai_form.json b/changelog/entries/unreleased/bug/improved_error_handling_for_the_ai_form.json new file mode 100644 index 0000000000..f2fd20f109 --- /dev/null +++ b/changelog/entries/unreleased/bug/improved_error_handling_for_the_ai_form.json @@ -0,0 +1,9 @@ +{ + "type": "bug", + "message": "Improved error handling for the AI Form.", + "issue_origin": "github", + "issue_number": null, + "domain": "integration", + "bullet_points": [], + "created_at": "2026-03-31" +} diff --git a/web-frontend/modules/core/components/workspace/GenerativeAIWorkspaceSettings.vue b/web-frontend/modules/core/components/workspace/GenerativeAIWorkspaceSettings.vue index 2897ecf391..0bafffd7d0 100644 --- a/web-frontend/modules/core/components/workspace/GenerativeAIWorkspaceSettings.vue +++ b/web-frontend/modules/core/components/workspace/GenerativeAIWorkspaceSettings.vue @@ -117,7 +117,7 @@ export default { modelTypes() { return this.$registry .getOrderedList('generativeAIModel') - .filter((modelType) => modelType.getSettings() !== null) + .filter((modelType) => modelType.getSettings().length > 0) .map((modelType) => [modelType.getType(), modelType]) }, }, diff --git a/web-frontend/modules/core/generativeAIModelTypes.js b/web-frontend/modules/core/generativeAIModelTypes.js index 4e1c788738..a02254d252 100644 --- a/web-frontend/modules/core/generativeAIModelTypes.js +++ b/web-frontend/modules/core/generativeAIModelTypes.js @@ -21,6 +21,21 @@ export class GenerativeAIModelType extends Registerable { getMaxTemperature() { return 2 } + + /** + * Returns an array of objects that define the settings for workspace + * Generative AI and integration overrides. The array can be empty if + * the model type is not configurable. + * + * Each setting object in the array describes a form field. See + * `modelSettings` for a full example. A setting may only define + * a subset of the properties. + * + * @returns {Array} An array of setting objects. Can be empty. + */ + getSettings() { + return [] + } } const modelSettings = (label, description) => ({ diff --git a/web-frontend/modules/integrations/ai/components/integrations/AIForm.vue b/web-frontend/modules/integrations/ai/components/integrations/AIForm.vue index 369637dba5..e7f28f7308 100644 --- a/web-frontend/modules/integrations/ai/components/integrations/AIForm.vue +++ b/web-frontend/modules/integrations/ai/components/integrations/AIForm.vue @@ -20,7 +20,7 @@
{{ getProviderName(providerType.type) }}
-
+