🦔

Raspberry PiでSlashGPTを動かす

2024/03/16に公開

概要

https://zenn.dev/singularity/articles/slashgpt_tutorial_1

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は標準入力から入力を受け取ってエージェントに問い合わせるボットツールです。
https://zenn.dev/singularity/articles/slashgpt_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を実行するためのものです。変更点は次の通りです:

〜以下省略

シンギュラリティ・ソサエティ

Discussion