
简介99AI 是一套开源的、可商用的 AI Web 平台源码面向开发者、AI 爱好者以及希望在业务中引入人工智能的企业团队。它聚焦于降低应用搭建门槛内置智能对话、多模态模型、应用广场、联网搜索等功能稳定版还支持 AI 绘画、音乐与视频创作并具备私有化部署和多用户管理能力可快速提供一站式智能服务。资源包共 1078 个文件压缩后仅 7.52MB源码以约 390 个 TypeScript 脚本、290 个 JavaScript 逻辑文件和 140 余个 Vue 界面组件为主另有样式表、配置文件及 Docker 部署脚本便于本地启动与二次开发。已有 2167 人学习查看适合源码研读、功能扩展或直接构建生产级应用平台。通过这套代码开发者既能获得完整的前端工程骨架和模块化组件也能参考多模型集成、应用广场、私有化部署等模块设计大幅缩短从零开发智能服务的时间。 去年下半年我陆陆续续帮三个团队落地过 AI 服务的内部平台。过程很有意思大家最开始都是谁家模型好用就调谁家 API用了一两个月就发现不对劲——同事要画图你得给一套绘图工具的权限销售要写文案你得帮他们配一个能记住产品资料的对话机器人财务问能不能把报销制度做成 AI 客服管理层开口就是这个月 AI 花了多少钱到底谁在用。一个模型一个后台、一个应用一套账号管到最后人都是懵的。这也是我后来一直关注 99AI 这类开源 AI Web 平台的原因。它做的不是某个模型而是把模型接入、应用展示、用户管理、计费控制全打包成一套可私有化部署的系统。这篇文章我详细拆一下它值得研究的地方再把部署和多用户落地过程中那些文档里不写、但必须知道的细节讲清楚。1. 为什么我把目光从单个模型转到一个 AI 平台1.1 团队里的 AI 需求从来不是一个模型能满足的先说一个我观察到的普遍现象。很多人以为给团队上 AI就是买几个大模型 API 的额度然后让同事自己拿客户端去玩。实际根本不是这样。销售部门要的是能回答产品参数、竞品对比的对话机器人设计部门要的是能批量生成素材图的绘画能力研发部门要的是代码补全和接口文档总结客服部门则希望把历史工单灌进去做一个能自动回复的问答系统。这些需求背后虽然是同一批大模型但呈现出来的东西完全不一样。如果每个需求都单独开发就需要给每个应用配独立的模型调度、独立的用户认证、独立的管理后台。一个小团队光维护这些独立就能耗掉所有精力。我当时最强烈的感受是团队真正缺的不是模型是一个能把模型变成服务对外交付的壳。1.2 99AI 这类项目的核心价值把重复劳动直接省掉99AI 这类开源 AI 应用平台本质上就是把这层壳做成了现成方案。项目方向很明确要可商业化要支持私有化部署要内置多用户管理要做成一站式的 AI 服务解决方案。什么意思通俗一点讲它把几个最常见的模块先替你搭好了。模型接入层不用给每个模型单独写 SDK 适配代码平台统一对接。前端应用层对话聊天、AI 绘画、语音处理这类最常见的交互界面直接内置。用户管理层注册、登录、角色权限、会员套餐、额度计费都是现成功能。管理后台运营人员能在后台看用户、看用量、调配置不用动代码。对一个想快速把 AI 能力交付给团队或客户的人来说省掉的工作量是周级别起步的。这不是套壳那么表面它本质上是把 AI 应用从工程问题变成了配置问题。2. 99AI 内核拆解从模型接入到用户端的关键设计2.1 模型接入层以一套统一 API 收编所有大模型如果你打算部署 99AI我建议先花时间理解它的模型接入层设计因为这是整个平台的底座。市面上主流的大模型包括 OpenAI 系、Claude 系、国产的千问、智谱、文心等接口风格不完全一致有的支持流式输出有的工具调用格式有差异。如果直接在业务代码里逐家对接后期改模型厂商会让人崩溃。99AI 的做法一般是做一个统一的模型网关内部定义一套标准请求格式再把各家厂商的 API 转换为这个格式。这样做有三个直接好处业务代码只依赖平台内部协议不绑定任何一家模型厂商。可以挂载多个模型并做路由、负载均衡、失败重试。模型密钥统一管理不会散落在各个应用里。我在实际配置时发现这个网关也是部署中第一个容易出问题的地方。很多第一次部署的人以为配好 API Key 就行了结果请求一直报错最后发现是模型名称没对上平台预设的字段。比如有的平台要求写gpt-4o但你自定义别名填了my-model网关路由就找不到真实模型。2.2 应用层对话、绘图、语音这些能力怎么组织模型接入之后普通用户能感知的东西是应用层。99AI 默认提供的应用能力通常覆盖三类高频场景。智能对话这是核心入口支持多轮对话、上下文记忆、以及给模型设置不同的人设。AI 绘图一般会集成常见的绘画模型用户提交提示词平台后台异步调用并在前端回显结果。语音相关能力语音转文字、文字转语音可以配合对话模块做语音交互。这些模块的关系并不是互相独立的。对话应用里可以切换模型也能开启联网搜索或者知识库检索绘图应用产生的文件会进入统一的文件管理模块方便后续用户下载或分享。对运营方来说应用层做得好的标准是普通同事打开浏览器登录后自己就能摸索着用起来不需要部署文档 程序员讲解双保险。我见过太多内部平台死在体验上——模型能力都有但页面交互太工程化非技术同事根本不碰。2.3 管理端与用户端分离运营人员怎么控制全局99AI 这类平台还有一个被低估的设计就是用户端和管理端的分离。用户端是给使用 AI 服务的人看的设计重点是怎么让 AI 应用好用、好找。管理端则完全是另一套视角平台上注册了多少用户、每个用户当天调用了多少次接口、消耗了多少 Token、余额剩多少、某个模型是不是一直在报错这些信息全部要可视化呈现。多用户管理是这里面的核心。一个平台如果只能单机单用户使用那就只能叫个人工具箱如果要给企业或团队用必须解决几个问题不同人看到的菜单和功能不同普通用户不能误入管理后台。用户额度可配置避免有人把共享账户跑出天价账单。运营方能手动调整用户等级、封禁异常账号。我之前遇到一个客户他们想直接给 500 个内部员工开账号。如果平台没有批量管理能力靠逐个人工建号体验会非常痛苦。99AI 这类方案内置了用户管理和套餐系统再配合后台导出、导入之类的机制完全可以在半小时内完成批量初始化。这个半小时恰恰是很多团队判断一个开源项目能不能落地的关键。3. 私有化部署实操在自己服务器把 99AI 跑起来3.1 部署形态评估为什么首选 Docker Compose想私有化部署第一步是确认部署形态。Java 系项目喜欢打 jar 包Go 系项目喜欢直接扔二进制而 99AI 这类带完整前端和后端的项目大多数采用容器化部署也就是 Docker。我的建议是直接走 Docker Compose原因很简单组件多包括 Web 服务、数据库、缓存单独维护不如 Compose 一把梭。升级方便改一下镜像版本号再执行一条命令。迁移容易整个项目目录打包到新机器就能拉起。硬件配置上如果你只是给团队内部用2 核 4G 内存的服务器基本能跑起来但体验不会太好如果要对外提供服务建议 4 核 8G 起步。数据库方面MySQL 和 Redis 几乎是标配前者存用户和订单数据后者顶会话和缓存。3.2 从拉取代码到首次访问的完整流程下面是我实测下来比较顺的部署路径假设你的服务器是 Ubuntu 22.04已经装了 Docker 和 Docker Compose。第一步获取项目源码。这一步是私有化部署的基本前提——把开源仓库 clone 到服务器或本地构建目录后续所有配置都在这个项目目录里完成。git clone https://github.com/你的仓库地址/99AI.git cd 99AI第二步确认项目里有 docker-compose 相关文件。通常项目会提供docker-compose.yml和.env.example。把.env.example复制成.env这个文件是配置核心。cp .env.example .env第三步修改.env里的关键配置。必须改的有几个MySQL 密码Redis 密码平台密钥用于内部加密签名模型 API Key 列表配置模型 API Key 时注意如果准备接多个厂商要先确认平台定义的字段格式。我看到很多示例里会把 OpenAI 格式的 Key 放在一个数组里用sk-xxx这种值填充实际部署时换成你自己的。第四步启动服务然后初始化数据库。docker compose up -d docker compose exec web php artisan migrate --seed这里有一个很多新手会翻车的地方忘记执行数据库迁移和初始化命令直接访问网站会看到页面能打开但登录报错或者菜单是空的。原因是数据表根本没建。第五步配置反向代理。生产环境不建议裸 IP 加端口直接对外提供服务最好用 Nginx 做一层反向代理把域名证书挂上去。Nginx 配置里必须注意 WebSocket 转发因为 AI 对话要实现打字机式的流式输出依赖 WebSocket 长连接。location / { proxy_pass http://127.0.0.1:8080; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection upgrade; }不配这一段的话对话功能会非常不稳定能发消息但回复经常隔很久才一次性弹出来甚至直接断连。Vue 前端页面如果打包后也是由同一个服务承载这一层代理通用性很强。3.3 我在部署过程中踩过的三个坑第一个坑是 Redis 密码不一致。Docker Compose 文件里 Redis 服务本身设置了密码但后端配置文件里没填导致登录后会话保持不了用户一刷新页面就掉线。排查了接近一小时后来把两边的密码对齐才解决。私有化部署有个规律环境变量越多越容易出现两边不一致的问题。建议拿到项目后先把所有密码类字段列个清单。第二个坑是数据库时区。项目默认使用 UTC 时间但业务上又希望后台显示北京时间。如果不改时区配置用户看到自己的消息时间总是差了 8 小时运营后台的对账数据也会错位。在 MySQL 连接串里加上localtime参数或者timezone08:00一般就能解决具体看项目封装情况。第三个坑是模型请求超时。大模型推理本身耗时较长尤其是绘图任务可能长达几十秒。如果反向代理或者后端 HTTP 客户端的超时时间设置得太短比如默认 10 秒那长文本生成就会频繁中断。我还遇到过把 Nginx 的proxy_read_timeout设成 30 秒、结果绘图任务 40 秒就必然失败的情况。建议至少调大到 120 秒以上。4. 多用户环境下的权限、计费与安全落地4.1 用户体系搭建批量开户和权限隔离怎么做私有化部署完成后多用户管理才能真正体现价值。我给企业客户做内部平台时通常建议按三层结构来设计用户权限超级管理员只管平台配置、模型密钥、全局参数。运营人员管理普通用户、查看数据报表、处理异常订单。普通用户只能使用应用功能查看自己的额度和消费记录。99AI 自带的用户管理模块基本覆盖了这套模型。实际落地时我建议先做用户来源规划是只允许管理员手动建号还是开放注册企业内部一般走手动建号 域名邮箱验证外部商业化才建议开放注册。权限隔离这块最需要注意的是模型级别的控制。不同套餐用户能使用的模型可以不一样基础套餐只给普通对话模型专业套餐给到更贵的模型和绘图能力。这不仅是差异化运营问题也是成本控制问题——不控制的话高价模型会被少数重度用户跑出巨额账单。4.2 套餐与积分商业化最关键的费用控制机制很多团队对接入 AI 服务的理解停留在申请个 Key 给大家用一旦商业化了立刻会发现需要一套计费机制。99AI 这类平台通常内置了积分/额度体系我总结了落地时的三个关键点。第一成本与积分的映射关系要提前设计。比如 1 积分对应多少 Token或者一次对话固定消耗多少积分。这个映射决定了平台会不会亏本。比较稳的做法是先小范围灰度使用统计一周的实际 Token 消耗再校准积分单价。第二套餐要分层但层数不宜过多。我见过有的项目设计了 8 个套餐结果用户全程只在最便宜的档位运营也很困惑。一般三层就够了免费体验层、标准付费层、企业私有层。套餐的核心不是堆权益而是把工具属性变成服务属性。第三要有异常消耗监控。AI 服务最怕的是被薅羊毛比如用程序批量刷对话或者不断堆积超长上下文短时间内打爆 Token 额度。管理后台一定要能按用户维度看消耗排行并设置单用户每日消耗上限。这个上限我建议一开始就设等出问题再补就晚了。4.3 安全与合规底线私有化不等于绝对安全私有化部署这四个字容易让人产生一个错觉数据在自己服务器上绝对安全。但实际做下来安全是另一个维度的事。首先是密钥安全。模型 API Key 一旦泄露损失直接和额度挂钩。建议把 Key 集中在服务端管理绝不放在前端环境变量里。后端配置文件的权限也要收敛不能因为内网部署就随意放开。其次是内容合规。平台如果开放给外部用户AI 生成的内容必须经过审核策略兜底包括敏感词过滤和生成内容记录留存。内部使用虽然压力小一点但也要有内容可追溯的意识否则真出了争议查不到是谁在什么时间生成了什么内容。第三是备份策略。数据库里存了用户、订单、聊天记录这种数据丢不起。我建议至少做每日自动备份并定期测试恢复流程。很多团队备份做了但从没演练过恢复等真要恢复时才发现备份文件坏了这才是最尴尬的。5. 99AI 和 Dify、FastGPT 这类方案怎么选5.1 围绕私有化部署的几类开源方案对比很多人在选型时会把 99AI、Dify、FastGPT 摆在一起比。我的观点是它们不是同类替代品解决的问题重心不一样。Dify 更偏 LLMOps 和应用编排平台强项是工作流编排、RAG 知识库、Agent 应用适合要把 AI 能力嵌入具体业务系统的团队。FastGPT 的核心场景是知识库问答对文档型问答的流程打磨很深。99AI 则更偏直接可用的 AI 服务前台——用户管理、套餐计费、应用展示都齐活了最快速度对外交付。从私有化部署这个热点来看三者都支持但上手门槛有差异。给非技术老板展示时99AI 的即开即用体验会更好要给业务系统做深度集成Dify 这类平台上限更高。对比维度99AIDifyFastGPT核心定位可商业化 AI Web 平台LLMOps / 工作流编排知识库问答应用用户管理内置完整会员体系偏团队内部成员管理偏应用内用户管理计费扩展内置套餐/积分机制需自行对接计费系统可做但要在应用层自己设计前端应用集成聊天、绘图、语音等页面提供 WebApp 但需自行改造重点在问答前端上手难度相对较低中高概念较多中低5.2 我的选型建议先搞明白你要交付的是什么如果你是要给团队的同事做一个内部 AI 工具站要求注册登录、按部门限额、能看到谁在用那我建议优先考虑 99AI 这类平台因为大部分成本管理功能已经内置省心。如果你是要给客户做一个懂公司文档的 AI 客服需要对接自己的业务数据库设计多轮对话流程那我建议用 Dify 或 FastGPT 这类应用编排平台它们对知识库的处理更专业。如果两者需求都有现实一点的办法是组合使用用 99AI 做对外的用户入口和计费层把 Dify 作为背后的应用引擎通过 API 互通。这种方案听起来复杂但遇到真实业务需求时往往才是最合适的。6. 一些布局建议从第一次部署到长期运营最后聊点部署之外的体会。我见过好些团队把 99AI 这类平台部署起来后高兴了没几天就遇到两个新问题一是模型厂商价格调整之前设计的积分映射瞬间不划算了二是用户量增长后模型调用老是超时频繁升级服务又怕影响现有用户。这两个问题其实是平台运营的常态部署完成的那天只是起点。我的建议是从第一次部署开始就做好三件事所有配置项全部纳入版本管理改动前先记录。模型 API Key 不要只买一家保留两家备选避免厂商故障导致平台瘫痪。用户量过百之后优先做调用链路的监控而不是继续加功能模块。另外如果你打算基于 99AI 做商业化交付建议透读一遍开源协议确认你需要的私有化商用方式在授权范围内。开源不等于无约束这一点是长期做项目必须有的判断力。我在一两年前部署这类平台时跑去翻它的源码发现用户套餐逻辑比想象中复杂得多远不是后端加个积分字段那么简单。当时那段时间很折腾但回头看那一步反而是项目真正能商业化的关键。如果你正在研究 AI Web 平台希望这篇内容能帮你少走一些弯路。本文还有配套的精品资源点击获取