はじめに
Pythonを使ってAzureOpenAIのエンドポイントを使う場合、openai
の1.x
以降ではOpenAIのエンドポイントを使う場合と書き方が異なる模様。
参考:https://learn.microsoft.com/ja-jp/azure/ai-services/openai/how-to/switching-endpoints
Embedding
モデルを使う場合も書き方が異なってくるため、LangChain
とLlamaIndex
のそれぞれでどのような方法になるかをまとめる。
いずれも関数として定義し、RAGなどで必要なEmbedding
モデルとして利用できるような形で示す。
環境
openai
: 1.14.1
※1.x
以降
方法
以下、それぞれの定義はこちら。
LangChain
の場合
from langchain_openai import AzureOpenAIEmbedding
def get_embedding():
embedding = AzureOpenAIEmbedding(
openai_api_type='azure',
openai_api_version='{API_VERSION}',
azure_endpoint='{API_ENDPOINT}',
openai_api_key='{API_KEYS}',
model='{EMBEDDING_MODEL}',
azure_deployment='{MODEL_NAME}'
)
return embedding
LlamaIndex
の場合
from llama_index.embeddings.azure_openai import AzureOpenAIEmbedding
def get_embedding():
embedding = AzureOpenAIEmbedding(
model='{EMBEDDING_MODEL}',
deployment_name='{EMBEDDING_DEPLOYMENT_MODEL_NAME}',
api_key='{API_KEY}',
azure_endpoint='{API_ENDPOINT}',
api_version='{API_VERSION}'
)
return embedding
関連記事