ChatGPT は優れたプログラマーでもあります。
そのため、Pythonのプログラミングするとき、ChatGPT に質問した体験をした方も多いことでしょう。
例えば、Jupyter Lab でプログラミングをしながら、ChatGPT に質問し、みたいな感じです。
いったりきたりする手間が、ちょと不便です。
ChatGPT 機能が Jupyter Lab に追加されると便利かもしれません。
Jupyter AIです。
Jupyter AI は、Jupyter Lab にChatGPT の機能を追加するだけなく、ChatGPT 以外の生成モデル プロバイダーもサポートしています。
今回は、今現在(2023年6月26日現在)の「Jupyter Lab の AI 拡張『Jupyter AI』」の紹介を簡単にします。
ChatGPT3.5に絞って、非常に簡単に紹介します。
まだOpenAIのアカウントを作成していない方は、当記事を最初から読んでアカウントを作成しOpenAI API Keyを取得しておいてください。
すでにアカウントがありOpenAI API Keyを取得している方は、Jupyter AI(jupyter_ai)のインストールから読んで下さい。
Contents
OpenAIアカウント作成とAPI Key取得(2023年5月2日現在)
OpenAIアカウントの作成
OpenAIのアカウントをお持ちでない方は、以下のサイトからアカウント作成してください。
OpenAI platform
アカウント作成の手順を簡単に説明します。
OpenAI platform(https://platform.openai.com/overview)を開き、Sign upをクリックします。
Sign upをクリックすると、次のような画面が表示されます。
GoogleアカウントやMicrosoftアカウントで、アカウント作成できます。
あなた自身の情報を聞かれますので、入力します。
認証で利用する電話番号を聞かれますので、あなたの携帯電話番号などを入力します。
あなたの携帯番号を入力すると、あなたの電話番号に認証番号がSMS/MMSなどに送られてきます。
送られてきた認証番号を入力します。
送られてきた認証番号を入力すると、アカウント作成が終了し、トップページに遷移します。
OpenAI API Keyの取得
Jupyter LabでChatGPTを使うには、OpenAI API Keyが必要です。
OpenAI API Keyを作成するには、右上のユーザ名をクリックしView API Keysを選択します。
次のような画面が表示されます。Create new secret keyをクリックし、OpenAI API Keyを作ります。
Create new secret keyをクリックすると、OpenAI API Keyの名前(Name)を促されます。
何のために利用するのか分かるように名前(Name)を入力し、Create secret keyをクリックすると、OpenAI API Keyが作成されます。
OpenAI API Keyは、取得時にしか表示されないので、テキストコピーなどし保存しておいてください。
OpenAI API Keyが作成されると、元の画面に戻ります。作成されたことが画面から確認できるかと思います。
PythonでOpenAIモデルを使用する準備
Pythonのopenaiライブラリーのインストール
ChatGPT などのOpenAIのモデルを使用するときも、Pythonのopenaiライブラリーをインストールし、OpenAI環境変数を設定をする必要があります。
では、openaiをインストールします。
以下、コードです。
pip install openai
OpenAI環境変数の設定
ChatGPT などのOpenAIのモデルを使用するとき、以下のOpenAI環境変数の設定が必要になります。
以下、コードです。
import os os.environ["OPENAI_API_KEY"]="あなたのOpenAI API Key"
OpenAI環境変数の設定を忘れる人が多い印象がありますので、ノートブックの最初のセルに記載し実行するぐらいが、ちょうどいいのかもしれません。
Jupyter AI(jupyter_ai)のインストール
jupyter_ai をインストールします。
以下、コードです。
pip install jupyter_ai
インストールが終了したら、Jupyter Labを起動します。
以下は、コマンドプロンプト(ターミナル)上でJupyter Labを起動する場合です。
jupyter lab
起動すると、Jupyter Labの左サイドパネルに新しい「chatアイコン」が表示されます。
Jupyter AIは、会話形式のChatGPT 以外の幅広いモデルプロバイダーとモデルをサポートしています。
以下は、今現在(2023年6月26日現在)対応しているモデルプロバイダー一覧(https://jupyter-ai.readthedocs.io/en/latest/users/index.html#model-providers)です。
特定のプロバイダでJupyter AIを使用するには、そのPythonパッケージをインストールし、APIキー(またはその他の認証情報)を環境またはチャットインターフェースに設定する必要があります。
例えば、ChatGPTを使用するには、PythonでOpenAIモデルを使用する準備で紹介したPythonのopenaiライブラリーをインストールし、OpenAI環境変数を設定をする必要があります。
以後、Pythonのopenaiライブラリーがインストールされており、OpenAI環境変数の設定をなされていることを前提に、話しを進めます。
Jupyter AI(ChatGPT3.5)を使う
言語モデルなどの設定
「Start Here」をクリックします。
ここで、言語モデルを選択したりAPIキーを入力したりします。
ChatGPT3.5をJupyter Labに設定します。
- Language model:OpenAI::gpt-3.5-turbo
- Embedding model:OpenAI::text-embedding-ada-002
- API Keys:あなたのOpenAI API Key
「Save Change」で設定を保存した後、左上の「戻る」ボタン(←)をクリックしてください。チャットが開始できます。
以下のような画面が表示されたら準備はOKです。再設定するときは、右上(下図の「Lancher」の左側)の「歯車マーク」ボタン(⚙)をクリックすると、先程の設定画面に戻ります。
先ず、ノートブックのセルで以下のコードを記述し実行し、jupyter_aiエクステンションをロードする必要があります。
%load_ext jupyter_ai
では、利用可能なプロバイダーとモデルをリストアップしてみましょう。
以下、コードです。
%ai list
以下、実行結果です。
上手く行っていれば、ProviderがOpenAIの行のSet列に「☑」(チェックマーク)が付いているはずです。
上手くいいていることを前提に、話しを進めます。
利用可能なプロバイダーとモデルのリストの下に、次のような一覧が表示されていると思います。
今回は「openai-chat:gpt-3.5-turbo」を設定しているので、「chatgpt」を名前(Name)に指定して使います。
セル内で使用
ということで、aiマジックコマンド(%%ai)にchatgptを指定し、コードを生成してみましょう。
以下、コードです。
%%ai chatgpt 2つの整数の最大公約数を計算する関数と その関数の実行例
以下、実行結果です。
このように、aiマジックコマンド(%%ai)にchatgptを指定し、その下にプロンプトを記載します。
よく見ると分かりますが、%%aiコマンドの出力はマークダウン形式です。デフォルトがマークダウン形式だからです。
%%aiコマンドの引数「-f」を使用することで、出力形式をコード(code)、画像(image)、マークダウン(markdown)、数学(math)、HTML(HTML)、JSON(JSON)、テキスト(text)などに変更できます。
では、出力形式をコードに設定して実行してみます。
以下、コードです。
%%ai chatgpt -f code 2つの整数の最大公約数を計算する関数と その関数の実行例
以下、実行結果です。
コード記載用のセルが新たに作られ、そこにコードが入力されています。
セル番号を指定し質問すると、そのセル番号に関する説明をしてくれます。
例えば、次のような関数を作ったとします。
# 飽和モデル(関数)の定義 def Saturation(X,K,b,c,m): return K/(1+b*np.exp(-c*(X-m)))
コード番号は[5]とします。
このコードの説明をしてもらいましょう。
以下、コードです。
%%ai chatgpt 次のPythonコードについて説明 {In[5]}
以下、実行結果です。
コーディングをしているとエラーを起こすことがあります。
例えば、以下のコードを実行し、あえてエラーを出します。
以下、コードです。
# 飽和モデル(関数)の例 exp_dat = pd.DataFrame(range(100)) #入力データ exp_sat = pd.DataFrame(index=exp_dat.index) exp_sat['K=1 b=1 c=1 m=50'] = Saturation(exp_dat,1,1,1,50) exp_sat['K=1 b=1 c=0.1 m=50'] = Saturation(exp_dat,1,1,0.1,50) exp_sat['K=1 b=2 c=0.1 m=50'] = Saturation(exp_dat,1,2,0.1,50) exp_sat['K=1 b=1 c=0.01 m=50'] = Saturation(exp_dat,1,1,0.01,50) exp_sat.plot() #グラフ
以下、実行結果です。
コード番号は[6]です。
例えば、コード番号[6]のエラーについて聞いてみます。
以下、コードです。
%%ai chatgpt 次のPythonエラーについて説明 {Err[6]}
以下、実行結果です。
チャットインターフェースの使用
サイドパネルにチャットインターフェイス(プロンプトを入力する部分)があります。
チャットインターフェイス(プロンプトを入力する部分)は、通常のChatGPTと使い方は同じで何か質問をします。
以下は、チャットインターフェイス(プロンプトを入力する部分)に、「pandasとは?」と質問し実行した結果です。
このチャット機能はJupyter Labと連携していることで通常のChatGPT以上のことができます。
例えば、ノートブックの一部分を選択し「Include selection」にチェックを入れます。
チャットインターフェイス(プロンプトを入力する部分)に「このコードは何をしますか?」と記載し聞いてみます。
このチャット機能は、依頼したノートブック(ipynbファイル)そのものを生成することができます。
/generate
で始まるメッセージを送るだけです。
例えば、Scikit-learnの使い方を知るためのデモを行うノートブック(ipynbファイル)を作ってもらいます。
以下、プロンプト部分に記載する文章です。
/generate Scikit-learnライブラリの使い方のデモ
しばらくすると、以下のような「ノートブックを生成し〇〇に保存した……」( I have created your notebook and saved it to the location……)というメッセージが表示されます。
ノートブック(ipynbファイル)が生成されたフォルダに移動し、そのノートブック(ipynbファイル)を立ち上げることで、どのようなノートブック(ipynbファイル)が生成されたのかが分かります。
以下、生成されたノートブック(ipynbファイル)です。
このように、JupyterAIはすばらしい機能を有しています。
今回のまとめ
今回は、今現在(2023年6月26日現在)の「Jupyter Lab の AI 拡張『Jupyter AI』」の紹介を簡単にしました。
ChatGPT は優れたプログラマーでもあります。
この ChatGPT を Jupyter Lab に追加する機能が Jupyter AIです。
現段階(2023年6月26日現在)でも非常に便利ですので、興味ある方は使ってみてはいかがでしょうか。