You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LangChain中AzureOpenAI无法找到AzureChatOpenAI可访问模型的问题求助

LangChain中AzureOpenAI无法找到AzureChatOpenAI可访问模型的问题求助

我来帮你捋清楚这个问题——核心原因是LangChain里的AzureOpenAI和AzureChatOpenAI类对应着完全不同的OpenAI API类型,你用错了工具去访问对应的模型。

问题根源

gpt-4o是一个纯聊天类模型,它只支持Azure OpenAI的聊天完成(Chat Completions)API;而你用的AzureOpenAI类,是专门用来对接Azure OpenAI的文本补全(Completions)API的,这类API只支持像text-davinci-003这类传统的文本补全模型。

所以当你用AzureOpenAI去调用gpt-4o时,相当于找一个不存在的接口,自然会返回404“找不到资源”的错误。而AzureChatOpenAI是专门为聊天模型设计的,能正确对接聊天完成API,所以你的第一段代码能正常运行。

解决方案

根据你的需求,有两种处理方式:

  1. 继续使用聊天模型(推荐)
    如果你就是要调用gpt-4o这类聊天模型,那就老老实实用AzureChatOpenAI类,你的第一段代码已经验证了它能正常工作,不需要做改动。

  2. 改用支持补全的模型(如果必须用AzureOpenAI)
    要是你非得用AzureOpenAI类,那得换成Azure上支持补全API的模型,比如text-davinci-003,同时注意返回值的处理——AzureOpenAI的invoke直接返回字符串,不用加.content:

    import os
    from dotenv import load_dotenv
    from langchain_openai import AzureOpenAI
    
    load_dotenv()
    llm = AzureOpenAI(
        azure_endpoint=os.getenv("AZURE_ENDPOINT"),
        api_key=os.getenv("TOOL_KEY"),
        api_version=os.getenv("API_VERSION"),
        model="text-davinci-003"  # 替换为已部署的补全模型
    )
    response = llm.invoke("what is 2+3?")
    print(response)  # 直接打印返回的字符串即可
    

额外注意事项

  • 确认你的Azure OpenAI资源中已经部署了对应类型的模型:用AzureChatOpenAI就部署聊天模型,用AzureOpenAI就部署补全模型,部署名称要和代码里的model参数一致。
  • 两种类的返回格式不同:AzureChatOpenAI返回AIMessage对象,需通过.content获取文本;AzureOpenAI直接返回字符串,不要画蛇添足加.content。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 08:38:00