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

使用LangChain调用Azure OpenAI GPT-4遇Completion操作不支持错误

问题解决方法

错误的核心原因是:GPT-4(包括Azure部署的GPT-4)属于聊天模型,仅支持Chat Completions接口;而你代码中使用的AzureOpenAI类是调用Completions接口,因此触发「该模型不支持completion操作」的报错。

具体修改步骤如下:

1. 替换LLM实例类

将GPT-4的实例从AzureOpenAI改为AzureChatOpenAI,这是LangChain专门为聊天模型设计的类。

首先导入所需类:

from langchain.chat_models import AzureChatOpenAI

然后重构GPT-4的实例代码:

llm_4 = AzureChatOpenAI(
    temperature=0,  # 根据需求调整温度参数
    api_version=os.environ['OPENAI_API_VERSION_4'],
    openai_api_key=os.environ['AZURE_OPENAI_API_KEY_4'],
    deployment_name="gpt4-deploy",
    azure_endpoint=os.environ['AZURE_OPENAI_ENDPOINT_4']
)

2. 适配QA链与聊天模型

确保get_answer函数中的load_qa_chain能正确适配聊天模型。LangChain的load_qa_chain已支持聊天模型,保持原有逻辑即可,若默认分支也需适配聊天模型,建议同步修改:

def get_answer(docs, user_input, llm=None):
    from langchain.chains.question_answering import load_qa_chain
    if llm:
        chain = load_qa_chain(llm, chain_type="stuff")
    else:
        # 默认使用ChatOpenAI而非OpenAI(适配聊天模型接口)
        from langchain.chat_models import ChatOpenAI
        chain = load_qa_chain(ChatOpenAI(), chain_type="stuff")

    with get_openai_callback() as cb:
        response = chain.run(input_documents=docs, question=user_input)
    return response

3. 验证Azure部署与API版本

  • 确认Azure中gpt4-deploy部署的模型是聊天类型(如gpt-4、gpt-4o等),而非completion模型。
  • 检查环境变量OPENAI_API_VERSION_4的值,GPT-4需要的API版本至少为2023-03-15-preview或更高版本。

补充说明

你之前调用GPT-3能正常运行,是因为部署的GPT-3模型属于completion类型(如text-davinci-003),这类模型可兼容AzureOpenAI类的Completions接口;而GPT-4仅支持聊天接口,因此必须使用AzureChatOpenAI类。

内容的提问来源于stack exchange,提问作者zbeedatm

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 21:04:52