データアナリティクス事業本部 インテグレーション部 機械学習チームの鈴木です。
PythonのLangChainのドキュメントで、Azure OpenAI Serviceにデプロイしたモデルを利用するサンプルがあり、自分でも試してみたのでご共有です。
試したサンプル
以下のLangChainライブラリの、Azure OpenAI向けのサンプルをやってみました。
ご紹介する内容としては、環境変数を使った設定方法を、一部修正しました。Azure OpenAI Serviceの利用のための実装は同じです。
クライアント実行環境
実行環境はGoogle Colaboratoryを使いました。ハードウェアアクセラレータ無し、ラインタイム仕様は標準としました。
Pythonのバージョンは以下でした。
!python --version
# Python 3.10.12
また、ライブラリは以下のようにインストールしました。
!pip install python-dotenv
!pip install langchain
!pip install openai
インストールされたライブラリのバージョンは以下でした。
!pip freeze | grep -e "openai" -e "langchain"
# langchain==0.0.209
# langchainplus-sdk==0.0.16
# openai==0.27.8
環境変数の設定
まず、必要な値を.env
ファイルに書き込みます。
# openaiパッケージの設定
!echo 'OPENAI_API_TYPE="azure"' >>.env
!echo 'OPENAI_API_BASE="<エンドポイント>"' >>.env
!echo 'OPENAI_API_VERSION="2023-05-15"' >>.env
!echo 'OPENAI_API_KEY="<トークン>"' >>.env
# 環境変数としてコードで別途利用するもの
!echo 'DEPLOYMENT_NAME="<デプロイ名>"' >>.env
!echo 'MODEL_NAME="<モデル名>"' >>.env
上の4つはドキュメント記載の、openaiパッケージの設定になります。下の2つは、実装中でlangchain.llms.AzureOpenAI
に渡す値を環境変数に切り出したものになります。
今回、OPENAI_API_VERSION
は2023-05-15
としました。APIのバージョンについては、以下のドキュメントを参考にしました。
MODEL_NAME
はサンプルではtext-davinci-002
でしたが、執筆時点で以下のドキュメントで紹介されていたtext-davinci-003
を利用しました。
load_dotenv()
で環境変数を読み込みました。
from dotenv import load_dotenv
load_dotenv()
実行してみる
デプロイ名とモデル名を指定して、実行してみました。サンプル通り、Tell me a joke
と聞いてみます。
# 2023/06/22に以下のドキュメントを参考にしました。
# https://python.langchain.com/docs/modules/model_io/models/llms/integrations/azure_openai_example
# Import Azure OpenAI
from langchain.llms import AzureOpenAI
# Create an instance of Azure OpenAI
# Replace the deployment name with your own
llm = AzureOpenAI(
deployment_name=os.getenv("DEPLOYMENT_NAME"),
model_name=os.getenv("MODEL_NAME")
)
# Run the LLM
llm("Tell me a joke")
以下のように、ジョークを教えてもらえました!
Q: What did the fish say when it hit the wall?
A: Dam!
最後に
今回はPythonのLangChainで、Azure OpenAI Serviceを利用してみました。
Azure OpenAI Service側の環境準備については以下のブログも参考にしてください。