diff --git a/apps/ui/src/components/provider-keys/create-provider-key-dialog.tsx b/apps/ui/src/components/provider-keys/create-provider-key-dialog.tsx index 183cc78fe2..1cfe6bfb55 100644 --- a/apps/ui/src/components/provider-keys/create-provider-key-dialog.tsx +++ b/apps/ui/src/components/provider-keys/create-provider-key-dialog.tsx @@ -57,6 +57,9 @@ export function CreateProviderKeyDialog({ >("ai-foundry"); const [azureValidationModel, setAzureValidationModel] = useState("gpt-4o-mini"); + const [azureAiFoundryResource, setAzureAiFoundryResource] = useState(""); + const [azureAiFoundryApiVersion, setAzureAiFoundryApiVersion] = + useState("2024-05-01-preview"); const [selectedRegion, setSelectedRegion] = useState(""); const [googleVertexProjectId, setGoogleVertexProjectId] = useState(""); const [isValidating, setIsValidating] = useState(false); @@ -170,6 +173,33 @@ export function CreateProviderKeyDialog({ }; } + if (selectedProvider === "azure-ai-foundry") { + if (!azureAiFoundryResource) { + toast({ + title: "Error", + description: "Azure AI Foundry resource name is required", + variant: "destructive", + }); + return; + } + if (!/^[a-zA-Z0-9-]{1,64}$/.test(azureAiFoundryResource)) { + toast({ + title: "Error", + description: + "Resource name must be 1-64 characters and contain only letters, numbers, and hyphens", + variant: "destructive", + }); + return; + } + payload.options = { + ...payload.options, + azure_ai_foundry_resource: azureAiFoundryResource, + ...(azureAiFoundryApiVersion + ? { azure_ai_foundry_api_version: azureAiFoundryApiVersion } + : {}), + }; + } + if (selectedProvider === "google-vertex" && googleVertexProjectId) { payload.options = { ...payload.options, @@ -233,6 +263,8 @@ export function CreateProviderKeyDialog({ setAzureApiVersion("2024-10-21"); setAzureDeploymentType("ai-foundry"); setAzureValidationModel("gpt-4o-mini"); + setAzureAiFoundryResource(""); + setAzureAiFoundryApiVersion("2024-05-01-preview"); setSelectedRegion(""); setGoogleVertexProjectId(""); }, 300); @@ -397,6 +429,41 @@ export function CreateProviderKeyDialog({ > )} + {selectedProvider === "azure-ai-foundry" && ( + <> +
+ Your Azure AI Foundry resource name from the base URL: + https://<resource-name>.services.ai.azure.com +
++ Azure AI Foundry API version (default: 2024-05-01-preview) +
+