我的作品 两个人 +AI 做了个 AI 开发工具平台

littleliu(不打灰的小刘) · 2024年10月04日 · 最后由 snowei 回复于 2024年10月23日 · 457 次阅读

LlamaFactory 技术栈分享

最近和我的小伙伴 2 个人做了一个网站:LlamaFactory - AI 开发者的高效工具平台

地址:https://www.llamafactory.cn

先说下基本情况,我主要擅长自然语言处理。我的同伴擅长前端、运维,后端接口写得非常非常少。在这个项目中,我们分工大概是:

  • :大模块开发、产品经理、UX 以及测试;
  • 同伴:开发、运维;

在各个阶段,我们用到的技术和工具大致如下:

前端:

  • Vitepress:最开始为了快速和适配,直接选择了 Vitepress 做,结合配置 + 自定义能力做 UI,但是后来 UI 自己设计后,有一点后悔这一选择,UI 界面已经不怎么像 vitepress 风格了;
  • Vue3:写主题、自定义组件等
  • TailwindCSS:集成到 Vitepress 中,快速写样式,同时可以部分依赖 AI 生成;
  • Antdv:使用了 Ant Design 中部分的组件,如弹窗、Popup、Button 等,用的其实不多;
  • markdown-it:在 vitepress 提供的 markdown 渲染之外,又自己做了部分页面的 markdown 自定义渲染;

后端:

  • NodeJS:我的同伴有一定的 Node 后端的基础,但是实战不多,这次为了快,没有让我用 Python 给接口(之前项目我们用的 FastAPI 做后台),直接 ExpressJS 做了。
  • Mysql + Sequelize:其实我们大部分数据直接用 Python 或者 Nodejs 脚本做了预处理,直接生成 JSON 放到前端代码中了,只是博客那一块使用 mysql 做存储,我们部署了 rsshub 定时更新指定 RSS 源的数据到 mysql 中,然后用 Sequelize 做 ORM 映射,做成接口返回给前端;

  • Github三方登录:使用 passport 和 passport-github 集成了三方登录,这里因为 cookie 域的问题踩了一些坑,也是收获颇丰。

  • 其他Node部分:使用了一些 helmet、margon、bcryptjs、cors 等其他中间件

  • Python:我们的数据部分,基本都要是 Python 提供,一部分是 Rss 订阅,有三个技术文档的中文化翻译,我们使用 python 调用大模型做的翻译,尝试过 OpenAI 等多家的接口。还有部分数据是用 Python 脚本处理的

运维:

  • Linux服务器:阿里云的服务器,用了两台机器,我们是一台部署前端,一台部署后端,我们因为还有其他的网站,所以分开了;
  • 域名:一级域名我们买的都是大的技术概念的域名,想获取一些自然流量。二级域名根据功能开了不少,用的 nginx 的 vhost 部署,也方便。

  • Nignx:静态统一管理,代理转发;

  • PM2:管理后端 NodeJS 服务,监控应用;

  • SSL:使用 Certbot 手动签发的 SSL 证书,还不想买付费的证书,以前用阿里云的免费证书,每次一年,现在三个月就到期了,就干脆放弃阿里云了改用 Certbot 自己签发。

DevOps:

  • Github: 代码托管在 Github 上,无需赘述。
  • GitHub Actions:使用 Github Actions 监听代码的推送,代码 push 到 github 自动触发流水线,自动打包,并将打包产物发布到阿里云服务器上,基本可以做到,push 三分钟后刷新网页就可以看到修改点。

AI 工具:

  • Cursor: 我和同伴两人能力和精力有限,主要业余在做这个网站,所以我们很依赖 AI 来提高效率,我们这个网站的后端主要依靠它生成代码,前端代码它也是极大功劳;Cursor 真的太好用了,建议所有程序员都赶紧换上。
  • Claude + OpenAI: 一般是 Cursor 没法直接解决我们的问题,会去压榨 Claude 和 OpenAI,Claude 效果肯定是最佳的,但是因为没买会员,上下文有限,每次把它问到限额后,就会去问 OpenAI,OpenAI 面对不太复杂的问题还是 Ok 的。总的来说,代码生成的工具使用顺序是:Cursor > Claude > OpenAI
  • Kimi: 我们正在用 kimi 来优化 SEO,做每个页面的 TDK,当然同时我们也会测试其他的大模型的效果;
  • v0.dev:我们网站页面 UI 和设计方面,思路是:自己先有一个初步的想法后,通过提示词给 AI 工具--v0.dev 来生成,通过不断优化提示词,达到最后的效果,主题也是它提供的。如果使用 Next.js 的,那 v0 真是太香了。我们另外一个用 Next.js+React 的项目,当时没发现 v0 这个工具,真是遗憾,它现在也算是宣告死亡了。

棒极了,写的真好👍

需要 登录 后方可回复, 如果你还没有账号请 注册新账号