通用基础项目

    1.Coding基础篇-产品规划和技术选型

    发布时间
    March 25, 2025
    阅读时间
    2 min read
    作者
    Felix
    访问
    公开阅读

    在我们开始实际的编码之前,我们需要先思考这样一个问题:做什么类别的AI产品?

    做什么类别的AI产品?

    适合我们做的有两类:

    1. 纯工具类AI产品。
    2. 平台类AI产品。

    但在工具类AI产品是最好起步的,比如前几天的讲的aibarbie,一个文生图功能解决具体的需求 + 整体的产品付费闭环。非常快就能搞定,又比较能提供信心。

    因此我想的是这样的,我写个大致的框架例子,把这一套逻辑写通,大家只需要关注具体的需求点

    需求点指的是:使用AI解决用户的需求的核心功能模块。

    产品内容的构造

    整体构造是主要分为了几个抽象的概念:

    1. 核心功能需求模块
    2. Tokens模块,这是用于计算消耗的机制。
    3. 用户/鉴权。
    4. 订阅/付费。
    5. 杂项(Blog、协议等)。

    通过这些大的抽象部分,就可以完成一个最基础的AI产品。

    全栈框架选择

    要快只能是全栈框架,

    那么选择按生态、活跃度选择只有两个NuxtNext这两个全栈框架。

    那就讲一讲两个框架的核心问题和好处,两个框架我用到了深水区。

    • 性能: 在ssr的性能表现上Nuxt不如Next,在csrreact不可能有vue的性能好的,但问题是在于大量的seoscp等一系列c端核心指标都依赖于ssr。而csr在现代浏览器的场景下,差的是那一点性能吗?
    • 生态: 在生态表现上NextNuxt一条街。 虽然大部分库 React系列有Vue一般会有, 但在一些库的深水区和issue数量这一点是不太经得起考验的, 再加上大多数海外各种服务的厂商对React系列的支持是多于Vue的。
    • 前端开发易用度: 在偏前端一点的开发易用度上面一直是V系列的强项,狂拉Next一条街,它处理服务端组件和客户组件边界问题做得非常好,没有任何心智负担。
    • 后端开发易用度: 但在两个框架的服务侧方面,显然Nextserver actions属于是作弊级的开发体验,Nuxt可以进行服务端开发但体验很差。

    那综合考量,Next其实是最好的出海AI项目框架,也是出海项目最多的选择框架,生态永远是开发中最重要的一环。

    NextJs App route文档

    写这么简单的东西,用哪种框架都无所谓的,能完成就好啦。

    数据库和orm选择

    对于数据库有大量的对比资料,但出于性能、更加现代等考虑上我们选择Postgre

    Orm比较主流的有三种, SequelizeTypeORMPrisma

    但在 Next社区生态下Prisma是合适的。 首先 Prisma文档 齐全易阅读完整,其次有强大的生态和社区支持。而Typeorm更多的是用在纯后端场景下。最后的是Sequelize,它的社区活跃程度对比前两者差了一些。

    数据库:Postgre

    Orm:Prisma

    登录

    Web端上所需要的登录只需要TwitterGoogleFaceBook邮箱登录 + 一个集成登录鉴权库或登录服务厂商。来自动帮你处理用户id和信息,以及绑定关系。

    理论上应该选择登录服务厂商,因为完整的用户服务显然不仅仅只包含登录,还会有注销、用户监控、防刷、安全、灾备等等等,但服务厂商的代价是什么那?

    ~是账单,在我历史的教训里,我用过supabsefirebase这些服务厂商等。但当我项目的用户数开始变多后,我账单的规模也是成正比增长的,而且我很难把数据迁移走。

    image.png

    因此我的选择就主要是两点免费易迁移。要选一个能实现大部分厂商登录,功能闭环的鉴权库就好了。像用户监控、防刷、安全、灾备这些功能在我的初期是不需要的。

    当我在项目有一定收入的时候,我可以去各种云服务上买很好的数据库服务,来实现监控备份安全这些需求显然是更好的选择。(而不是我现在我必须得把登录厂商的数据库留着然后再+一个数据库,我的开发复杂度也加大了非常多, 有朋友肯定会问为什么我不就用登录厂商的数据库,因为它的数据库不是独享线程, 并不能作为应用数据库,就只能做纯登录鉴权数据库)。

    那么next-auth就是个完美的选择。

    登录鉴权:next-auth

    AI API 和 AI 调用库

    对于 AI API 毋庸置疑的Open Router, 提供市面主流的200多个模型,在它自己的代理商层面同一个模型也有多个服务商可切换,并且价格也会更便宜。

    再加上支付简单、限制不多,那么这无疑就是最佳的代理商。

    而对于 客户端调用库 就是 vecelai库,这个库的名字就叫ai。他也提供多家厂商的 sdk 支持,vecel的开发实力你永远可以相信,功能强大设计合理场景齐全

    image.png

    但中后期要面对更复杂的场景还是自己写sse或者webSocket把。

    AI API:Open Router

    AI库:ai(vecel)

    付款渠道

    PayPalStripe,是比较主流的收款方式,唯一很不好的是api很复杂,但他们有很多支付网关服务商和隔离层厂商,它们可以大规模的简化调用和回调帮你处理。

    推荐个很小众的upgrade.chat, 它能处理Palpal个人户的订阅收款和借记卡信用卡(商户号真的很麻烦)。但是我们会在使用他的时候遇到一些比较烦恼的开发问题,最主要是开发问题是没有订单id关联。

    但无论如何它都是会是你初期验证商业项目的好伙伴。

    当然Lemonsqueezy也是一个很好的选择,国内用户也可以申请,不需要公司资质,但唯一的问题就是它的费率太高了。这里有一篇文章是关于它的接入和使用。

    支付集成商:upgrade.chat

    收款方式:PayPal、Stripe、Lemonsqueezy

    UI库和CSS

    ui库你自己喜欢用啥就用啥,radix/uichakra是我比较喜欢的。对于简单的项目我喜欢radix/ui

    但其实radix/ui有一些性能问题,chakra的组件的成熟度和复杂度在比较复杂的项目里面更合适一些。

    csstailwindcss.

    UI:radix/ui(shac)

    css:tailwindcss

    状态管理

    无需理由,市面状态库断层级好用,但需要小心处理状态库和水合问题。

    状态管理:zustand

    验证

    无需理由,市面验证库断层级功能强大。

    状态管理:zod

    部署

    常规有两个选择:

    1. ServerLess,代表是:Vecel,Cloudflare,S3
    2. 实例Docker,代表是:AWS EC2实例

    而显然,这里是教大家成本最低的部署方式(Vecel真的很贵),最便宜的是Cloudflare,即使它是对代码入侵最大的一个(因为需要使用整个Cloudflare的生态套件)。

    还有一个考虑是因为我们后期需要起量,Cloudflare毫无疑问是开发侧起量的神器。

    部署生态:Cloudflare

    结束

    这一章我们主要是讲解在初期进行项目选型和产品构造的一些思路,而在下一章我们就开始项目基础结构和数据库的搭建。

    对于在文章中介绍到的库的部分,有一些基础部分,需要伙伴们自己去官网和参考相关资料进行一个粗浅的了解,才能更好跟上下一章,了解的大概有这几个点:

    1. Next大概是什么东西
    2. Next中App路由的约定式路由和渲染方式。
    3. Cloudflare。

    因为不讲开发基础了,有相关的问题,欢迎伙伴们在群中提问和讨论,问到比较多的问题,会写文章统一回答,在整个主题下不会有在官网就显而易见的知识点。

    基础背景知识的补充是在:

    Drizzle

    D1

    评论

    加入讨论

    0 条评论
    登录后评论

    还没有评论,来占个沙发吧。