mirror of
https://github.com/DayuanJiang/next-ai-draw-io.git
synced 2026-01-02 22:32:27 +08:00
* fix: improve Azure provider auto-detection and validation (#223) - Fix detectProvider() to only detect Azure when it has complete config (both AZURE_API_KEY and AZURE_RESOURCE_NAME or AZURE_BASE_URL) - Add validation in validateProviderCredentials() for Azure to provide clear error messages when configuration is incomplete - Update docs/ai-providers.md to clarify Azure requires resource name * docs: add Azure reasoning options to documentation
This commit is contained in:
@@ -80,13 +80,23 @@ SILICONFLOW_BASE_URL=https://api.siliconflow.com/v1 # or https://api.siliconflo
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
AZURE_API_KEY=your_api_key
|
AZURE_API_KEY=your_api_key
|
||||||
|
AZURE_RESOURCE_NAME=your-resource-name # Required: your Azure resource name
|
||||||
AI_MODEL=your-deployment-name
|
AI_MODEL=your-deployment-name
|
||||||
```
|
```
|
||||||
|
|
||||||
Optional custom endpoint:
|
Or use a custom endpoint instead of resource name:
|
||||||
|
|
||||||
```bash
|
```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
|
### AWS Bedrock
|
||||||
|
|||||||
@@ -371,8 +371,17 @@ function detectProvider(): ProviderName | null {
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if (process.env[envVar]) {
|
if (process.env[envVar]) {
|
||||||
|
// 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)
|
configuredProviders.push(provider as ProviderName)
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
configuredProviders.push(provider as ProviderName)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (configuredProviders.length === 1) {
|
if (configuredProviders.length === 1) {
|
||||||
@@ -393,6 +402,18 @@ function validateProviderCredentials(provider: ProviderName): void {
|
|||||||
`Please set it in your .env.local file.`,
|
`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.`,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user