langchainでazure openai embeddingsを使おうとしたけどドハマりした件。
公式リファレンスのソース貼り付けてもエラーになって困ってました。
import os
from dotenv import load_dotenv
from langchain_openai import AzureOpenAIEmbeddings
load_dotenv()
os.environ["AZURE_OPENAI_API_KEY"] = os.getenv("AZURE_OPENAI_API_KEY")
os.environ["AZURE_OPENAI_ENDPOINT"] = os.getenv("AZURE_OPENAI_ENDPOINT")
os.environ["AZURE_OPENAI_API_VERSION"] = os.getenv("AZURE_OPENAI_API_VERSION")
embeddings = AzureOpenAIEmbeddings(model="text-embedding-3-large")
エラー:
pydantic_core._pydantic_core.ValidationError: 1 validation error for AzureOpenAIEmbeddings
Value error, As of openai>=1.0.0, Azure endpoints should be specified via the `azure_endpoint` param not `openai_api_base` (or alias `base_url`). [type=value_error, input_value={'model': 'text-embedding...ge', 'model_kwargs': {}}, input_type=dict]
要するにopenaiが1.0以上ならopenai_api_baseが廃止されましたよーってメッセージ。
でもどこにも定義してないが???
と思ってもう色々調べまくったら答えは環境変数にありました。
(.venv) C:\Users\user\Python\langchain>set
ALLUSERSPROFILE=C:\ProgramData
(中略)
OPENAI_API_BASE=https://<your-endpoint>.openai.azure.com/
OPENAI_API_KEY=apikey
OPENAI_API_VERSION=2024-02-01
OPENAI_EMBEDDINGS_DEPLOYMENT_NAME=text-embedding-ada-002
はい、残骸が残ってましたね…。
削除したら治りました。