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 频道中找到我。