mirror of
https://github.com/Wei-Shaw/claude-relay-service.git
synced 2026-01-23 00:53:33 +00:00
add logs to fix azure request issue
This commit is contained in:
@@ -250,6 +250,28 @@ router.post('/responses', authenticateApiKey, async (req, res) => {
|
|||||||
messages: req.body.messages?.length || 0
|
messages: req.body.messages?.length || 0
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// Detailed logging for debugging
|
||||||
|
logger.debug(`📋 Azure OpenAI Responses Request Details ${requestId}`, {
|
||||||
|
headers: {
|
||||||
|
'content-type': req.headers['content-type'],
|
||||||
|
'user-agent': req.headers['user-agent'],
|
||||||
|
'x-forwarded-for': req.headers['x-forwarded-for'],
|
||||||
|
'authorization': req.headers.authorization ? '[REDACTED]' : 'not present'
|
||||||
|
},
|
||||||
|
requestBody: {
|
||||||
|
model: req.body.model,
|
||||||
|
messages: req.body.messages,
|
||||||
|
stream: req.body.stream,
|
||||||
|
temperature: req.body.temperature,
|
||||||
|
max_tokens: req.body.max_tokens,
|
||||||
|
top_p: req.body.top_p,
|
||||||
|
frequency_penalty: req.body.frequency_penalty,
|
||||||
|
presence_penalty: req.body.presence_penalty,
|
||||||
|
stop: req.body.stop,
|
||||||
|
logit_bias: req.body.logit_bias
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// 获取绑定的 Azure OpenAI 账户
|
// 获取绑定的 Azure OpenAI 账户
|
||||||
let account = null
|
let account = null
|
||||||
@@ -265,6 +287,20 @@ router.post('/responses', authenticateApiKey, async (req, res) => {
|
|||||||
account = await azureOpenaiAccountService.selectAvailableAccount(sessionId)
|
account = await azureOpenaiAccountService.selectAvailableAccount(sessionId)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Log Azure OpenAI request details
|
||||||
|
logger.debug(`🔗 Sending to Azure OpenAI ${requestId}`, {
|
||||||
|
account: {
|
||||||
|
id: account.id,
|
||||||
|
name: account.name,
|
||||||
|
azureEndpoint: account.azureEndpoint,
|
||||||
|
deploymentName: account.deploymentName,
|
||||||
|
apiVersion: account.apiVersion
|
||||||
|
},
|
||||||
|
targetUrl: `${account.azureEndpoint}/openai/deployments/${account.deploymentName}/responses?api-version=${account.apiVersion || '2024-10-01-preview'}`,
|
||||||
|
endpoint: 'responses',
|
||||||
|
isStream: req.body.stream || false
|
||||||
|
})
|
||||||
|
|
||||||
// 发送请求到 Azure OpenAI
|
// 发送请求到 Azure OpenAI
|
||||||
const response = await azureOpenaiRelayService.handleAzureOpenAIRequest({
|
const response = await azureOpenaiRelayService.handleAzureOpenAIRequest({
|
||||||
account,
|
account,
|
||||||
|
|||||||
@@ -52,6 +52,25 @@ async function handleAzureOpenAIRequest({
|
|||||||
// 处理请求体
|
// 处理请求体
|
||||||
const processedBody = { ...requestBody }
|
const processedBody = { ...requestBody }
|
||||||
|
|
||||||
|
// Detailed logging for responses endpoint
|
||||||
|
if (endpoint === 'responses') {
|
||||||
|
logger.debug(`🔍 Azure OpenAI Responses Endpoint Details`, {
|
||||||
|
targetUrl: requestUrl,
|
||||||
|
headers: {
|
||||||
|
'Content-Type': requestHeaders['Content-Type'],
|
||||||
|
'api-key': '[REDACTED]',
|
||||||
|
'User-Agent': requestHeaders['User-Agent'] || 'not set'
|
||||||
|
},
|
||||||
|
processedRequestBody: processedBody,
|
||||||
|
account: {
|
||||||
|
name: account.name,
|
||||||
|
azureEndpoint: account.azureEndpoint,
|
||||||
|
deploymentName: account.deploymentName,
|
||||||
|
apiVersion: apiVersion
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
// 标准化模型名称
|
// 标准化模型名称
|
||||||
if (processedBody.model) {
|
if (processedBody.model) {
|
||||||
processedBody.model = normalizeModelName(processedBody.model)
|
processedBody.model = normalizeModelName(processedBody.model)
|
||||||
@@ -142,6 +161,25 @@ async function handleAzureOpenAIRequest({
|
|||||||
contentType: response.headers?.['content-type'] || 'unknown'
|
contentType: response.headers?.['content-type'] || 'unknown'
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// Enhanced logging for responses endpoint
|
||||||
|
if (endpoint === 'responses') {
|
||||||
|
logger.debug(`🔍 Azure OpenAI Responses Endpoint Response`, {
|
||||||
|
status: response.status,
|
||||||
|
statusText: response.statusText,
|
||||||
|
headers: {
|
||||||
|
'content-type': response.headers['content-type'],
|
||||||
|
'x-request-id': response.headers['x-request-id'] || response.headers['x-ms-request-id'],
|
||||||
|
'x-ratelimit-remaining': response.headers['x-ratelimit-remaining-requests'],
|
||||||
|
'x-ratelimit-reset': response.headers['x-ratelimit-reset-requests']
|
||||||
|
},
|
||||||
|
responseBodyPreview: isStream ? '[STREAM]' : (
|
||||||
|
response.data ? JSON.stringify(response.data).substring(0, 500) + (JSON.stringify(response.data).length > 500 ? '...' : '') : 'no data'
|
||||||
|
),
|
||||||
|
endpoint: 'responses',
|
||||||
|
duration: `${requestDuration}ms`
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
return response
|
return response
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
const errorDetails = {
|
const errorDetails = {
|
||||||
@@ -207,6 +245,17 @@ async function handleAzureOpenAIRequest({
|
|||||||
logger.error('Azure OpenAI Request Failed', errorDetails)
|
logger.error('Azure OpenAI Request Failed', errorDetails)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Enhanced error logging for responses endpoint
|
||||||
|
if (endpoint === 'responses') {
|
||||||
|
logger.error(`❌ Azure OpenAI Responses Endpoint Error`, {
|
||||||
|
...errorDetails,
|
||||||
|
endpoint: 'responses',
|
||||||
|
targetUrl: requestUrl,
|
||||||
|
errorType: error.response ? 'HTTP_ERROR' : 'NETWORK_ERROR',
|
||||||
|
responseBody: error.response?.data ? JSON.stringify(error.response.data) : 'no response body'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
throw error
|
throw error
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user