调用AzureOpenAI生成Embeddings时遇DeploymentNotFound错误求助
解决Azure OpenAI Embeddings的DeploymentNotFound错误
问题原因
你遇到的404错误是因为代码中model参数填的是基础模型ID(text-embedding-ada-002),但Azure OpenAI要求此处填写你在Azure门户中创建的对应模型的部署名,而非原生模型ID。即使环境变量里配置了部署名,原代码也没有引用这个变量。
修复步骤
1. 确认部署信息
登录Azure门户,检查你的OpenAI资源下的部署列表,确保存在text-embedding-ada-002模型的部署,且部署名与环境变量AZURE_OPENAI_API_DEPLOYMENT_NAME的值完全一致(大小写敏感)。
2. 修改代码
将embeddings.create中的model参数替换为环境变量中的部署名,修改后的代码如下:
import os from openai import AzureOpenAI client = AzureOpenAI( api_key = os.getenv("AZURE_OPENAI_API_KEY"), api_version = "2023-05-15", azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT") ) # 从环境变量获取部署名 deployment_name = os.getenv("AZURE_OPENAI_API_DEPLOYMENT_NAME") response = client.embeddings.create( input = "Your text string goes here", model= deployment_name # 替换为部署名而非模型ID ) print(response.model_dump_json(indent=2))
额外说明
- OpenAI Python SDK v1.x中,Azure环境下的
model参数始终对应Azure门户中的部署名,这和OpenAI原生平台直接用模型ID的逻辑不同。 - 你在langchain中能正常使用,是因为
langchain_openai.AzureChatOpenAI会自动读取AZURE_OPENAI_API_DEPLOYMENT_NAME环境变量作为部署名,而原生OpenAI SDK不会自动读取这个变量,需要手动传入。
内容的提问来源于stack exchange,提问作者luanpo1234
相关产品推荐
相关产品推荐

