100% 本地、由法學碩士產生並驅動的虛擬寵物,具有想法、感受和回饋。喚起您對電子寵物蛋的美好回憶! 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 代碼均位於 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
並將其儲存為.env.local
中的SUPABASE_PRIVATE_KEY
npx inngest-cli@latest dev
確保您的應用程式已啟動並正在運行 - Inngest 函數(用於驅動遊戲狀態)應自動註冊。
現在您已準備好在本地測試該應用程式!為此,只需在專案根目錄下執行npm run dev
並造訪http://localhost:3000
。
現在您已經在本地玩了 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-tamago,並且內建了令牌限制 - 您可以設定用戶可以在應用程式中發送請求的次數(參見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.local4. 現在您已準備好在 Fly.io 上部署所有內容!
fly launch
。這將產生一個fly.toml
,其中包含您需要的所有配置fly scale memory 512
以擴展此應用程式的 Fly VM 記憶體。fly deploy --ha=false
來部署應用程式。 --ha 標誌確保 Fly 只啟動一個實例,該實例包含在免費計劃中。cat .env.local | fly secrets import
將機密上傳到 Fly cat .env.local | fly secrets import
.env.prod
並填寫所有生產環境機密。請記住透過從 Clerk 的生產實例複製機密來更新NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY
和CLERK_SECRET_KEY
- cat .env.prod | fly secrets import
以上傳機密。如果您有疑問,請加入 AI Stack 開發人員並在 #ai-tamago 頻道中找到我。