web源码:定制您自己的 AI

麻省理工学院许可的可部署入门套件,用于构建和定制您自己的 AI 城镇版本 – 一个 AI 角色居住、聊天和社交的虚拟城镇

安装

克隆存储库并安装包

git clone https://github.com/a16z-infra/ai-town.git cd ai-town npm install npm run dev

npm run dev请求环境变量将失败。将它们输入到 Convex 仪表板上的环境变量中以继续。npx convex dashboard您可以通过https://dashboard.convex.dev到达那里, 请参阅下文了解如何获取各种环境变量。

A。设置文员

  • 转到https://dashboard.clerk.com/并单击“添加应用程序”
  • 为您的应用程序命名并选择您想要为用户提供的登录提供商
  • 创建应用程序
  • 添加NEXT_PUBLIC_CLERK_PUBLISHABLE_KEYCLERK_SECRET_KEY.env.local

NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_*** CLERK_SECRET_KEY=sk_***

  • 转到 JWT 模板并创建一个新的凸模板。
  • 复制 JWKS 端点 URL 以供下面使用。

b. OpenAI API 密钥

如果您的语言模型使用 OpenAI,请访问https://platform.openai.com/account/api-keys获取 OpenAI API 密钥。

C。松果 API 密钥

  • 访问https://app.pinecone.io/创建 Pinecone 索引,然后单击“创建索引”
  • 给它一个索引名称(这将是环境变量PINECONE_INDEX_NAME
  • 将尺寸填写为1536
  • 成功创建索引后,单击左侧导航栏上的“API Keys”并创建 API 密钥:将“Environment”值复制到PINECONE_ENVIRONMENT变量,将“Value”复制到变量PINECONE_API_KEY

d. 将秘密添加到凸面仪表板npx convex dashboard

转到“设置”并添加以下环境变量。CLERK_ISSUER_URL应该是来自 JWKS 端点的 URL。OPENAI_API_KEY sk-******* CLERK_ISSUER_URL https://**** PINECONE_API_KEY ******** PINECONE_ENVIRONMENT us**** PINECONE_INDEX_NAME ********

运行代码

要同时运行前端和后端:npm run dev

您现在可以访问http://localhost:[PORT_NUMBER]

如果您希望在与 Convex 不同的终端中运行前端(它会在保存后端函数时同步它们),您可以运行以下两个命令:npm run dev:frontend npm run dev:backend

详细信息请参阅 package.json,但 dev:backend 运行npx convex dev

*注意:如果窗口空闲,模拟将在 5 分钟后暂停。加载页面将取消暂停。如果你想在没有浏览器的情况下运行世界,可以注释掉心跳签入convex/engine.ts

运行/测试/调试的各种命令

要添加一个新世界,为其播种并开始运行

注意:您可以添加--no-push运行这些命令,而无需先同步功能。如果您已经npm run dev跑步,这会更快。如果删除它,它会在运行命令之前推送最新版本的代码。npx convex run init:reset

要一次进行一次迭代,您可以创建一个世界npx convex run –no-push init:resetFrozen # for each iteration npx convex run –no-push engine:tick ‘{“worldId”:”<your world id>”,”noSchedule”:true}’

冻结后端,以防活动过多npx convex run –no-push engine:freezeAll # when ready to rerun (defaults to latest world) npx convex run –no-push engine:unfreeze

清除所有数据库

很多选择:

  • 转到仪表板npx convex dashboard并从那里清除表格。
  • 调整变量crons.ts以自动清除旧日志和内存条目的空间。
  • 跑去npx convex run --no-push testing:debugClearAll擦所有的桌子。
  • 作为后备方案,如果出现问题,您可以查看origin/reset-town git 分支。从那里执行操作npm run dev将清除您的架构,停止您的功能,并允许您删除仪表板中的表。

要从 Pinecone 索引中删除所有向量,您可以运行:

npx convex run --no-push lib/pinecone:deleteAllVectors

注意:如果您在开发和生产之间或项目之间共享此索引,则会将它们全部清除。您通常不需要从 Pinecone 中删除向量,因为每个查询都在 userId 上建立索引,这在世界和后端实例之间是唯一的。

监听消息

在侧面终端中运行以下命令npx convex run testing:listMessages –no-push –watch

或者观察一名球员的状态:npx convex run testing:latestPlayer –no-push –watch

更多功能请参见testing.ts.

部署应用程序

部署到fly.io

  • 在fly.io上注册一个帐户,然后安装flyctl
  • 如果您使用 Github Codespaces:您将需要安装 Flyctl并通过运行从 Codespaces cli 进行身份验证fly auth login
  • 运行npx convex deploy以将开发环境部署到生产环境。确保将所有机密复制到 Convex 的产品环境中
  • 在项目根目录下运行fly launch。这将生成一个fly.toml包含您需要的所有配置的文件
  • 修改生成的内容以在构建期间fly.toml包含NextJS 以访问客户端。NEXT_PUBLIC_*
[build]
  

[build.args]

NEXT_PUBLIC_CLERK_SIGN_IN_URL=”/sign-in” NEXT_PUBLIC_CLERK_SIGN_UP_URL=”/sign-up” NEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URL=”/” NEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URL=”/” NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=”pk_*****” NEXT_PUBLIC_CONVEX_URL=”https://*******.convex.cloud”

[build.args]

NEXT_PUBLIC_CLERK_SIGN_IN_URL=”/sign-in” NEXT_PUBLIC_CLERK_SIGN_UP_URL=”/sign-up” NEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URL=”/” NEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URL=”/” NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=”pk_*****” NEXT_PUBLIC_CONVEX_URL=”https://*******.convex.cloud”” tabindex=”0″ role=”button” style=”box-sizing: border-box; position: relative; display: inline-block; padding: 0px !important; font-size: 14px; font-weight: var(–base-text-weight-medium, 500); line-height: 20px; white-space: nowrap; vertical-align: middle; cursor: pointer; user-select: none; border-width: 1px; border-style: solid; border-color: var(–button-default-borderColor-rest, var(–color-btn-border)); border-image: initial; border-radius: 6px; appearance: none; color: var(–button-default-fgColor-rest, var(–color-btn-text)); background-color: var(–button-default-bgColor-rest, var(–color-btn-bg)); box-shadow: var(–button-default-shadow-resting, var(–color-btn-shadow)),var(–button-default-shadow-inset, var(–color-btn-inset-shadow)); transition: color 80ms cubic-bezier(0.33, 1, 0.68, 1) 0s, background-color, box-shadow, border-color; margin: var(–base-size-8, 8px) !important;”>

  • 修改 Fly.io 的生成Dockerfile以包含上面的新 ENV 变量RUN npm run build
ARG NEXT_PUBLIC_CLERK_SIGN_IN_URL
ARG NEXT_PUBLIC_CLERK_SIGN_UP_URL
ARG NEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URL
ARG NEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URL
ARG NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY
ARG NEXT_PUBLIC_CONVEX_URL

# Build application
RUN npm run build
  • 运行fly deploy --ha=false以部署应用程序。–ha 标志确保 Fly 只启动一个实例,该实例包含在免费计划中。
  • 运行fly scale memory 512以扩展此应用程序的飞行虚拟机内存。
  • 在本地创建一个新文件.env.prod并填写所有生产环境机密。请记住更新NEXT_PUBLIC_CLERK_PUBLISHABLE_KEYCLERK_SECRET_KEY通过从 Clerk 的生产实例复制机密cat .env.prod | fly secrets import来上传机密。还记得更新CONVEX_DEPLOYMENTNEXT_PUBLIC_CONVEX_URL

定制您自己的模拟

注意:每次更改角色数据时,都应该重新运行npx convex run testing:debugClearAll --no-push,然后npm run dev将所有内容重新上传到 Convex。这是因为字符数据在初始加载时发送到 Convex。但是,请注意,这npx convex run testing:debugClearAll --no-push将擦除您的所有数据,包括您的矢量存储。

  1. 创建您自己的角色和故事:所有角色和故事及其 spritesheet 引用都存储在data.ts中。您可以从更改角色描述开始。
  2. 更新 spritesheets: 在 中data.ts,您将看到以下代码:
  {
    name: 'f1',
    textureUrl: '/assets/32x32folk.png',
    spritesheetData: f1SpritesheetData,
    speed: 0.1,
  },...

您应该为您的角色找到一个精灵表,并在相应的文件中定义精灵运动/资产(在上面的示例中,f1SpritesheetData在 f1.ts 中定义)

  1. 更新背景(环境):convex/maps/firstmap.ts是加载地图的地方。导出tilemap最简单的方法是使用Tiled ——Tiled将tilemap导出为CSV,您可以将CSV转换为firstmap.ts接受的二维数组
阅读全文
资源下载
下载价格免费
下载说明:
1、本站所有资源均从互联网上收集整理而来,仅供学习交流之用,因此不包含技术服务请大家谅解!
2、本站不提供任何实质性的付费和支付资源,所有需要积分下载的资源均为网站运营赞助费用或者线下劳务费用!
3、本站所有资源仅用于学习及研究使用,您必须在下载后的24小时内删除所下载资源,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担!
4、本站站内提供的所有可下载资源,本站保证未做任何负面改动(不包含修复bug和完善功能等正面优化或二次开发),但本站不保证资源的准确性、安全性和完整性,用户下载后自行斟酌,我们以交流学习为目的,并不是所有的源码都100%无错或无bug!如有链接无法下载、失效或广告,请联系客服处理!
5、本站资源除标明原创外均来自网络整理,版权归原作者或本站特约原创作者所有,如侵犯到您的合法权益,请立即告知本站,本站将及时予与删除并致以最深的歉意!
6、如果您也有好的资源或教程,您可以投稿发布,成功分享后有站币奖励和额外收入!
7、如果您喜欢该资源,请支持官方正版资源,以得到更好的正版服务!
8、请您认真阅读上述内容,注册本站用户或下载本站资源即您同意上述内容!
原文链接:https://www.shuli.cc/?p=17482,转载请注明出处。
0

评论0

显示验证码
没有账号?注册  忘记密码?