From ac64840ad726b0ceb9da70827483e6440c37c16e Mon Sep 17 00:00:00 2001 From: Shivam Mishra Date: Tue, 23 Dec 2025 14:58:25 +0530 Subject: [PATCH] feat: add model selector for label suggestion --- .../dashboard/i18n/locale/en/settings.json | 4 +- .../dashboard/settings/captain/Index.vue | 9 +- .../captain/components/FeatureToggle.vue | 128 ++++++++++++-- .../captain/components/ModelDropdown.vue | 156 ++++++++++++++++++ .../captain/components/ModelSelector.vue | 146 +--------------- 5 files changed, 277 insertions(+), 166 deletions(-) create mode 100644 app/javascript/dashboard/routes/dashboard/settings/captain/components/ModelDropdown.vue diff --git a/app/javascript/dashboard/i18n/locale/en/settings.json b/app/javascript/dashboard/i18n/locale/en/settings.json index 9e61af545..ec54f2733 100644 --- a/app/javascript/dashboard/i18n/locale/en/settings.json +++ b/app/javascript/dashboard/i18n/locale/en/settings.json @@ -419,7 +419,9 @@ }, "LABEL_SUGGESTION": { "TITLE": "Label Suggestion", - "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context." + "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.", + "MODEL_TITLE": "Label Suggestion Model", + "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels" } }, "API": { diff --git a/app/javascript/dashboard/routes/dashboard/settings/captain/Index.vue b/app/javascript/dashboard/routes/dashboard/settings/captain/Index.vue index d38c6f52d..a2ae3ef5c 100644 --- a/app/javascript/dashboard/routes/dashboard/settings/captain/Index.vue +++ b/app/javascript/dashboard/routes/dashboard/settings/captain/Index.vue @@ -44,20 +44,14 @@ const modelFeatures = computed(() => [ const featureToggles = computed(() => [ { key: 'audio_transcription', - title: t('CAPTAIN_SETTINGS.FEATURES.AUDIO_TRANSCRIPTION.TITLE'), - description: t('CAPTAIN_SETTINGS.FEATURES.AUDIO_TRANSCRIPTION.DESCRIPTION'), enterprise: true, }, { key: 'help_center_search', - title: t('CAPTAIN_SETTINGS.FEATURES.HELP_CENTER_SEARCH.TITLE'), - description: t('CAPTAIN_SETTINGS.FEATURES.HELP_CENTER_SEARCH.DESCRIPTION'), enterprise: true, }, { key: 'label_suggestion', - title: t('CAPTAIN_SETTINGS.FEATURES.LABEL_SUGGESTION.TITLE'), - description: t('CAPTAIN_SETTINGS.FEATURES.LABEL_SUGGESTION.DESCRIPTION'), enterprise: true, }, ]); @@ -145,9 +139,8 @@ onMounted(() => { v-show="hasFeatureToggle(feature)" :key="feature.key" :feature-key="feature.key" - :title="feature.title" - :description="feature.description" @change="handleFeatureToggle" + @model-change="handleModelChange" /> diff --git a/app/javascript/dashboard/routes/dashboard/settings/captain/components/FeatureToggle.vue b/app/javascript/dashboard/routes/dashboard/settings/captain/components/FeatureToggle.vue index 3f84b8c69..345485e06 100644 --- a/app/javascript/dashboard/routes/dashboard/settings/captain/components/FeatureToggle.vue +++ b/app/javascript/dashboard/routes/dashboard/settings/captain/components/FeatureToggle.vue @@ -1,31 +1,63 @@ + + diff --git a/app/javascript/dashboard/routes/dashboard/settings/captain/components/ModelDropdown.vue b/app/javascript/dashboard/routes/dashboard/settings/captain/components/ModelDropdown.vue new file mode 100644 index 000000000..2a05a9ec8 --- /dev/null +++ b/app/javascript/dashboard/routes/dashboard/settings/captain/components/ModelDropdown.vue @@ -0,0 +1,156 @@ + + + diff --git a/app/javascript/dashboard/routes/dashboard/settings/captain/components/ModelSelector.vue b/app/javascript/dashboard/routes/dashboard/settings/captain/components/ModelSelector.vue index d676e166f..4195214f3 100644 --- a/app/javascript/dashboard/routes/dashboard/settings/captain/components/ModelSelector.vue +++ b/app/javascript/dashboard/routes/dashboard/settings/captain/components/ModelSelector.vue @@ -1,13 +1,7 @@ @@ -108,65 +31,6 @@ const selectModel = model => {

{{ title }}

{{ description }}

-
- - - -
- -
-
- {{ model.display_name }} - - {{ t('GENERAL.PREFERRED') }} - -
- - {{ t('CAPTAIN_SETTINGS.MODEL_CONFIG.COMING_SOON') }} - - - {{ getCreditLabel(model) }} - -
-
-
-
-
+