mirror of
https://github.com/DayuanJiang/next-ai-draw-io.git
synced 2026-01-02 22:32:27 +08:00
fix: implement AZURE_RESOURCE_NAME config for Azure OpenAI (#213)
Previously AZURE_RESOURCE_NAME was documented in env.example but not actually used in the code. This caused Azure OpenAI configuration to fail when users set AZURE_RESOURCE_NAME instead of AZURE_BASE_URL. Changes: - Read AZURE_RESOURCE_NAME from environment and pass to createAzure() - resourceName constructs endpoint: https://{name}.openai.azure.com/openai/v1 - baseURL takes precedence over resourceName when both are set - Updated env.example with clearer documentation Fixes #208
This commit is contained in:
@@ -41,9 +41,13 @@ AI_MODEL=global.anthropic.claude-sonnet-4-5-20250929-v1:0
|
|||||||
# GOOGLE_THINKING_LEVEL=high # Optional: Gemini 3 thinking level (low/high)
|
# GOOGLE_THINKING_LEVEL=high # Optional: Gemini 3 thinking level (low/high)
|
||||||
|
|
||||||
# Azure OpenAI Configuration
|
# Azure OpenAI Configuration
|
||||||
|
# Configure endpoint using ONE of these methods:
|
||||||
|
# 1. AZURE_RESOURCE_NAME - SDK constructs: https://{name}.openai.azure.com/openai/v1{path}
|
||||||
|
# 2. AZURE_BASE_URL - SDK appends /v1{path} to your URL
|
||||||
|
# If both are set, AZURE_BASE_URL takes precedence.
|
||||||
# AZURE_RESOURCE_NAME=your-resource-name
|
# AZURE_RESOURCE_NAME=your-resource-name
|
||||||
# AZURE_API_KEY=...
|
# AZURE_API_KEY=...
|
||||||
# AZURE_BASE_URL=https://your-resource.openai.azure.com # Optional: Custom endpoint (overrides resourceName)
|
# AZURE_BASE_URL=https://your-resource.openai.azure.com/openai # Alternative: Custom endpoint
|
||||||
# AZURE_REASONING_EFFORT=low # Optional: Azure reasoning effort (low, medium, high)
|
# AZURE_REASONING_EFFORT=low # Optional: Azure reasoning effort (low, medium, high)
|
||||||
# AZURE_REASONING_SUMMARY=detailed
|
# AZURE_REASONING_SUMMARY=detailed
|
||||||
|
|
||||||
|
|||||||
@@ -572,10 +572,15 @@ export function getAIModel(overrides?: ClientOverrides): ModelConfig {
|
|||||||
case "azure": {
|
case "azure": {
|
||||||
const apiKey = overrides?.apiKey || process.env.AZURE_API_KEY
|
const apiKey = overrides?.apiKey || process.env.AZURE_API_KEY
|
||||||
const baseURL = overrides?.baseUrl || process.env.AZURE_BASE_URL
|
const baseURL = overrides?.baseUrl || process.env.AZURE_BASE_URL
|
||||||
if (baseURL || overrides?.apiKey) {
|
const resourceName = process.env.AZURE_RESOURCE_NAME
|
||||||
|
// Azure requires either baseURL or resourceName to construct the endpoint
|
||||||
|
// resourceName constructs: https://{resourceName}.openai.azure.com/openai/v1{path}
|
||||||
|
if (baseURL || resourceName || overrides?.apiKey) {
|
||||||
const customAzure = createAzure({
|
const customAzure = createAzure({
|
||||||
apiKey,
|
apiKey,
|
||||||
|
// baseURL takes precedence over resourceName per SDK behavior
|
||||||
...(baseURL && { baseURL }),
|
...(baseURL && { baseURL }),
|
||||||
|
...(!baseURL && resourceName && { resourceName }),
|
||||||
})
|
})
|
||||||
model = customAzure(modelId)
|
model = customAzure(modelId)
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user