diff --git a/docs/ai-providers.md b/docs/ai-providers.md index 14e0c92..330b3ee 100644 --- a/docs/ai-providers.md +++ b/docs/ai-providers.md @@ -80,13 +80,23 @@ SILICONFLOW_BASE_URL=https://api.siliconflow.com/v1 # or https://api.siliconflo ```bash AZURE_API_KEY=your_api_key +AZURE_RESOURCE_NAME=your-resource-name # Required: your Azure resource name AI_MODEL=your-deployment-name ``` -Optional custom endpoint: +Or use a custom endpoint instead of resource name: ```bash -AZURE_BASE_URL=https://your-resource.openai.azure.com +AZURE_API_KEY=your_api_key +AZURE_BASE_URL=https://your-resource.openai.azure.com # Alternative to AZURE_RESOURCE_NAME +AI_MODEL=your-deployment-name +``` + +Optional reasoning configuration: + +```bash +AZURE_REASONING_EFFORT=low # Optional: low, medium, high +AZURE_REASONING_SUMMARY=detailed # Optional: none, brief, detailed ``` ### AWS Bedrock diff --git a/lib/ai-providers.ts b/lib/ai-providers.ts index b98dc1e..875888f 100644 --- a/lib/ai-providers.ts +++ b/lib/ai-providers.ts @@ -371,7 +371,16 @@ function detectProvider(): ProviderName | null { continue } if (process.env[envVar]) { - configuredProviders.push(provider as ProviderName) + // Azure requires additional config (baseURL or resourceName) + if (provider === "azure") { + const hasBaseUrl = !!process.env.AZURE_BASE_URL + const hasResourceName = !!process.env.AZURE_RESOURCE_NAME + if (hasBaseUrl || hasResourceName) { + configuredProviders.push(provider as ProviderName) + } + } else { + configuredProviders.push(provider as ProviderName) + } } } @@ -393,6 +402,18 @@ function validateProviderCredentials(provider: ProviderName): void { `Please set it in your .env.local file.`, ) } + + // Azure requires either AZURE_BASE_URL or AZURE_RESOURCE_NAME in addition to API key + if (provider === "azure") { + const hasBaseUrl = !!process.env.AZURE_BASE_URL + const hasResourceName = !!process.env.AZURE_RESOURCE_NAME + if (!hasBaseUrl && !hasResourceName) { + throw new Error( + `Azure requires either AZURE_BASE_URL or AZURE_RESOURCE_NAME to be set. ` + + `Please set one in your .env.local file.`, + ) + } + } } /**