diff --git a/ui/admin/app/components/model-providers/ModelProviderForm.tsx b/ui/admin/app/components/model-providers/ModelProviderForm.tsx index 6de49f57e..9f643094b 100644 --- a/ui/admin/app/components/model-providers/ModelProviderForm.tsx +++ b/ui/admin/app/components/model-providers/ModelProviderForm.tsx @@ -62,6 +62,7 @@ const translateUserFriendlyLabel = (label: string) => { "OBOT_VOYAGE_MODEL_PROVIDER", "OBOT_GROQ_MODEL_PROVIDER", "OBOT_ANTHROPIC_BEDROCK_MODEL_PROVIDER", + "OBOT_GEMINI_VERTEX_MODEL_PROVIDER", ]; return fieldsToStrip diff --git a/ui/admin/app/components/model-providers/constants.ts b/ui/admin/app/components/model-providers/constants.ts index 00bc002c4..ea64a795b 100644 --- a/ui/admin/app/components/model-providers/constants.ts +++ b/ui/admin/app/components/model-providers/constants.ts @@ -6,6 +6,7 @@ export const CommonModelProviderIds = { OPENAI: "openai-model-provider", AZURE_OPENAI: "azure-openai-model-provider", ANTHROPIC_BEDROCK: "anthropic-bedrock-model-provider", + GEMINI_VERTEX: "gemini-vertex-model-provider", }; export const ModelProviderLinks = { @@ -18,6 +19,8 @@ export const ModelProviderLinks = { [CommonModelProviderIds.OPENAI]: "https://openai.com/", [CommonModelProviderIds.ANTHROPIC_BEDROCK]: "https://aws.amazon.com/bedrock/claude/", + [CommonModelProviderIds.GEMINI_VERTEX]: + "https://cloud.google.com/vertex-ai", }; export const ModelProviderConfigurationLinks = { @@ -44,7 +47,7 @@ export const ModelProviderRequiredTooltips: { }, [CommonModelProviderIds.AZURE_OPENAI]: { Endpoint: - "Endpoint for the Azure OpenAI service (e.g. https://..api.cognitive.microsoft.com/)", + "Endpoint for the Azure OpenAI service (eg. https://..api.cognitive.microsoft.com/)", "Client Id": "Unique identifier for the application when using Azure Active Directory. Can typically be found in App Registrations > [application].", "Client Secret": @@ -62,6 +65,11 @@ export const ModelProviderRequiredTooltips: { "Session Token": "AWS Session Token", Region: "AWS Region - make sure that the models you want to use are available in this region: https://docs.aws.amazon.com/bedrock/latest/userguide/models-regions.html", }, + [CommonModelProviderIds.GEMINI_VERTEX]: { + "Google Credentials JSON": + "Google Cloud Account Credentials - JSON File Contents: https://cloud.google.com/iam/docs/keys-create-delete#creating", + "Google Cloud Project": "Google Cloud Project ID", + }, }; export const ModelProviderSensitiveFields: Record = @@ -94,4 +102,8 @@ export const ModelProviderSensitiveFields: Record = OBOT_ANTHROPIC_BEDROCK_MODEL_PROVIDER_SECRET_ACCESS_KEY: true, OBOT_ANTHROPIC_BEDROCK_MODEL_PROVIDER_SESSION_TOKEN: true, OBOT_ANTHROPIC_BEDROCK_MODEL_PROVIDER_REGION: false, + + // Gemini Vertex + OBOT_GEMINI_VERTEX_MODEL_PROVIDER_GOOGLE_CREDENTIALS_JSON: true, + OBOT_GEMINI_VERTEX_MODEL_PROVIDER_GOOGLE_CLOUD_PROJECT: false, }; diff --git a/ui/admin/app/routes/_auth.model-providers.tsx b/ui/admin/app/routes/_auth.model-providers.tsx index f7755beea..ea996146d 100644 --- a/ui/admin/app/routes/_auth.model-providers.tsx +++ b/ui/admin/app/routes/_auth.model-providers.tsx @@ -33,6 +33,7 @@ const sortModelProviders = (modelProviders: ModelProvider[]) => { CommonModelProviderIds.OLLAMA, CommonModelProviderIds.VOYAGE, CommonModelProviderIds.GROQ, + CommonModelProviderIds.GEMINI_VERTEX, ]; const aIndex = preferredOrder.indexOf(a.id); const bIndex = preferredOrder.indexOf(b.id); diff --git a/ui/admin/public/assets/gemini_icon.svg b/ui/admin/public/assets/gemini_icon.svg new file mode 100644 index 000000000..33a2934c4 --- /dev/null +++ b/ui/admin/public/assets/gemini_icon.svg @@ -0,0 +1 @@ +Gemini \ No newline at end of file