中編でやること
中編はRaspberry PiでWebサーバを立ててGPT-3を動かせるGUIを作るまでです。
ついでにGPT-3.5 Turboがすごいすごいと騒がれているので使ってみようと思います。
というかこれ既にやってる人いるんですよね。
もはや自分でやらずにgithubから拾ってくるだけで終わるっていうね。
まあ勉強ということで。
最終的にこれが出来上がるとラズパイのローカルでこのサイトが動きます。
Step 1: githubからコピる
誰かが作ったデモ用のchatgptが落ちてたので拾います。
保存したいフォルダでコンソールからコマンドを打つだけです。
Step 2: インストールする
昔pythonちょっと触ってたときの古の記憶が蘇ってきました。
package.jsonがあるフォルダでnpm installって打つとなんか勝手にインストールして全てが終わるすごいコマンドがあるんですよ。知らんけど。
Step 3: .envファイルを作る
古の記憶によると.envファイルは動かす人が個人的に使うキーとかパスとかを入れる場所らしいので.envファイルを作って同じフォルダに保存します。
使うのは前編で作ったOpen AIのAPIキーです。
Step 4: 動かす
古の記憶によるとpackage.jsonがあるフォルダでnpm run startって打てばいいらしいので打ってみたら動きました。どういうコマンドなのかは特に理解していなかった気がする。
とりあえずこれでhttp://localhost:3000/にラズパイからアクセスするとWeb画面にアクセスすることができました。これでもうgpt-3.5-turbo使えます。すごい!簡単!
Step 5:Webアクセスできるようにする
現状ラズパイからじゃないとアクセスできません。どうせなら自分のPCからアクセスしたい。
このプログラムはChatGPTをAstroという謎のWebフレームワークで動かしているみたいです。
ということでAstroのドキュメントを読んでネットワーク上で動かすやり方を調べます。
調べたらastro.config.mjsというファイルをいじらないといけないようです。
いじくりまわしていつの間にかできてたんですが、なかったら多分npm run-script buildとか打てば出来ると思います。
import { defineConfig } from 'astro/config'
import vercel from '@astrojs/vercel/edge'
import unocss from 'unocss/astro'
import { presetUno } from 'unocss'
import presetAttributify from '@unocss/preset-attributify'
import solidJs from '@astrojs/solid-js'
// https://astro.build/config
export default defineConfig({
integrations: [
unocss({
presets: [presetAttributify(), presetUno()]
}),
solidJs()
],
output: 'server',
adapter: vercel(),
server: {port:1234, host:true}
});
server: {port:1234, host:true}
を入れたらラズパイのIP:1234でアクセスできるようになりました。
あとはWebUIを魔改造したらオリジナルのChatGPTの完成。
軽く話してみた感じ前編でおにぎり連呼してたダヴィンチくんとは別物です。
GPT-3.5 Turboくんは「ん」で終わる答えに対して「んぱ」で返してきました。
ちなみにAPIの利用は無料ではありません。最初に18ドル分のトライアルがありますが、それを使い切ると有料になるのでローカル環境で遊びすぎると使えなくなります。
https://platform.openai.com/account/usageにアクセスすると残りの使用できる量がわかるので参考にしてください。
次回はチャットボットとの連携をしてみたいと思います。
以上
圧倒的成長。