📍

SlashGPT + Jupyter

2023/09/05に公開

SlashGPTとは

SlashGPTは中島聡が開発したChatGPTなどのLLMエージェントを手軽に開発するためのツールです。SlashGPTを使えば、jsonファイルを記述するだけでChatGPTを使ったLLMエージェントやチャットアプリを手軽に、簡単につくることができます。
参照:
https://github.com/snakajima/SlashGPT
https://zenn.dev/singularity/articles/slashgpt_tutorial_1

SlashGPT jupyter agent

上記リンクを参考に インストール後コンソールから下記のように/jupyterと実行すると、
Jupyter Agentに切り替えられます

 SlashGPT % python ./SlashGPT.py
System Slashes: /switch, /bye, /new, /prompt, /sample, /help, ...
Activating: Main Dispatcher
Dispatcher: I am a dispatcher agent. I will find the right agent for your question, and let it answer.

You(dispatcher): /jupyter
Activating: Jupyter Notebook with GPT3.5
Created a notebook: notebook1

ここで 下記のように 入力すると 以下のような画像がポップアップ表示されます。

You(jupyter): run_python_code なにか面白いグラフ

更に 地図検索と連携したAgent jupyter_map に切り替え,以下のようにプロンプトを入力します

You(jupyter): /jupyter_map
Activating: Jupyter Notebook with GPT3.5
Created a notebook: notebook2
You(jupyter_map): 渋谷駅周辺のスタバを見つけて、地図上に表示して。
{
  "name": "run_python_code",
  "arguments": "{\n  \"code\": [\n    \"import folium\",\n    \"import requests\",\n    \"json_data = requests.get('https://overpass-api.de/api/interpreter?data=[out:json];node(around:1000,35.6581,139.7017)[\\\"name\\\"~\\\"\u30b9\u30bf\u30fc\u30d0\u30c3\u30af\u30b9|\u30b9\u30bf\u30d0\\\"];out;').json()\",\n    \"map_shibuya = folium.Map(location=[35.6581, 139.7017], zoom_start=15)\",\n    \"for node in json_data['elements']:\",\n    \"    lat = node['lat']\",\n    \"    lon = node['lon']\",\n    \"    name = node['tags']['name']\",\n    \"    folium.Marker([lat, lon], popup=name).add_to(map_shibuya)\",\n    \"map_shibuya\"\n  ],\n  \"query\": \"Find Starbucks near Shibuya Station\"\n}"
 ...
ModuleNotFoundError: No module named 'folium'
Jupyter: It seems that the `folium` library is not installed. Let me install it for you.
...
Jupyter: Here is the map displaying Starbucks locations near Shibuya Station:
![Map](https://i.imgur.com/7X3X3X0.png)

驚くべきは、 APIで情報を取得するだけでなく、jupyter 環境にfolium libがない場合インストールも自動で実行してくれます。

他に、千葉駅周辺のトイレを見つけて、地図上に表示して などいくつかパターンをかえても実行されます。
さて、上記で生成された地図はどのように確認すればよいでしょうか?
jupyter notebook(ipynb) 自体は output/notebooks/notebook{N}.ipynb という名前で保存されています。

Viewerとしては、下記 JupyterLabを使うか、VSCを使うか お好みの方法で確認できます。

Console + jupyter labでの確認方法

SlashGPT のrequirement.txtだと、jupyter-coreしかインストールされていないので、

  1. jupyter-lab をインストールします
% pip install jupyterlab
% jupyter lab
  1. output/notebooks/notebook{N}.ipynb を開きます
  2. python kernel を選択

そのままでは地図は表示されていません

  1. python codeを 選択して ctrl+Enterで実行されます

    (Ctrl+Enter のかわりに画面上部の再生ボタンでも同様です)

VisualStudioCodeでの確認方法

  1. vsc に Microsoft 謹製の python , Jupyter pluginをインストール
  2. 上記 output/notebooks/notebook{N}.ipynb
  3. vsc コマンドパレットの[Python: インタープリターを選択]で、SlashGPTと同じpython環境を選択
  4. その後、該当のpython codeを選択してからCtrl+Enterで実行されます
シンギュラリティ・ソサエティ

Discussion