はじめに
Pythonを使って、AzureOpenAIのエンドポイントを使う場合、openaiの0.28.1では、OpenAIのエンドポイントと同じ書き方だったが、1.x以降は若干異なるとのこと。
参照:https://learn.microsoft.com/ja-jp/azure/ai-services/openai/how-to/switching-endpoints
LangChainまたはLlamaIndexのフレームワークを利用する場合も変わってくるため、方法をまとめる。
いずれも関数として定義し、RAGなどで必要なLLMモデルとして利用できる形で示す。
環境
openai: 1.14.1 ※1.x以降
方法
LangChainの場合
from langchain_openai import AzureChatOpenAI
def get_llm(temperature=0):
llm = AzureChatOpenAI(
api_version='{API_VERSION}',
azure_endpoint='{API_ENDPOINT}',
api_key='{API_KEYS}',
azure_deployment='{OPENAI_MODEL_NAME}'
temperature=temperature
)
return llm
LlamaIndexの場合
from llama_index.llms.azure_openai import AzureOpenAI
def get_llm(temperature=0):
llm = AzureOpenAI(
model='{GPT_MODEL}',
deployment_name='{GPT_DEPLOYED_MODEL_NAME}',
api_key='{API_KEYS}',
azure_endpoint='{API_ENDPOINT}',
api_version='{API_VERSION}',
temperature=temperature
)
return llm
引数のdeployment_nameには以下いずれかのモデル名をいれる必要がある。
デプロイしたモデルに合わせて設定すること。
`deployment_name`の候補
gpt-4, gpt-4-32k, gpt-4-1106-preview, gpt-4-0125-preview, gpt-4-turbo-preview, gpt-4-vision-preview, gpt-4-0613, gpt-4-32k-0613, gpt-4-0314, gpt-4-32k-0314, gpt-3.5-turbo, gpt-3.5-turbo-16k, gpt-3.5-turbo-0125, gpt-3.5-turbo-1106, gpt-3.5-turbo-0613, gpt-3.5-turbo-16k-0613, gpt-3.5-turbo-0301, text-davinci-003, text-davinci-002, gpt-3.5-turbo-instruct, text-ada-001, text-babbage-001, text-curie-001, ada, babbage, curie, davinci, gpt-35-turbo-16k, gpt-35-turbo, gpt-35-turbo-0125, gpt-35-turbo-1106, gpt-35-turbo-0613, gpt-35-turbo-16k-0613いずれもtemperatureは任意。
関連記事