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

使用AzureOpenAI+Langchain搭建文档QA程序时GPT-4模型报错问题

解决Azure OpenAI GPT-4模型不支持补全操作的错误

问题场景

使用Azure OpenAI + LangChain搭建文档QA程序时,运行代码触发错误:

openai.error.InvalidRequestError: 指定的gpt-4模型不支持补全操作,请选择其他模型重试。

问题原因

LangChain中的AzureOpenAI类默认调用OpenAI的补全接口(Completion API),但Azure部署的GPT-4模型仅支持聊天接口(Chat Completion API),二者不兼容导致报错。

解决方案

将LLM实例从AzureOpenAI替换为AzureChatOpenAI(针对聊天接口的封装类),并确保导入对应的模块。

修改后的关键代码

  1. 导入AzureChatOpenAI类:
from langchain.chat_models import AzureChatOpenAI
  1. 替换LLM初始化代码:
# 替换原有的AzureOpenAI初始化
llm = AzureChatOpenAI(
    openai_api_key=OPENAI_API_KEY,
    deployment_name=OPENAI_DEPLOYMENT_NAME,
    model_name=MODEL_NAME,
    temperature=0  # 可选:控制输出随机性,0表示更严谨
)
  1. 其余代码保持不变,load_qa_chain可直接兼容AzureChatOpenAI实例,无需额外修改。

完整修改后代码片段(关键部分)

# 导入必要模块
from langchain.chat_models import AzureChatOpenAI
from langchain.text_splitter import CharacterTextSplitter
from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.vectorstores import FAISS
from langchain.chains.question_answering import load_qa_chain
from PyPDF2 import PdfReader

# 初始化聊天模型(替换原AzureOpenAI)
llm = AzureChatOpenAI(
    openai_api_key=OPENAI_API_KEY,
    deployment_name=OPENAI_DEPLOYMENT_NAME,
    model_name=MODEL_NAME,
    temperature=0
)

# PDF读取与文本提取
pdfReader = PdfReader('data\\borders.pdf')
raw_text = ''
for page in pdfReader.pages:
    text = page.extract_text()
    if text:
        raw_text += text

# 文本分割
text_splitter = CharacterTextSplitter(        
    separator = "\n",
    chunk_size = 1000,
    chunk_overlap  = 200,
    length_function = len,
)
pdfTexts = text_splitter.split_text(raw_text)

# 嵌入生成与向量存储
embeddings = OpenAIEmbeddings(openai_api_key=OPENAI_API_KEY, deployment=OPENAI_EMBEDDING_MODEL_NAME, client="azure", chunk_size=1)
pdfDocSearch = FAISS.from_texts(pdfTexts, embeddings)

# 创建QA链并执行查询
chain = load_qa_chain(llm, chain_type="stuff")
inquiry = "Who is the author of this book?"
docs = pdfDocSearch.similarity_search(inquiry)
chain.run(input_documents=docs, question=inquiry)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 13:42:17