使用Azure OpenAI结合Llama Index微调时遇NotFoundError(404)求助
解决Llama Index结合Azure OpenAI查询时的404 NotFoundError
核心排查方向及解决方案
1. 验证Azure OpenAI资源配置正确性
- 检查
api_base格式:必须是Azure OpenAI资源的完整endpoint,格式为https://<你的资源名称>.openai.azure.com/,确保结尾的斜杠存在或符合要求,避免路径拼接错误。 - 确认部署名称参数:代码中填写的模型/引擎名称必须是你在Azure OpenAI Portal中实际创建的部署名称,而非模型的官方名称(例如部署
gpt-35-turbo时命名为my-gpt-deployment,则参数值应为my-gpt-deployment)。 - 核对
api_version有效性:使用Azure OpenAI支持的API版本,可在Azure Portal的资源概述页查看推荐版本,避免使用已废弃的旧版本。
2. 修正Llama Index的Azure OpenAI初始化代码
Llama Index针对Azure OpenAI提供了专属的AzureOpenAI类,使用通用OpenAI类会默认指向OpenAI官方API,导致路径错误。修改代码如下:
from llama_index.llms.azure_openai import AzureOpenAI # 替换原有的OpenAI初始化代码 self.llm = AzureOpenAI( engine=self.model, # 此处填Azure上的部署名称 api_key=self.azure_openai_api_key, api_base=self.azure_openai_endpoint, api_version=self.azure_openai_api_version, temperature=self.temperature )
3. 检查API密钥与权限
- 确认
azure_openai_api_key是Azure OpenAI资源的有效密钥,未过期或被撤销,可在Azure Portal的“密钥和终结点”页重新生成密钥测试。 - 验证当前账户对该Azure OpenAI资源有访问权限:在资源的IAM设置中,确保账户拥有“认知服务用户”或更高权限的角色。
4. 排查网络连通性
- 测试运行环境是否能正常访问Azure OpenAI endpoint,可使用curl命令验证:
如果curl返回404,说明问题出在Azure资源配置而非代码,需回到Azure Portal确认部署是否成功创建、名称是否正确。curl -v https://<你的资源名称>.openai.azure.com/openai/deployments/<你的部署名称>/chat/completions?api-version=<你的api_version> \ -H "Content-Type: application/json" \ -H "api-key: <你的api_key>" \ -d '{"messages": [{"role": "user", "content": "test"}]}'
内容的提问来源于stack exchange,提问作者gluck0101
相关产品推荐
相关产品推荐

