Um animal de estimação virtual 100% local, gerado e conduzido por LLM, com pensamentos, sentimentos e feedback. Reviva suas boas lembranças do Tamagotchi! https://ai-tamago.fly.dev/
Todas as animações ascii são geradas usando chatgpt (prompts incluídos no repositório).
Tem dúvidas? Junte-se aos desenvolvedores do AI Stack e me encontre no canal #ai-tamago.
Demonstração ?
Todos os itens acima, mais:
Bifurque o repositório para sua conta do Github e execute o seguinte comando para clonar o repositório:
git clone [email protected]:[YOUR_GITHUB_ACCOUNT_NAME]/AI-tamago.git
cd ai-tamago
npm install
Todo o código tamagotchi do lado do cliente está em Tamagotchi.tsx
As instruções estão aqui.
brew install supabase/tap/supabase
Certifique-se de estar no diretório /ai-tamago
e execute:
supabase start
Dicas: Para executar migrações ou redefinir o banco de dados - seed.sql e as migrações executarão supabase db reset
Nota: Os segredos aqui são para sua instância local da supabase
cp .env.local.example .env.local
Então obtenha SUPABASE_PRIVATE_KEY
executando
supabase status
Copie service_role key
e salve-a como SUPABASE_PRIVATE_KEY
em .env.local
npx inngest-cli@latest dev
Certifique-se de que seu aplicativo esteja instalado e funcionando – as funções do Inngest (que são usadas para controlar o estado do jogo) devem ser registradas automaticamente.
Agora você está pronto para testar o aplicativo localmente! Para fazer isso, basta executar npm run dev
na raiz do projeto e visitar http://localhost:3000
.
Agora que você jogou com o AI tamago localmente – é hora de implantá-lo em algum lugar mais permanente para que você possa acessá-lo a qualquer momento!
0. Escolha qual modelo deseja usar na produção
LLM_MODEL=ollama
de .env.local
e preencha OPENAI_API_KEY
LLM_MODEL=replicate_llama
e preencha REPLICATE_API_TOKEN
performance-4x
com volume 100gb
, mas se você conseguir acesso às GPUs, elas serão muito mais rápidas. Junte-se à lista de espera de GPU da Fly aqui se você ainda não tem acesso! 1. Mude para o branch deploy
– esse branch inclui tudo que você precisa para implantar um aplicativo como este.
git co deploy
Este branch contém um aplicativo pronto para multilocação (graças ao Clerk), o que significa que cada usuário pode obter seu próprio AI-tamago e tem limite de token integrado - você pode definir quantas vezes um usuário pode enviar solicitações no aplicativo (veja ratelimit.ts
)
2. Mude para Supabase Cloud:
.env.local
SUPABASE_URL
é o valor do URL em "URL do projeto"SUPABASE_PRIVATE_KEY
é a chave que começa com ey
nas chaves da API do projetoNa raiz do seu projeto Ai-tamago, execute:
supabase link --project-ref [insert project-id]
supabase migration up
supabase db reset --linked
3. Crie uma instância Upstash Redis para limitação de taxa
Isso garantirá que nenhum usuário chame qualquer API muitas vezes e ocupe todas as cargas de trabalho de inferência. Estamos usando o incrível SDK de limitação de taxa do Upstash aqui.
UPSTASH_REDIS_REST_URL
e UPSTASH_REDIS_REST_TOKEN
) em seu .env.local4. Agora você está pronto para implantar tudo no Fly.io!
fly launch
na raiz do projeto. Isso irá gerar um fly.toml
que inclui todas as configurações que você precisafly scale memory 512
para aumentar a memória fly vm para este aplicativo.fly deploy --ha=false
para implantar o aplicativo. O sinalizador --ha garante que fly acione apenas uma instância, que está incluída no plano gratuito.cat .env.local | fly secrets import
.env.prod
localmente e preencha todos os segredos do ambiente de produção. Lembre-se de atualizar NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY
e CLERK_SECRET_KEY
copiando os segredos da instância de produção do Clerk - cat .env.prod | fly secrets import
para fazer upload de segredos.Se você tiver dúvidas, junte-se aos desenvolvedores do AI Stack e encontre-me no canal #ai-tamago.