100% ローカルで LLM が生成し、思考、感情、フィードバックを備えた仮想ペットです。たまごっちの懐かしい思い出が甦ります! https://ai-tamago.fly.dev/
すべての ASCII アニメーションは、chatgpt を使用して生成されます (リポジトリにプロンプトが含まれています)。
ご質問がありますか? AI Stack 開発者に参加して、#ai-tamago チャンネルで私を見つけてください。
デモ?
上記すべてに加えて:
リポジトリを Github アカウントにフォークし、次のコマンドを実行してリポジトリのクローンを作成します。
git clone [email protected]:[YOUR_GITHUB_ACCOUNT_NAME]/AI-tamago.git
cd ai-tamago
npm install
クライアント側のすべてのたまごっちコードは、Tamagotchi.tsx にあります。
手順はこちらです。
brew install supabase/tap/supabase
/ai-tamago
ディレクトリの下にいることを確認して、次を実行します。
supabase start
ヒント: 移行を実行するかデータベースをリセットするには、seed.sql と移行によりsupabase db reset
が実行されます。
注: ここでのシークレットは、ローカルのsupabase インスタンス用です。
cp .env.local.example .env.local
次に、実行してSUPABASE_PRIVATE_KEY
を取得します。
supabase status
service_role key
をコピーし、 SUPABASE_PRIVATE_KEY
として.env.local
に保存します。
npx inngest-cli@latest dev
アプリが起動して実行中であることを確認してください -- インジェスト関数 (ゲームの状態を制御するために使用される) は自動的に登録されるはずです。
これで、アプリをローカルでテストする準備が整いました。これを行うには、プロジェクト ルートでnpm run dev
実行し、 http://localhost:3000
にアクセスします。
これで、AI たまごをローカルで試しました。今度は、AI たまごをより永続的な場所にデプロイして、いつでもアクセスできるようにします。
0. 本番環境で使用するモデルを選択します
.env.local
からLLM_MODEL=ollama
を削除し、 OPENAI_API_KEY
を入力します。LLM_MODEL=replicate_llama
を設定し、 REPLICATE_API_TOKEN
を入力します。100gb
ボリュームを備えたperformance-4x
Fly VM (CPU) で Ollama を実行することは可能ですが、GPU にアクセスできればはるかに高速になります。まだアクセスしていない場合は、ここから Fly の GPU 待機リストに参加してください。 1. deploy
ブランチに切り替えます -- このブランチには、このようなアプリをデプロイするために必要なものがすべて含まれています。
git co deploy
このブランチには、マルチテナント対応の (Clerk のおかげで) アプリが含まれています。つまり、すべてのユーザーが独自の AI たまごを取得でき、トークン制限が組み込まれています。ユーザーがアプリでリクエストを送信できる回数を設定できます。 ( ratelimit.ts
参照)
2. Supabase クラウドに移動します。
.env.local
にシークレットを入力しますSUPABASE_URL
「プロジェクト URL」の URL 値です。SUPABASE_PRIVATE_KEY
は、プロジェクト API キーの下のey
で始まるキーです。Ai-tamago プロジェクトのルートから、次を実行します。
supabase link --project-ref [insert project-id]
supabase migration up
supabase db reset --linked
3. レート制限用の Upstash Redis インスタンスを作成する
これにより、ユーザーが API を何度も呼び出してすべての推論ワークロードを占有することがなくなります。ここでは Upstash の素晴らしいレート制限 SDK を使用しています。
UPSTASH_REDIS_REST_URL
とUPSTASH_REDIS_REST_TOKEN
) を .env.local にコピーして貼り付けることができます。4. これで、Fly.io にすべてをデプロイする準備が整いました。
fly launch
実行します。これにより、必要なすべての設定を含むfly.toml
が生成されます。fly scale memory 512
実行して、このアプリのフライ VM メモリをスケールアップします。fly deploy --ha=false
実行してアプリをデプロイします。 --ha フラグにより、fly は無料プランに含まれる 1 つのインスタンスのみを起動するようになります。cat .env.local | fly secrets import
実行すると、シークレットを Fly にアップロードできます。 cat .env.local | fly secrets import
.env.prod
をローカルに作成し、実稼働環境のシークレットをすべて入力します。 Clerk の実稼働インスタンス - cat .env.prod | fly secrets import
からシークレットをコピーして、 NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY
とCLERK_SECRET_KEY
忘れずに更新してください。 cat .env.prod | fly secrets import
。質問がある場合は、AI Stack 開発者に参加して #ai-tamago チャンネルで私を見つけてください。