Azure OpenAI Serviceのgpt-3.5-turboとLangChainのRetrievalQAを使ってチャットBOTを作成しようとしたところ、以下のエラーが発生しました。
openai.error.InvalidRequestError: The API deployment for this resource does not exist. If you created the deployment within the last 5 minutes, please wait a moment and try again.
LangChainバージョンは 0.0.268 です。
結果として、コードを修正して以下のとおりとしたところ、エラーが解消されました。
import os
from langchain.chat_models import AzureChatOpenAI
from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.chains import RetrievalQA
from langchain.vectorstores import FAISS
from dotenv import load_dotenv
load_dotenv()
OPENAI_API_DEPLOY = os.getenv('OPENAI_API_DEPLOY')
OPENAI_API_DEPLOY_EMBEDDING = os.getenv('OPENAI_API_DEPLOY_EMBEDDING')
FAISS_PATH= '{path}'
MODEL_NAME = 'gpt-3.5-turbo'
embeddings = OpenAIEmbeddings(deployment=OPENAI_API_DEPLOY_EMBEDDING)
db = FAISS.load_local(FAISS_PATH, embeddings)
retriever = db.as_retriever()
llm = AzureChatOpenAI(model_name=MODEL_NAME,
temperature=0,
deployment_name=OPENAI_API_DEPLOY
)
chain = RetrievalQA.from_llm(llm=llm, retriever=retriever)
# 以下省略
ポイントは、デプロイを指定する変数名で、OpenAIEmbeddingsでは”deployment”、AzureChatOpenAIでは”deployment_name”である点です。どちらも”deployment_name”で指定してており、上記のエラーが発生していました。
内部的にデプロイが混同されていたようです。