fix: azure转发问题修复

This commit is contained in:
shaw
2025-09-08 17:26:14 +08:00
parent fec80a16fa
commit 7f8fae70e6
4 changed files with 832 additions and 880 deletions

1698
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -534,7 +534,8 @@ router.post('/api-keys', authenticateAdmin, async (req, res) => {
weeklyOpusCostLimit,
tags,
activationDays, // 新增:激活后有效天数
expirationMode // 新增:过期模式
expirationMode, // 新增:过期模式
icon // 新增:图标
} = req.body
// 输入验证

View File

@@ -1,6 +1,7 @@
const axios = require('axios')
const ProxyHelper = require('../utils/proxyHelper')
const logger = require('../utils/logger')
const config = require('../../config/config')
// 转换模型名称(去掉 azure/ 前缀)
function normalizeModelName(model) {
@@ -29,7 +30,7 @@ async function handleAzureOpenAIRequest({
deploymentName = account.deploymentName || 'default'
// Azure Responses API requires preview versions; fall back appropriately
const apiVersion =
account.apiVersion || (endpoint === 'responses' ? '2024-10-01-preview' : '2024-02-01')
account.apiVersion || (endpoint === 'responses' ? '2025-04-01-preview' : '2024-02-01')
if (endpoint === 'chat/completions') {
requestUrl = `${baseUrl}/openai/deployments/${deploymentName}/chat/completions?api-version=${apiVersion}`
} else if (endpoint === 'responses') {
@@ -53,7 +54,9 @@ async function handleAzureOpenAIRequest({
const processedBody = { ...requestBody }
// 标准化模型名称
if (processedBody.model) {
if (endpoint === 'responses') {
processedBody.model = deploymentName
} else if (processedBody.model) {
processedBody.model = normalizeModelName(processedBody.model)
} else {
processedBody.model = 'gpt-4'
@@ -68,7 +71,7 @@ async function handleAzureOpenAIRequest({
url: requestUrl,
headers: requestHeaders,
data: processedBody,
timeout: 600000, // 10 minutes for Azure OpenAI
timeout: config.requestTimeout || 600000,
validateStatus: () => true,
// 添加连接保活选项
keepAlive: true,

View File

@@ -5378,7 +5378,7 @@
},
"node_modules/xlsx-js-style": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/xlsx-js-style/-/xlsx-js-style-1.2.0.tgz",
"resolved": "https://registry.npmmirror.com/xlsx-js-style/-/xlsx-js-style-1.2.0.tgz",
"integrity": "sha512-DDT4FXFSWfT4DXMSok/m3TvmP1gvO3dn0Eu/c+eXHW5Kzmp7IczNkxg/iEPnImbG9X0Vb8QhROda5eatSR/97Q==",
"license": "Apache-2.0",
"dependencies": {