Jupyter Notebookでの作業が一息ついたところで、ふと疑問が浮かんだことはありませんか?「このJupyter Notebook上で、いつもお世話になっているあのChatGPTを使えたら最高なのに」と。しかし、GPT-4は使えるものの、まるで悪戯にもChatGPTは使えないように思えます。しかし、今日はその壁を越える方法をご紹介します。コードは若干地味なものになりますが、最後まで見届けていただければJupyter Notebook上でChatGPTを使うことが出来ます。
必要なモジュールのインストール
まずは、Azure OpenAI ServiceとJupyter Notebookを連携させるために必要なライブラリをインストールし、インポートしましょう。
1 |
!pip install openai |
Azure APIキーの設定
ChatGPTを利用するためには、Azure APIキーが必要です。環境変数に設定し、安全に利用できるようにしましょう。
環境変数に設定をする前提ですが、ここでは .env ファイルを作成する方法で紹介します。各環境に合わせてjupyter notebookを実行するディレクトリに .env ファイルを作成します。
Azure OpenAI Serviceの場合
1 2 3 |
OPENAI_API_BASE=[YOUR RESOURCE NAME] OPENAI_API_KEY=**************** |
OpenAIの場合
1 2 |
OPENAI_API_KEY=sk-************************* |
ライブラリのインポートと認証
必要なライブラリをインポートし、Azure OpenAI Serviceへの認証を行います。
Azure OpenAI Serviceの場合
1 2 3 4 5 6 7 8 9 |
import os import openai from dotenv import load_dotenv OPENAI_API_BASE = os.getenv("OPENAI_API_BASE") openai.api_type = "azure" openai.api_base = f"https://{OPENAI_API_BASE}.openai.azure.com/" openai.api_version = "2023-03-15-preview" openai.api_key = os.environ['AZURE_OPENAI_KEY'] |
OpenAIの場合
1 2 3 4 5 6 |
import os import openai from dotenv import load_dotenv openai.api_key = os.environ['AZURE_OPENAI_KEY'] |
ChatGPT関数の定義
Jupyter Notebook上でChatGPTとやりとりするための関数を定義します。これにより、簡単なプロンプト入力でChatGPTとの対話が可能になります。
Azure OpenAI Serviceの場合
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# 出力用 from IPython.display import display, Markdown def chat(messages): response = openai.ChatCompletion.create( engine="Azure OpenAI StudioでDeployしたDeploy Name", messages=messages ) return response["choices"][0]["message"]["content"] # 会話履歴を初期化 conversation_history = [ {"role": "system", "content": "You are a helpful assistant."} ] |
OpenAIの場合
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
# 出力用 from IPython.display import display, Markdown def chat(messages): response = openai.ChatCompletion.create( model="gpt-4", engine="gpt-4", messages=messages ) return response["choices"][0]["message"]["content"] # 会話履歴を初期化 conversation_history = [ {"role": "system", "content": "You are a helpful assistant."} ] |
ChatGPTっぽい使い方
上記まで行えば、準備は完了です。あとは、ノードブック内で以下を繰り返し実行するだけです。このブロックを複数作ることで、会話として繰り返しすることも可能です。
1 2 3 4 5 |
message = "ここにChatGPTに投げる質問を入力" conversation_history.append({"role": "user", "content": message}) response = chat(conversation_history) display(Markdown(response)) conversation_history.append({"role": "assistant", "content": response}) |
実行すると以下のように display
がMarkdownを綺麗に出力してくれます。
まとめ
これで、あなたもJupyter Notebook上でもChatGPTと仲良くなる準備が整いました。Azure OpenAI Serviceを利用して、Jupyter Notebook上でChatGPTの力を引き出す方法をご紹介しました。これで、手持ちのデータやプロジェクトにChatGPTの知恵を取り入れることができます。さあ、コードと一緒に、ChatGPTとのアドベンチャーに出かけましょう!