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
Примечание. Секреты здесь относятся к вашему локальному экземпляру супабазы.
cp .env.local.example .env.local
Затем получите SUPABASE_PRIVATE_KEY
, запустив
supabase status
Скопируйте service_role key
и сохраните его как SUPABASE_PRIVATE_KEY
в .env.local
npx inngest-cli@latest dev
Убедитесь, что ваше приложение запущено и работает — функции Inngest (которые используются для управления состоянием игры) должны регистрироваться автоматически.
Теперь вы готовы протестировать приложение локально! Для этого просто запустите npm run dev
в корне проекта и посетите http://localhost:3000
.
Теперь вы поигрались с тамаго ИИ локально — пришло время развернуть его где-нибудь на более постоянном месте, чтобы вы могли получить к нему доступ в любое время!
0. Выберите, какую модель вы хотите использовать в производстве.
LLM_MODEL=ollama
из .env.local
и заполните OPENAI_API_KEY
LLM_MODEL=replicate_llama
и заполните REPLICATE_API_TOKEN
performance-4x
(ЦП) с объемом 100gb
, но если вы можете получить доступ к графическим процессорам, они будут работать намного быстрее. Присоединяйтесь к списку ожидания Fly GPU здесь, если у вас еще нет доступа! 1. Переключитесь на ветку deploy
— эта ветка включает в себя все необходимое для развертывания такого приложения.
git co deploy
Эта ветка содержит приложение, готовое к мультитенантности (спасибо Clerk), что означает, что каждый пользователь может получить свой собственный AI-тамаго, и имеет встроенный лимит токенов — вы можете установить, сколько раз пользователь может отправлять запросы в приложении. ( ratelimit.ts
)
2. Перейдите в облако Supabase:
.env.local
SUPABASE_URL
— это значение URL-адреса в разделе «URL-адрес проекта».SUPABASE_PRIVATE_KEY
— это ключ, начинающийся с ey
в разделе «Ключи API проекта».Из корня проекта Ai-tamago запустите:
supabase link --project-ref [insert project-id]
supabase migration up
supabase db reset --linked
3. Создайте экземпляр Upstash Redis для ограничения скорости.
Это гарантирует, что ни один пользователь не вызовет какой-либо API слишком много раз и не возьмет на себя всю рабочую нагрузку вывода. Здесь мы используем потрясающий SDK ограничения скорости Upstash.
UPSTASH_REDIS_REST_URL
и UPSTASH_REDIS_REST_TOKEN
) в ваш .env.local.4. Теперь вы готовы развернуть все на Fly.io!
fly launch
под корнем проекта. Это создаст файл fly.toml
, включающий все необходимые вам конфигурации.fly scale memory 512
, чтобы увеличить память Fly VM для этого приложения.fly deploy --ha=false
чтобы развернуть приложение. Флаг --ha гарантирует, что Fly запускает только один экземпляр, который включен в бесплатный план.cat .env.local | fly secrets import
.env.prod
и заполните все секреты производственной среды. Не забудьте обновить NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY
и CLERK_SECRET_KEY
скопировав секреты из производственного экземпляра Clerk — cat .env.prod | fly secrets import
для загрузки секретов.Если у вас есть вопросы, присоединяйтесь к разработчикам AI Stack и найдите меня на канале #ai-tamago.