替换ChatOpenAI为AzureChatOpenAI时遇404资源未找到错误求助
解决AzureChatOpenAI替换ChatOpenAI后的404错误
以下是排查和解决该404错误的具体步骤:
核对Azure部署名称
确保azure_deployment参数值与Azure OpenAI Studio中创建的部署名称完全匹配,包括大小写、特殊字符,任何拼写或格式错误都会导致资源找不到。补充必要配置参数
AzureChatOpenAI必须明确指定azure_endpoint和openai_api_key,可通过两种方式配置:- 设置环境变量:
export AZURE_OPENAI_ENDPOINT="你的Azure OpenAI资源端点" export AZURE_OPENAI_API_KEY="你的Azure OpenAI API密钥" - 初始化时显式传入参数:
llm=AzureChatOpenAI( openai_api_version="2023-05-15", azure_deployment="你的实际部署名称", azure_endpoint="https://<你的资源名称>.openai.azure.com/", openai_api_key="你的API密钥" )
- 设置环境变量:
验证API版本兼容性
确认使用的openai_api_version(如2023-05-15)是你的Azure OpenAI资源支持的版本,可在Azure门户的OpenAI资源页面查看可用API版本。检查资源访问权限
确认API密钥对应的账号拥有该Azure OpenAI资源的访问权限,同时检查资源是否设置了防火墙或虚拟网络限制,导致请求无法抵达。
修改后的完整load_chain函数示例:
def load_chain(): prompt_template = """You are a helpful assistant for questions. {context} Question: {question} Answer here:""" PROMPT = PromptTemplate(template=prompt_template, input_variables=["context", "question"]) retriever = AzureCognitiveSearchRetriever(content_key="content", top_k=10) chain = ConversationalRetrievalChain.from_llm( llm=AzureChatOpenAI( openai_api_version="2023-05-15", azure_deployment="你的实际部署名称", azure_endpoint="https://<你的资源名称>.openai.azure.com/", openai_api_key="你的API密钥" ), memory=memory, retriever=retriever, combine_docs_chain_kwargs={"prompt": PROMPT}, ) return chain
内容的提问来源于stack exchange,提问作者senasimsek
相关产品推荐
相关产品推荐

