使用Python调用Azure OpenAI API遇404及资源未找到错误求助
解决Azure OpenAI API连接404/资源未找到错误
检查端点与资源配置
- 端点URL格式错误:Azure OpenAI的端点必须是完整的资源URL,比如
https://<your-resource-name>.openai.azure.com/,不能遗漏末尾的斜杠,也不能只写部分路径。使用AzureOpenAI客户端时,azure_endpoint参数必须严格匹配Azure门户中复制的端点值。 - 部署名称错误:调用API时必须指定正确的模型部署名称(不是模型本身的名称,比如你部署的
gpt-35-turbo实例名称可能是my-gpt35)。无论是用AzureOpenAI客户端的model参数,还是传统openai配置里的engine参数,都要填部署名称,而非基础模型名。
验证API密钥与权限
- API密钥无效或选错:确保使用的是Azure门户中Azure OpenAI资源的密钥(不是其他服务的密钥),密钥有两个,可换另一个试试,可能其中一个已过期或被撤销。
- 资源权限配置:确认你的Azure账号对该OpenAI资源有
Cognitive Services OpenAI User或更高权限,否则会因权限不足返回404(部分场景下权限问题会伪装成资源未找到)。
代码配置细节检查
AzureOpenAI客户端代码修正
错误示例:
from azure.openai import AzureOpenAI client = AzureOpenAI( azure_endpoint="https://my-resource.openai.azure.com", # 缺少末尾斜杠 api_key="my-key", api_version="2024-02-15-preview" ) response = client.chat.completions.create( model="gpt-35-turbo", # 错误使用模型名而非部署名 messages=[{"role": "user", "content": "Hello"}] )
修正后:
from azure.openai import AzureOpenAI client = AzureOpenAI( azure_endpoint="https://my-resource.openai.azure.com/", api_key="valid-key", api_version="2024-02-15-preview" # 确保API版本与资源支持的版本匹配 ) response = client.chat.completions.create( model="my-gpt35-deployment", # 替换为你的部署名称 messages=[{"role": "user", "content": "Hello"}] )
Streamlit+传统openai配置修正
错误示例:
import openai import streamlit as st openai.api_type = "azure" openai.api_base = "https://my-resource.openai.azure.com" # 缺少斜杠 openai.api_key = "my-key" openai.api_version = "2024-02-15-preview" response = openai.ChatCompletion.create( engine="gpt-35-turbo", # 错误使用模型名而非部署名 messages=[{"role": "user", "content": "Hello"}] )
修正后:
import openai import streamlit as st openai.api_type = "azure" openai.api_base = "https://my-resource.openai.azure.com/" openai.api_key = "valid-key" openai.api_version = "2024-02-15-preview" response = openai.ChatCompletion.create( engine="my-gpt35-deployment", # 替换为部署名称 messages=[{"role": "user", "content": "Hello"}] )
额外排查步骤
- 检查资源区域:确认你的代码运行环境(比如本地/Streamlit Cloud)与Azure OpenAI资源的区域没有网络限制,部分区域可能需要VNet配置或防火墙允许访问。
- API版本兼容性:确保使用的
api_version是Azure OpenAI资源支持的版本,过时的版本可能导致404,可在Azure门户的资源概述页查看支持的API版本。
内容的提问来源于stack exchange,提问作者Saketh Pulijala
相关产品推荐
相关产品推荐

