西欧区Azure OpenAI gpt-35-turbo仅Studio可用,其他方式报401错误
Azure OpenAI gpt-35-turbo 非Studio调用401错误排查方案
问题概况
- 西欧区域Azure Studio内可正常调用gpt-35-turbo部署
- Postman、curl、Python代码、PowerShell等外部工具调用均返回401错误,提示「订阅密钥无效或API端点错误,请确保提供有效密钥并使用正确的区域端点」
- 48小时前正常运行的Python代码目前也无法使用
- 已直接从Studio复制调用代码,仅替换API密钥,确认密钥无误
- Azure状态页面显示服务正常
排查步骤
1. 验证API端点的区域匹配
- 确认端点域名
<MYBASE>对应西欧区域的资源,西欧Azure OpenAI端点格式为https://<resource-name>.openai.azure.com,避免误填为其他区域(如美国东部)的端点 - 登录Azure门户,进入目标OpenAI资源的「密钥和端点」页面,复制完整的端点URL替换代码中的占位符,避免手动输入错误
2. 检查API密钥有效性
- 确认使用的是该OpenAI资源的「密钥1」或「密钥2」,而非其他Azure资源(如认知服务)的密钥
- 在Azure门户的「密钥和端点」页面点击「重新生成密钥」,用新密钥替换代码中的
YOUR_API_KEY,排除密钥泄露或异常状态 - 检查资源所属订阅状态:在Azure「订阅」页面确认订阅为「活动」状态,未被禁用或过期
3. 修正请求格式与请求头
- 确认请求头
api-key为全小写拼写,避免大小写错误 - 检查请求体JSON格式:
- curl命令中注意转义字符正确,若仍有问题,可将JSON内容写入文件(如
request.json),用-d @request.json替代直接写字符串 - PowerShell建议用变量构造JSON,避免转义错误,示例代码:
$body = @{ messages = @(@{role="system"; content="You are an AI assistant that helps people find information."}) max_tokens = 800 temperature = 0.7 frequency_penalty = 0 presence_penalty = 0 top_p = 0.95 stop = $null } | ConvertTo-Json Invoke-RestMethod -Uri "https://<resource-name>.openai.azure.com/openai/deployments/<deployment-name>/chat/completions?api-version=2023-07-01-preview" ` -Headers @{"api-key" = "YOUR_API_KEY"} ` -Method Post ` -Body $body ` -ContentType "application/json"
- curl命令中注意转义字符正确,若仍有问题,可将JSON内容写入文件(如
4. 排查网络与防火墙限制
- 登录Azure门户,进入OpenAI资源的「网络」页面,检查是否设置了IP访问限制:
- 若为「允许特定IP地址」,需将本地设备的公网IP加入允许列表
- 若为「允许所有网络」,则跳过此步
- 尝试切换网络环境(如手机热点),排除本地代理、防火墙或企业网络的拦截
5. 核对API版本兼容性
- 尝试更换API版本,比如将
2023-07-01-preview替换为2024-02-15-preview或2023-12-01-preview,避免旧版本迭代导致的兼容性问题
内容的提问来源于stack exchange,提问作者Sergio Solorzano
相关产品推荐
相关产品推荐

