Hewan peliharaan virtual yang 100% lokal, dibuat dan digerakkan oleh LLM dengan pikiran, perasaan, dan umpan balik. Bangkitkan kembali kenangan indah Anda tentang Tamagotchi! https://ai-tamago.fly.dev/
Semua animasi ascii dihasilkan menggunakan chatgpt (termasuk petunjuk di repo).
Ada pertanyaan? Bergabunglah dengan pengembang AI Stack dan temukan saya di saluran #ai-tamago.
Demo ?
Semua hal di atas, ditambah:
Fork repo ke akun Github Anda, lalu jalankan perintah berikut untuk mengkloning repo:
git clone [email protected]:[YOUR_GITHUB_ACCOUNT_NAME]/AI-tamago.git
cd ai-tamago
npm install
Semua kode tamagotchi sisi klien ada di Tamagotchi.tsx
Petunjuknya ada di sini.
brew install supabase/tap/supabase
Pastikan Anda berada di bawah direktori /ai-tamago
dan jalankan:
supabase start
Tips: Untuk menjalankan migrasi atau mereset database -- seed.sql dan migrasi akan menjalankan supabase db reset
Catatan: Rahasia di sini adalah untuk instance supabase lokal Anda
cp .env.local.example .env.local
Kemudian dapatkan SUPABASE_PRIVATE_KEY
dengan menjalankan
supabase status
Salin service_role key
dan simpan sebagai SUPABASE_PRIVATE_KEY
di .env.local
npx inngest-cli@latest dev
Pastikan aplikasi Anda aktif dan berjalan -- Fungsi Inngest (yang digunakan untuk menggerakkan status game) akan terdaftar secara otomatis.
Sekarang Anda siap menguji aplikasi secara lokal! Untuk melakukan ini, cukup jalankan npm run dev
di bawah root proyek dan kunjungi http://localhost:3000
.
Sekarang Anda telah bermain dengan AI tamago secara lokal -- saatnya untuk menyebarkannya di tempat yang lebih permanen sehingga Anda dapat mengaksesnya kapan saja!
0. Pilih model mana yang ingin Anda gunakan dalam produksi
LLM_MODEL=ollama
dari .env.local
dan isi OPENAI_API_KEY
LLM_MODEL=replicate_llama
dan isi REPLICATE_API_TOKEN
performance-4x
dengan volume 100gb
, tetapi jika Anda bisa mendapatkan akses ke GPU, mereka jauh lebih cepat. Bergabunglah dengan daftar tunggu GPU Fly di sini jika Anda belum memiliki akses! 1. Beralih ke cabang deploy
-- cabang ini mencakup semua yang Anda perlukan untuk menerapkan aplikasi seperti ini.
git co deploy
Cabang ini berisi aplikasi multi-tenancy-ready (berkat Clerk), yang berarti setiap pengguna bisa mendapatkan AI-tamago mereka sendiri, dan memiliki batas token bawaan -- Anda dapat mengatur berapa kali pengguna dapat mengirim permintaan di aplikasi (lihat ratelimit.ts
)
2. Pindah ke Supabase Cloud:
.env.local
SUPABASE_URL
adalah nilai URL di bawah "URL Proyek"SUPABASE_PRIVATE_KEY
adalah kunci yang dimulai dengan ey
di bawah Kunci API ProyekDari root proyek Ai-tamago Anda, jalankan:
supabase link --project-ref [insert project-id]
supabase migration up
supabase db reset --linked
3. Buat instance Upstash Redis untuk pembatasan tarif
Hal ini akan memastikan tidak ada pengguna yang terlalu sering memanggil API apa pun dan mengambil semua beban kerja inferensi. Kami menggunakan SDK pembatas tarif Upstash yang luar biasa di sini.
UPSTASH_REDIS_REST_URL
dan UPSTASH_REDIS_REST_TOKEN
) ke .env.local Anda4. Sekarang Anda siap menerapkan semuanya di Fly.io!
fly launch
di bawah root proyek. Ini akan menghasilkan fly.toml
yang mencakup semua konfigurasi yang Anda perlukanfly scale memory 512
untuk meningkatkan memori fly vm untuk aplikasi ini.fly deploy --ha=false
untuk menerapkan aplikasi. Bendera --ha memastikan fly hanya memutar satu instance, yang termasuk dalam paket gratis.cat .env.local | fly secrets import
.env.prod
secara lokal dan isi semua rahasia lingkungan produksi. Ingatlah untuk memperbarui NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY
dan CLERK_SECRET_KEY
dengan menyalin rahasia dari instance produksi Clerk - cat .env.prod | fly secrets import
untuk mengunggah rahasia.Jika Anda memiliki pertanyaan, bergabunglah dengan AI Stack devs dan temukan saya di saluran #ai-tamago.