Raspberry PiでSlashGPTを動かす
概要
SlashGPT は中島聡が開発した ChatGPT などの LLMエージェントを手軽に開発するためのツールです。SlashGPT を使えば、json ファイルを記述するだけで ChatGPT を使ったvLLMエージェントやチャットアプリを手軽に、簡単につくることができます。
出来上がった json ファイル(これからはマニフェストと呼びます)は、簡単に共有することができます。マニフェストファイルは他の人と共有する他、 SlashGPT をライブラリとして利用する場合にエージェントの設定としてそのまま使うことが可能です。
この記事では、SlashGPTをRaspberry Piで動かす方法を紹介します。
Raspberry Piについて
Raspberry Piは、言わずと知れた英Raspberry Pi 財団の小型のコンピューターの総称です。今回はRaspberry pi 4を使っています。最新のOS(bookworm)をインストールしています。カーネルのバージョンは6.1です。
この記事ではOSのインストール、設定方法は省略します。
Raspberry Pi 4のスペック
CPU | Broadcom BCM2711, Quad core Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz |
カーネルバージョン | 6.1 |
準備
Raspberry piにSSHでログインします。xxxx.localはホスト名です。
ssh xxxx.local
このようになります。
pi@xxxx:~ $
ディレクトリを作ります。
mkdir ~/SlashGPT
cd ~/SlashGPT
仮想環境
pipでインストールしますが、PEP668問題を避けるため .venv を使用してインストールします。
PEP668問題の回避策は複数ありますが、推奨されている仮想環境を使用する方法を採用します。
python3 -m venv --system-site-packages --clear --prompt 'SlashGPT' \
--upgrade-deps $(pwd)/.venv
source .venv/bin/activate
このようになります。
(SlashGPT) pi@xxxx:~/SlashGPT $
仮想環境を出る場合は以下のようにします。
deactivate
2回目のログイン以降は以下のようにします。
cd ~/SlashGPT
source .venv/bin/activate
SlashGPTのインストール
参考記事を参考にインストールします。
git cloneします。
git clone https://github.com/snakajima/SlashGPT.git
pipを使用してslashgptをインストールします。
pip install -r requirements.txt
slashbotを含むバージョンをインストールしたい場合。
pip install slashgpt==0.0.8
OpenAI等のAPIキーの設定
以下のコマンドで.envファイルを作成して、OPENAI_API_KEYを設定する。
(xxxxxxxxxxxxはOpenAIのAPIキー)
touch .env
echo "OPENAI_API_KEY=xxxxxxxxxxxx" >> .env
適宜、.env.examleを参考に必要なキーを設定する。
SlashGPTの起動
SlashGPTを起動してみましょう。
(SlashGPT) pi@xxxx:~/SlashGPT $ ./SlashGPT.py
no gql. pip install gql
no jupyter_runtime related module. pip install codeboxapi IPython matplotlib numpy pydantic==1.10
no replicate. pip install replicate
no db_chroma related module. pip install chromadb numpy
no db_pgvector related module. pip install psycopg2-binary pgvector numpy
no pinecone. pip install pinecone
no google-generativeai. pip install google-generativeai
no gtts. pip install gtts if you need
no playsound. pip install playsound if you need
System Slashes: /switch, /bye, /new, /prompt, /sample, /help, ...
Activating: Main Dispatcher
Agent(dispatcher): I am a dispatcher agent. I will find the right agent for your question, and let it answer.
You(dispatcher):
最初に
no gql. pip install gql
のように必要なモジュールはpipでインストールしてねという表示がされます。
SlashGPTの動作確認
サンプルを動かしてみましょう。
You(dispatcher): /sample
You(dispatcher): Who is the CEO of SpaceX?
Activating: SpaceX Information
no GraphQL module. pip install gql
You(spacex):
gqlをインストールせよと言っています。
表示された通り、'pip install gql'としましょう。
gqlをインストール後、もう一度サンプルを実行します。
You(dispatcher): /sample
You(dispatcher): Who is the CEO of SpaceX?
Activating: SpaceX Information
function(call_graphQL): {"company": {"ceo": "Elon Musk"}}
Agent(spacex): The CEO of SpaceX is Elon Musk.
You(spacex):
もちろん、サンプルを使わず、gqlが不要であればインストールする必要はありません。
slashbotの動作確認
SlashBotは標準入力から入力を受け取ってエージェントに問い合わせるボットツールです。
以下のようにコードレビューもできます。git diff HEAD^ | slashbot codereview
(SlashGPT) pi@xxxx:~/SlashGPT $ git diff HEAD^ | slashbot codereview
no gql. pip install gql
no jupyter_runtime related module. pip install codeboxapi IPython matplotlib numpy pydantic==1.10
no replicate. pip install replicate
no db_chroma related module. pip install chromadb numpy
no db_pgvector related module. pip install psycopg2-binary pgvector numpy
no pinecone. pip install pinecone
no google-generativeai. pip install google-generativeai
no gtts. pip install gtts if you need
playsound is relying on another python subprocess. Please use pip install pygobject
if you want playsound to run more efficiently.
Agent(codereview): このコードは、SlashGPTのbotを実行するためのものです。変更点は次の通りです:
〜以下省略
人工知能を活用したアプリケーションやサービスを活用し、内発的動機付けで行動するエンジニア、起業家、社会起業家をサポートするコミュニティーです。 singularitysociety.org
Discussion