From f252a8e7e6504d8c5b47026dedcd6474ac24b24d Mon Sep 17 00:00:00 2001 From: Julie Huang <julhuang@gitlab.com> Date: Thu, 6 Mar 2025 00:49:14 +1100 Subject: [PATCH] Update feature name to GitLab Duo Self-Hosted in the UI As a result of consultation with Product, Brand Strategy, and Marketing, the decision has been made to change the name of Self-Hosted Models to GitLab Duo Self-Hosted. The decision is expected to make marketing and documentation simpler, align the name with a deployment designation and is only a minor variation from the current name which creates continuity with the feature as it's currently understood by customers and the media. See https://gitlab.com/gitlab-org/gitlab/-/issues/515917 for more context Changelog: changed EE: true --- .../configure_duo_features.md | 12 ++++++------ .../components/ai_gateway_url_input_form.vue | 2 +- .../pages/admin/ai/duo_self_hosted/app.vue | 2 +- .../index.js | 4 ++-- .../components/edit_self_hosted_model.vue | 2 +- .../components/new_self_hosted_model.vue | 2 +- ...ntroller.rb => duo_self_hosted_controller.rb} | 2 +- .../helpers/admin/application_settings_helper.rb | 2 +- .../admin/ai/duo_self_hosted/index.html.haml | 2 ++ .../admin/ai/self_hosted_models/index.html.haml | 2 -- ee/config/routes/admin.rb | 7 ++----- .../admin/menus/self_hosted_models_menu.rb | 6 +++--- .../ai/settings/pages/ai_admin_settings_spec.js | 2 +- .../pages/admin/ai/duo_self_hosted/app_spec.js | 2 +- .../edit_self_hosted_model_spec.js | 4 +++- .../new_self_hosted_model_spec.js | 4 +++- .../self_hosted_model_form_spec.js | 2 +- .../admin/application_settings_helper_spec.rb | 2 +- .../admin/menus/self_hosted_models_menu_spec.rb | 6 +++--- ...pec.rb => duo_self_hosted_controller_spec.rb} | 6 +++--- .../ai/terms_and_conditions_controller_spec.rb | 2 +- ee/spec/routing/admin_routing_spec.rb | 16 ++++++++++++++++ locale/gitlab.pot | 15 +++++++++------ 23 files changed, 63 insertions(+), 43 deletions(-) rename ee/app/assets/javascripts/pages/admin/ai/{self_hosted_models => duo_self_hosted}/index.js (87%) rename ee/app/controllers/admin/ai/{self_hosted_models_controller.rb => duo_self_hosted_controller.rb} (84%) create mode 100644 ee/app/views/admin/ai/duo_self_hosted/index.html.haml delete mode 100644 ee/app/views/admin/ai/self_hosted_models/index.html.haml rename ee/spec/requests/admin/ai/{self_hosted_models_controller_spec.rb => duo_self_hosted_controller_spec.rb} (84%) diff --git a/doc/administration/gitlab_duo_self_hosted/configure_duo_features.md b/doc/administration/gitlab_duo_self_hosted/configure_duo_features.md index eeb034b205215..f5323f22514c3 100644 --- a/doc/administration/gitlab_duo_self_hosted/configure_duo_features.md +++ b/doc/administration/gitlab_duo_self_hosted/configure_duo_features.md @@ -54,8 +54,8 @@ Prerequisites: To configure a self-hosted model: 1. On the left sidebar, at the bottom, select **Admin**. -1. Select **Self-hosted models**. - - If the **Self-hosted models** menu item is not available, synchronize your +1. Select **GitLab Duo Self-Hosted**. + - If the **GitLab Duo Self-Hosted** menu item is not available, synchronize your subscription after purchase: 1. On the left sidebar, select **Subscription**. 1. In **Subscription details**, to the right of **Last sync**, select @@ -115,8 +115,8 @@ Prerequisites: ### View configured features 1. On the left sidebar, at the bottom, select **Admin**. -1. Select **Self-hosted models**. - - If the **Self-hosted models** menu item is not available, synchronize your +1. Select **GitLab Duo Self-Hosted**. + - If the **GitLab Duo Self-Hosted** menu item is not available, synchronize your subscription after purchase: 1. On the left sidebar, select **Subscription**. 1. In **Subscription details**, to the right of **Last sync**, select @@ -128,6 +128,6 @@ Prerequisites: Configure the GitLab Duo feature to send queries to the configured self-hosted model: 1. On the left sidebar, at the bottom, select **Admin**. -1. Select **Self-hosted models**. -1. Select the **AI-powered features** tab. +1. Select **GitLab Duo Self-Hosted**. +1. Select the **GitLab Duo Self-Hosted** tab. 1. For the feature you want to configure, from the dropdown list, choose the self-hosted model you want to use. For example, `Mistral`. diff --git a/ee/app/assets/javascripts/ai/settings/components/ai_gateway_url_input_form.vue b/ee/app/assets/javascripts/ai/settings/components/ai_gateway_url_input_form.vue index aa3778005be3c..107c186d51b11 100644 --- a/ee/app/assets/javascripts/ai/settings/components/ai_gateway_url_input_form.vue +++ b/ee/app/assets/javascripts/ai/settings/components/ai_gateway_url_input_form.vue @@ -14,7 +14,7 @@ export default { i18n: { label: s__('AiPowered|Local AI Gateway URL'), description: s__( - 'AiPowered|Enter the URL for your local AI Gateway. This endpoint is used for self-hosted models requests.%{br}The URL must be a complete URL, including either the "http://" or "https://" protocol. For example "http://EXAMPLE-URL".%{br}For more information, see how to %{linkStart}install the GitLab AI Gateway.%{linkEnd}', + 'AiPowered|Enter the URL for your local AI Gateway. This endpoint is used for GitLab Duo Self-Hosted requests.%{br}The URL must be a complete URL, including either the "http://" or "https://" protocol. For example "http://EXAMPLE-URL".%{br}For more information, see how to %{linkStart}install the GitLab AI Gateway.%{linkEnd}', ), }, aiGatewaySetupUrl: helpPagePath('install/install_ai_gateway'), diff --git a/ee/app/assets/javascripts/pages/admin/ai/duo_self_hosted/app.vue b/ee/app/assets/javascripts/pages/admin/ai/duo_self_hosted/app.vue index 238537334abdc..ad71ec35d7203 100644 --- a/ee/app/assets/javascripts/pages/admin/ai/duo_self_hosted/app.vue +++ b/ee/app/assets/javascripts/pages/admin/ai/duo_self_hosted/app.vue @@ -17,7 +17,7 @@ export default { PageHeading, }, i18n: { - title: s__('AdminSelfHostedModels|Self-hosted models'), + title: s__('AdminSelfHostedModels|GitLab Duo Self-Hosted'), description: s__( 'AdminSelfHostedModels|Manage GitLab Duo by configuring and assigning self-hosted models to AI-powered features.', ), diff --git a/ee/app/assets/javascripts/pages/admin/ai/self_hosted_models/index.js b/ee/app/assets/javascripts/pages/admin/ai/duo_self_hosted/index.js similarity index 87% rename from ee/app/assets/javascripts/pages/admin/ai/self_hosted_models/index.js rename to ee/app/assets/javascripts/pages/admin/ai/duo_self_hosted/index.js index 58a625aab96e7..164a03571256b 100644 --- a/ee/app/assets/javascripts/pages/admin/ai/self_hosted_models/index.js +++ b/ee/app/assets/javascripts/pages/admin/ai/duo_self_hosted/index.js @@ -1,7 +1,7 @@ import Vue from 'vue'; import VueApollo from 'vue-apollo'; import createDefaultClient from '~/lib/graphql'; -import createRouter from '../duo_self_hosted/router'; +import createRouter from './router'; Vue.use(VueApollo); @@ -10,7 +10,7 @@ const apolloProvider = new VueApollo({ }); function mountSelfHostedModelsApp() { - const el = document.getElementById('js-self-hosted-models'); + const el = document.getElementById('js-duo-self-hosted'); if (!el) { return null; diff --git a/ee/app/assets/javascripts/pages/admin/ai/self_hosted_models/components/edit_self_hosted_model.vue b/ee/app/assets/javascripts/pages/admin/ai/self_hosted_models/components/edit_self_hosted_model.vue index 3435b9d4cc5be..78ef363c42e2c 100644 --- a/ee/app/assets/javascripts/pages/admin/ai/self_hosted_models/components/edit_self_hosted_model.vue +++ b/ee/app/assets/javascripts/pages/admin/ai/self_hosted_models/components/edit_self_hosted_model.vue @@ -21,7 +21,7 @@ export default { i18n: { title: s__('AdminSelfHostedModels|Edit self-hosted model'), description: s__( - 'AdminSelfHostedModels|Edit the AI model that can be used for GitLab Duo features.', + 'AdminSelfHostedModels|Edit the AI model that can be used for GitLab Duo self-hosted features.', ), errorMessage: s__( 'AdminSelfHostedModels|An error occurred while loading the self-hosted model. Please try again.', diff --git a/ee/app/assets/javascripts/pages/admin/ai/self_hosted_models/components/new_self_hosted_model.vue b/ee/app/assets/javascripts/pages/admin/ai/self_hosted_models/components/new_self_hosted_model.vue index 428a3f6a2334d..470a3de584a86 100644 --- a/ee/app/assets/javascripts/pages/admin/ai/self_hosted_models/components/new_self_hosted_model.vue +++ b/ee/app/assets/javascripts/pages/admin/ai/self_hosted_models/components/new_self_hosted_model.vue @@ -12,7 +12,7 @@ export default { i18n: { title: s__('AdminSelfHostedModels|Add self-hosted model'), description: s__( - 'AdminSelfHostedModels|Add a new AI model that can be used for GitLab Duo features.', + 'AdminSelfHostedModels|Add a new AI model that can be used for GitLab Duo self-hosted features.', ), }, mutationData: { diff --git a/ee/app/controllers/admin/ai/self_hosted_models_controller.rb b/ee/app/controllers/admin/ai/duo_self_hosted_controller.rb similarity index 84% rename from ee/app/controllers/admin/ai/self_hosted_models_controller.rb rename to ee/app/controllers/admin/ai/duo_self_hosted_controller.rb index 561aca0cb7e52..bb3995d6a1822 100644 --- a/ee/app/controllers/admin/ai/self_hosted_models_controller.rb +++ b/ee/app/controllers/admin/ai/duo_self_hosted_controller.rb @@ -2,7 +2,7 @@ module Admin module Ai - class SelfHostedModelsController < Admin::ApplicationController + class DuoSelfHostedController < Admin::ApplicationController feature_category :"self-hosted_models" urgency :low diff --git a/ee/app/helpers/admin/application_settings_helper.rb b/ee/app/helpers/admin/application_settings_helper.rb index 1f0ed75999bd7..48b698a4396b0 100644 --- a/ee/app/helpers/admin/application_settings_helper.rb +++ b/ee/app/helpers/admin/application_settings_helper.rb @@ -89,7 +89,7 @@ def ai_settings_helper_data duo_pro_visible: code_suggestions_purchased.to_s, disabled_direct_connection_method: disabled_direct_code_suggestions.to_s, beta_self_hosted_models_enabled: beta_self_hosted_models_enabled.to_s, - toggle_beta_models_path: toggle_beta_models_admin_ai_self_hosted_models_path, + toggle_beta_models_path: admin_ai_duo_self_hosted_toggle_beta_models_path, can_manage_self_hosted_models: can_manage_self_hosted_models.to_s, ai_gateway_url: ai_gateway_url } diff --git a/ee/app/views/admin/ai/duo_self_hosted/index.html.haml b/ee/app/views/admin/ai/duo_self_hosted/index.html.haml new file mode 100644 index 0000000000000..79ada4f8ed1fd --- /dev/null +++ b/ee/app/views/admin/ai/duo_self_hosted/index.html.haml @@ -0,0 +1,2 @@ +- page_title s_("AdminSelfHostedModels|GitLab Duo Self-Hosted") +#js-duo-self-hosted{ data: { view_model: { basePath: admin_ai_duo_self_hosted_path, modelOptions: model_choices_as_options, betaModelsEnabled: beta_models_enabled?, duoConfigurationSettingsPath: admin_gitlab_duo_configuration_index_url }.to_json } } diff --git a/ee/app/views/admin/ai/self_hosted_models/index.html.haml b/ee/app/views/admin/ai/self_hosted_models/index.html.haml deleted file mode 100644 index 12e2d3cc21a8a..0000000000000 --- a/ee/app/views/admin/ai/self_hosted_models/index.html.haml +++ /dev/null @@ -1,2 +0,0 @@ -- page_title s_("AdminSelfHostedModels|Self-hosted models") -#js-self-hosted-models{ data: { view_model: { basePath: admin_ai_self_hosted_models_path, modelOptions: model_choices_as_options, betaModelsEnabled: beta_models_enabled?, duoConfigurationSettingsPath: admin_gitlab_duo_configuration_index_url }.to_json } } diff --git a/ee/config/routes/admin.rb b/ee/config/routes/admin.rb index 5c2abe5963df7..20bd1ac405a0c 100644 --- a/ee/config/routes/admin.rb +++ b/ee/config/routes/admin.rb @@ -53,11 +53,8 @@ get '/code_suggestions', to: redirect('admin/gitlab_duo/seat_utilization') namespace :ai do - resources :self_hosted_models, only: [:index], path: 'self_hosted_models(/*vueroute)' do - collection do - post 'toggle_beta_models', to: 'terms_and_conditions#toggle_beta_models' - end - end + get 'duo_self_hosted(/*vueroute)', to: 'duo_self_hosted#index', as: :duo_self_hosted + post 'duo_self_hosted/toggle_beta_models', to: 'terms_and_conditions#toggle_beta_models' resources :amazon_q_settings, only: [:index, :create] do collection do diff --git a/ee/lib/sidebars/admin/menus/self_hosted_models_menu.rb b/ee/lib/sidebars/admin/menus/self_hosted_models_menu.rb index e4e29fb4147a1..71adadcdc6317 100644 --- a/ee/lib/sidebars/admin/menus/self_hosted_models_menu.rb +++ b/ee/lib/sidebars/admin/menus/self_hosted_models_menu.rb @@ -6,12 +6,12 @@ module Menus class SelfHostedModelsMenu < ::Sidebars::Admin::BaseMenu override :link def link - admin_ai_self_hosted_models_path + admin_ai_duo_self_hosted_path end override :title def title - s_('Admin|Self-hosted models') + s_('Admin|GitLab Duo Self-Hosted') end override :sprite_icon @@ -21,7 +21,7 @@ def sprite_icon override :active_routes def active_routes - { controller: :self_hosted_models } + { controller: :duo_self_hosted } end end end diff --git a/ee/spec/frontend/ai/settings/pages/ai_admin_settings_spec.js b/ee/spec/frontend/ai/settings/pages/ai_admin_settings_spec.js index d0f28eab237c4..15c565a7f58f5 100644 --- a/ee/spec/frontend/ai/settings/pages/ai_admin_settings_spec.js +++ b/ee/spec/frontend/ai/settings/pages/ai_admin_settings_spec.js @@ -27,7 +27,7 @@ let wrapper; let axiosMock; const aiGatewayUrl = 'http://localhost:5052'; -const toggleBetaModelsPath = '/admin/ai/self_hosted_models/terms_and_condition'; +const toggleBetaModelsPath = '/admin/ai/duo_self_hosted/terms_and_condition'; const updateAiSettingsSuccessHandler = jest.fn().mockResolvedValue({ data: { duoSettings: { diff --git a/ee/spec/frontend/pages/admin/ai/duo_self_hosted/app_spec.js b/ee/spec/frontend/pages/admin/ai/duo_self_hosted/app_spec.js index 69ad652c80bcb..c69ad263c04df 100644 --- a/ee/spec/frontend/pages/admin/ai/duo_self_hosted/app_spec.js +++ b/ee/spec/frontend/pages/admin/ai/duo_self_hosted/app_spec.js @@ -31,7 +31,7 @@ describe('DuoSelfHostedApp', () => { it('has a title', () => { const title = wrapper.findByTestId('self-hosted-title'); - expect(title.text()).toBe('Self-hosted models'); + expect(title.text()).toBe('GitLab Duo Self-Hosted'); }); it('has a description', () => { diff --git a/ee/spec/frontend/pages/admin/ai/self_hosted_models/edit_self_hosted_model_spec.js b/ee/spec/frontend/pages/admin/ai/self_hosted_models/edit_self_hosted_model_spec.js index b3b999ab7246f..f9891b53b74e6 100644 --- a/ee/spec/frontend/pages/admin/ai/self_hosted_models/edit_self_hosted_model_spec.js +++ b/ee/spec/frontend/pages/admin/ai/self_hosted_models/edit_self_hosted_model_spec.js @@ -53,7 +53,9 @@ describe('EditSelfHostedModel', () => { it('has a description', () => { createComponent(); - expect(wrapper.text()).toMatch('Edit the AI model that can be used for GitLab Duo features.'); + expect(wrapper.text()).toMatch( + 'Edit the AI model that can be used for GitLab Duo self-hosted features.', + ); }); it('fetches self-hosted model data', () => { diff --git a/ee/spec/frontend/pages/admin/ai/self_hosted_models/new_self_hosted_model_spec.js b/ee/spec/frontend/pages/admin/ai/self_hosted_models/new_self_hosted_model_spec.js index 1cfade439319e..a01aae776c1c4 100644 --- a/ee/spec/frontend/pages/admin/ai/self_hosted_models/new_self_hosted_model_spec.js +++ b/ee/spec/frontend/pages/admin/ai/self_hosted_models/new_self_hosted_model_spec.js @@ -22,7 +22,9 @@ describe('NewSelfHostedModel', () => { }); it('has a description', () => { - expect(wrapper.text()).toMatch('Add a new AI model that can be used for GitLab Duo features.'); + expect(wrapper.text()).toMatch( + 'Add a new AI model that can be used for GitLab Duo self-hosted features.', + ); }); it('renders the self-hosted model form and passes the correct props', () => { diff --git a/ee/spec/frontend/pages/admin/ai/self_hosted_models/self_hosted_model_form_spec.js b/ee/spec/frontend/pages/admin/ai/self_hosted_models/self_hosted_model_form_spec.js index c7d1728501922..33e398378a58c 100644 --- a/ee/spec/frontend/pages/admin/ai/self_hosted_models/self_hosted_model_form_spec.js +++ b/ee/spec/frontend/pages/admin/ai/self_hosted_models/self_hosted_model_form_spec.js @@ -30,7 +30,7 @@ jest.mock('~/lib/utils/url_utility'); describe('SelfHostedModelForm', () => { let wrapper; - const basePath = '/admin/ai/self_hosted_models'; + const basePath = '/admin/ai/duo_self_hosted'; const duoConfigurationSettingsPath = '/admin/gitlab_duo/configuration'; const createMutationSuccessHandler = jest.fn().mockResolvedValue({ data: { diff --git a/ee/spec/helpers/admin/application_settings_helper_spec.rb b/ee/spec/helpers/admin/application_settings_helper_spec.rb index 86732f7b9a49c..0b01f63343cd0 100644 --- a/ee/spec/helpers/admin/application_settings_helper_spec.rb +++ b/ee/spec/helpers/admin/application_settings_helper_spec.rb @@ -88,7 +88,7 @@ enabled_expanded_logging: enabled_expanded_logging.to_s, disabled_direct_connection_method: disabled_direct_code_suggestions.to_s, beta_self_hosted_models_enabled: terms_accepted.to_s, - toggle_beta_models_path: toggle_beta_models_admin_ai_self_hosted_models_path, + toggle_beta_models_path: admin_ai_duo_self_hosted_toggle_beta_models_path, duo_pro_visible: expected_duo_pro_visible_value, can_manage_self_hosted_models: can_manage_self_hosted_models.to_s, ai_gateway_url: ai_gateway_url diff --git a/ee/spec/lib/sidebars/admin/menus/self_hosted_models_menu_spec.rb b/ee/spec/lib/sidebars/admin/menus/self_hosted_models_menu_spec.rb index 8aa20fc645578..cce88630d49bc 100644 --- a/ee/spec/lib/sidebars/admin/menus/self_hosted_models_menu_spec.rb +++ b/ee/spec/lib/sidebars/admin/menus/self_hosted_models_menu_spec.rb @@ -4,9 +4,9 @@ RSpec.describe Sidebars::Admin::Menus::SelfHostedModelsMenu, feature_category: :navigation do it_behaves_like 'Admin menu', - link: '/admin/ai/self_hosted_models', - title: s_('Admin|Self-hosted models'), + link: '/admin/ai/duo_self_hosted', + title: s_('Admin|GitLab Duo Self-Hosted'), icon: 'machine-learning' - it_behaves_like 'Admin menu without sub menus', active_routes: { controller: :self_hosted_models } + it_behaves_like 'Admin menu without sub menus', active_routes: { controller: :duo_self_hosted } end diff --git a/ee/spec/requests/admin/ai/self_hosted_models_controller_spec.rb b/ee/spec/requests/admin/ai/duo_self_hosted_controller_spec.rb similarity index 84% rename from ee/spec/requests/admin/ai/self_hosted_models_controller_spec.rb rename to ee/spec/requests/admin/ai/duo_self_hosted_controller_spec.rb index 0f8ba94ee8ee2..054245d073d66 100644 --- a/ee/spec/requests/admin/ai/self_hosted_models_controller_spec.rb +++ b/ee/spec/requests/admin/ai/duo_self_hosted_controller_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Admin::Ai::SelfHostedModelsController, :enable_admin_mode, feature_category: :"self-hosted_models" do +RSpec.describe Admin::Ai::DuoSelfHostedController, :enable_admin_mode, feature_category: :"self-hosted_models" do let(:admin) { create(:admin) } let(:duo_features_enabled) { true } let_it_be(:license) { create(:license, plan: License::ULTIMATE_PLAN) } @@ -32,10 +32,10 @@ let(:page) { Nokogiri::HTML(response.body) } subject :perform_request do - get admin_ai_self_hosted_models_path + get admin_ai_duo_self_hosted_path end - it 'returns list of self-hosted models' do + it 'returns 200' do perform_request expect(response).to have_gitlab_http_status(:ok) diff --git a/ee/spec/requests/admin/ai/terms_and_conditions_controller_spec.rb b/ee/spec/requests/admin/ai/terms_and_conditions_controller_spec.rb index a67277d3b6380..a2b88dc9d07ea 100644 --- a/ee/spec/requests/admin/ai/terms_and_conditions_controller_spec.rb +++ b/ee/spec/requests/admin/ai/terms_and_conditions_controller_spec.rb @@ -30,7 +30,7 @@ describe 'POST #toggle_beta_models' do subject :perform_request do - post toggle_beta_models_admin_ai_self_hosted_models_path + post admin_ai_duo_self_hosted_toggle_beta_models_path end context 'if a testing terms acceptance record exists' do diff --git a/ee/spec/routing/admin_routing_spec.rb b/ee/spec/routing/admin_routing_spec.rb index 45cc3a0f6b2b5..a12e3b529817e 100644 --- a/ee/spec/routing/admin_routing_spec.rb +++ b/ee/spec/routing/admin_routing_spec.rb @@ -40,6 +40,22 @@ end end + describe Admin::Ai::DuoSelfHostedController, 'routing' do + it 'routes /duo_self_hosted to #index' do + expect(get('/admin/ai/duo_self_hosted/')).to route_to('admin/ai/duo_self_hosted#index') + end + + it 'routes /duo_self_hosted with vue route params to #index' do + expect(get('/admin/ai/duo_self_hosted/features')).to route_to('admin/ai/duo_self_hosted#index', + vueroute: 'features') + end + + it 'routes /duo_self_hosted/toggle_beta_models to terms_and_conditions#toggle_beta_models' do + expect(post('/admin/ai/duo_self_hosted/toggle_beta_models')) + .to route_to('admin/ai/terms_and_conditions#toggle_beta_models') + end + end + describe Admin::Geo::SettingsController, 'routing' do it 'routes / to #show' do expect(get('/admin/geo/settings')).to route_to('admin/geo/settings#show') diff --git a/locale/gitlab.pot b/locale/gitlab.pot index 05d278e27f566..f05e57e8bcabf 100644 --- a/locale/gitlab.pot +++ b/locale/gitlab.pot @@ -4064,7 +4064,7 @@ msgstr "" msgid "AdminSelfHostedModels|API token" msgstr "" -msgid "AdminSelfHostedModels|Add a new AI model that can be used for GitLab Duo features." +msgid "AdminSelfHostedModels|Add a new AI model that can be used for GitLab Duo self-hosted features." msgstr "" msgid "AdminSelfHostedModels|Add self-hosted model" @@ -4097,12 +4097,15 @@ msgstr "" msgid "AdminSelfHostedModels|Edit self-hosted model" msgstr "" -msgid "AdminSelfHostedModels|Edit the AI model that can be used for GitLab Duo features." +msgid "AdminSelfHostedModels|Edit the AI model that can be used for GitLab Duo self-hosted features." msgstr "" msgid "AdminSelfHostedModels|Endpoint" msgstr "" +msgid "AdminSelfHostedModels|GitLab Duo Self-Hosted" +msgstr "" + msgid "AdminSelfHostedModels|If required, provide the API token that grants access to your self-hosted model deployment." msgstr "" @@ -5183,6 +5186,9 @@ msgstr "" msgid "Admin|Geo" msgstr "" +msgid "Admin|GitLab Duo Self-Hosted" +msgstr "" + msgid "Admin|Kubernetes" msgstr "" @@ -5210,9 +5216,6 @@ msgstr "" msgid "Admin|Quarterly reconciliation will occur on %{qrtlyDate}" msgstr "" -msgid "Admin|Self-hosted models" -msgstr "" - msgid "Admin|Settings" msgstr "" @@ -5426,7 +5429,7 @@ msgstr "" msgid "AiPowered|Enroll in the Early Access Program" msgstr "" -msgid "AiPowered|Enter the URL for your local AI Gateway. This endpoint is used for self-hosted models requests.%{br}The URL must be a complete URL, including either the \"http://\" or \"https://\" protocol. For example \"http://EXAMPLE-URL\".%{br}For more information, see how to %{linkStart}install the GitLab AI Gateway.%{linkEnd}" +msgid "AiPowered|Enter the URL for your local AI Gateway. This endpoint is used for GitLab Duo Self-Hosted requests.%{br}The URL must be a complete URL, including either the \"http://\" or \"https://\" protocol. For example \"http://EXAMPLE-URL\".%{br}For more information, see how to %{linkStart}install the GitLab AI Gateway.%{linkEnd}" msgstr "" msgid "AiPowered|Experiment and beta features" -- GitLab