免费的奖励网站有哪些,vi设计和logo设计区别,网络营销策略优化,开发工具设置控件格式导语#xff1a; 8月份斯坦福AI小镇开源之后#xff0c;引起了 AIGC 领域的强烈反响#xff0c;但8月份还有另一个同样非常有意义的 AI-Agent 的项目开源#xff0c;a16z主导的 AI-Town 本篇文章主要讲解如何搭建该项目#xff0c;如有英文基础或者对这套技术栈熟悉#…导语 8月份斯坦福AI小镇开源之后引起了 AIGC 领域的强烈反响但8月份还有另一个同样非常有意义的 AI-Agent 的项目开源a16z主导的 AI-Town 本篇文章主要讲解如何搭建该项目如有英文基础或者对这套技术栈熟悉可直接参考该项目的 Readme搭建该项目需要一台服务器、OpenAI 的 Key以及能够访问外网需要自行准备 文章目录 技术栈简介部署流程后话 技术栈简介
笔者之前搭建过斯坦福版本的AI小镇也写过流程和代码分析参见这篇文章
因此在搭建 AI-Town 的时候也对两者的技术栈和搭建过程进行了对比后续还将再用一篇文章分析 AI-Town 的源码
对比来说斯坦福的AI小镇是用 Python 搭建的环境但用了H5的游戏引擎Phaser作为前端表现层部署流程中遇到的问题靠自己摸索还需要解决网络不通等问题PS笔者个人认为更像一个实验而非完整项目
AI-Town 用 TypeScript/JavaScript 完成前后端所有代码的编写虽然接入的组件和平台比较多但相对的可扩展性更高比如生成像素图和音乐等搭建流程基本是全英文文档但基本没有遇到什么卡点列一下主要的技术栈
游戏引擎和数据库Game engine DatabaseConvex向量数据库VectorDBPinecone登录认证AuthClerk文本生成模型Text modelOpenAI部署DeploymentFly支持Docker像素图生成Pixel Art GenerationReplicate、Fal.ai
部署流程
因为 GitHub 上的部署教程是全英文的笔者作为后台对其中的部分工具和平台也不甚熟悉所以详细记录了下搭建时的流程以及遇到的问题部分平台可能需要能访问外网请自行解决
Convex 是由开发 AI-Town 的风投公司 a16z 投资的一款支持用 TypeScript 全栈开发应用程序的平台能使各种规模的工程团队能够构建快速、可靠的动态应用程序无需复杂的后端工程或数据库管理
目前为止笔者还不太熟悉 Convex 的架构和开发流程但整个项目高度依赖 Convex后续在阅读源码时会一起介绍该平台目前中文资料很少近乎没有
首先clone仓库以及安装环境如果环境安装失败记得检查 node 版本正常运行到 npm run dev 命令时会发现报错提示缺失变量因为这里缺少运行程序的必要变量
git clone https://github.com/a16z-infra/ai-town.git
cd ai-town
npm install
npm run dev从下一步开始将配置运行所需的工具和环境注意里面提到的变量需要汇总填入 Convex的变量配置 Clerk 组件用于平台的登录验证可以用 GitHub 账号登录点击 Add application 后取个名字即可 进入创建的 application点击左侧 API Keys 选项把右侧的两条 NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY and CLERK_SECRET_KEY 写入 Git 项目根目录下的 .env.local 文件在前面步骤中自动生成 Clerk 还需要点击左侧的 JWT Templates 新建一个 template 保存这里的 JWKS Endpoint 值作为下面的 CLERK_ISSUER_URL 配置项 下一步是配置 OpenAI Key这里不做多说会作为后面的 OPENAI_API_KEY 配置项配置PineconePinecone是一个向量数据库点击右侧的 Create Index 这里页面中的 Name 将作为 PINECONE_INDEX_NAME 配置项红框处填写 1536其他部分都保持默认选项即可 创建成功后点击右侧 API Keys创建或者直接用默认的API Key保存 Environment 为 PINECONE_ENVIRONMENT 配置项Value 为 PINECONE_API_KEY配置项这里与Git里给的示例Environment前缀不一样也没事 可选项项目还用到了 Replicate 生成像素图片通过 GitHub 账号登录进入 API页面选择任意一个Key 作为 REPLICATE_API_TOKEN 值 前面的步骤中提到的配置项都需要保存到 Convex 的控制台进入自己创建的项目点击右侧 Settings然后弹出页面中选择 Environment variables 直接以 xxx xxx 的格式将之前的 Key 都复制粘贴进来即可下面是笔者配置的 Key可以从前文中找到对应的值以及来源 全部都粘贴完成后回到命令行并运行下面的命令即可启动程序
npm run dev运行起来后默认监听的是 3000 端口可通过 localhost:3000 访问页面附一个跑起来的截图
后话
GitHub 的英文文档其实已经足够清晰笔者只是补充了一些详细的说明后续还会写一篇代码分析 原创不易转载请注明出处