Jupyter Lab の AI 拡張「Jupyter AI」

Jupyter Lab の AI 拡張「Jupyter AI」

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)のインストールから読んで下さい。

OpenAIアカウント作成とAPI Key取得(2023年5月2日現在)

 OpenAIアカウントの作成

OpenAIのアカウントをお持ちでない方は、以下のサイトからアカウント作成してください。

OpenAI platform

 

アカウント作成の手順を簡単に説明します。

OpenAI platformhttps://platform.openai.com/overview)を開き、Sign upをクリックします。

 

Sign upをクリックすると、次のような画面が表示されます。

 

GoogleアカウントMicrosoftアカウントで、アカウント作成できます。

あなた自身の情報を聞かれますので、入力します。

 

認証で利用する電話番号を聞かれますので、あなたの携帯電話番号などを入力します。

 

あなたの携帯番号を入力すると、あなたの電話番号に認証番号がSMS/MMSなどに送られてきます

送られてきた認証番号を入力します。

 

送られてきた認証番号を入力すると、アカウント作成が終了し、トップページに遷移します。

 

 OpenAI API Keyの取得

Jupyter LabChatGPTを使うには、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日現在)でも非常に便利ですので、興味ある方は使ってみてはいかがでしょうか。

回帰問題の予測モデルを Jupyter AI で作ろう!