Una mascota virtual 100% local, generada e impulsada por un LLM con pensamientos, sentimientos y comentarios. ¡Revive tus buenos recuerdos de Tamagotchi! https://ai-tamago.fly.dev/
Todas las animaciones ascii se generan mediante chatgpt (indicaciones incluidas en el repositorio).
¿Tiene preguntas? Únase a los desarrolladores de AI Stack y encuéntreme en el canal #ai-tamago.
¿ Demostración ?
Todo lo anterior, más:
Bifurca el repositorio en tu cuenta de Github y luego ejecuta el siguiente comando para clonar el repositorio:
git clone [email protected]:[YOUR_GITHUB_ACCOUNT_NAME]/AI-tamago.git
cd ai-tamago
npm install
Todo el código tamagotchi del lado del cliente está en Tamagotchi.tsx
Las instrucciones están aquí.
brew install supabase/tap/supabase
Asegúrate de estar en el directorio /ai-tamago
y ejecuta:
supabase start
Consejos: Para ejecutar migraciones o restablecer la base de datos: seed.sql y las migraciones ejecutarán supabase db reset
Nota: Los secretos aquí son para su instancia de supabase local .
cp .env.local.example .env.local
Luego obtenga SUPABASE_PRIVATE_KEY
ejecutando
supabase status
Copie service_role key
y guárdela como SUPABASE_PRIVATE_KEY
en .env.local
npx inngest-cli@latest dev
Asegúrate de que tu aplicación esté en funcionamiento: las funciones Inngest (que se utilizan para controlar el estado del juego) deberían registrarse automáticamente.
¡Ahora estás listo para probar la aplicación localmente! Para hacer esto, simplemente ejecute npm run dev
en la raíz del proyecto y visite http://localhost:3000
.
Ahora que has jugado con el tamago AI localmente, ¡es hora de implementarlo en un lugar más permanente para que puedas acceder a él en cualquier momento!
0. Elija qué modelo desea utilizar en producción
LLM_MODEL=ollama
de .env.local
y complete OPENAI_API_KEY
LLM_MODEL=replicate_llama
y complete REPLICATE_API_TOKEN
performance-4x
con un volumen 100gb
, pero si puede obtener acceso a GPU, serán mucho más rápidas. ¡Únase a la lista de espera de GPU de Fly aquí si aún no tiene acceso! 1. Cambie a la rama deploy
: esta rama incluye todo lo que necesita para implementar una aplicación como esta.
git co deploy
Esta rama contiene una aplicación lista para múltiples inquilinos (gracias a Clerk), lo que significa que cada usuario puede obtener su propio tamago de IA y tiene un límite de tokens incorporado: puede establecer cuántas veces un usuario puede enviar solicitudes en la aplicación. (ver ratelimit.ts
)
2. Mover a Supabase Cloud:
.env.local
SUPABASE_URL
es el valor de la URL en "URL del proyecto"SUPABASE_PRIVATE_KEY
es la clave que comienza con ey
en Claves API del proyectoDesde la raíz de tu proyecto Ai-tamago, ejecuta:
supabase link --project-ref [insert project-id]
supabase migration up
supabase db reset --linked
3. Cree una instancia de Upstash Redis para limitar la velocidad
Esto garantizará que ningún usuario llame a ninguna API demasiadas veces y asuma todas las cargas de trabajo de inferencia. Estamos utilizando el increíble SDK de limitación de velocidad de Upstash aquí.
UPSTASH_REDIS_REST_URL
y UPSTASH_REDIS_REST_TOKEN
) en su .env.local4. ¡Ahora estás listo para implementar todo en Fly.io!
fly launch
en la raíz del proyecto. Esto generará un fly.toml
que incluye todas las configuraciones que necesitará.fly scale memory 512
para ampliar la memoria fly vm para esta aplicación.fly deploy --ha=false
para implementar la aplicación. La bandera --ha garantiza que Fly solo active una instancia, que está incluida en el plan gratuito.cat .env.local | fly secrets import
.env.prod
localmente y complete todos los secretos del entorno de producción. Recuerde actualizar NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY
y CLERK_SECRET_KEY
copiando secretos de la instancia de producción de Clerk: cat .env.prod | fly secrets import
para cargar secretos.Si tiene preguntas, únase a los desarrolladores de AI Stack y encuéntreme en el canal #ai-tamago.