为何新部署的Azure OpenAI调用REST API时返回404资源未找到?
我来帮你梳理下可能导致这个404问题的细节——毕竟Playground能用但API调用失败,大概率是某个配置细节没对齐:
API版本可能过时:你当前用的
2022-12-01是比较早期的版本,如果你的部署是GPT-3.5/4这类较新的模型,Azure可能要求使用更高版本的API(比如2023-05-15或更新)。建议去Azure Portal的OpenAI资源部署页面,查看对应模型推荐的API版本,替换后再试。部署名称要严格匹配:检查
raz-model-2这个部署名称的拼写和大小写,Azure的资源名称是大小写敏感的,哪怕多一个空格或者大小写不对,都会触发404。去Azure Portal的「部署」页面确认下准确的名称。资源端点别写错:确认
https://raz-openai.openai.azure.com/是你在Azure Portal「密钥和终结点」页面复制的正确端点,有时候复制时容易带空格或者少字符,这也会导致找不到资源。API路径要对应模型类型:如果你的部署是Chat模型(比如gpt-3.5-turbo),API路径应该是
/openai/deployments/{deployment-name}/chat/completions,而不是你现在用的/completions。回忆下你在Playground里用的是「Chat」还是「Completions」模式?如果是Chat模式,Code View里的路径会是chat/completions,可能你复制错了路径。请求头细节要注意:确保你的API密钥头是
api-key(全小写的k),虽然部分场景大小写不敏感,但严格遵循规范更稳妥。另外,这个密钥必须是Azure OpenAI资源本身的密钥(在「密钥和终结点」页面获取),不是部署的密钥。
可以先试试用curl重新构造请求测试,比如:
curl https://raz-openai.openai.azure.com/openai/deployments/raz-model-2/completions?api-version=2023-05-15 \ -H "Content-Type: application/json" \ -H "api-key: 你的实际API密钥" \ -d '{"prompt": "测试请求", "max_tokens": 100}'
内容的提问来源于stack exchange,提问作者Raz Ronen

