一台服务器加一个 AI Agent,我把企业 AI 平台搭起来了
一直想给自己弄一套能用的 AI 平台,聊天、Agent、知识库都想有,后来用 AI 加开源组件真搭了一个出来,部署和配置大部分是写提示词丢给 AI Agent 干的,当然中间也踩了不少坑。
动手之前,我把市面上的商业 SaaS 挨个看了一遍,报价单翻下来,按人头收费,一年下来不是小钱,数据还都存在别人服务器上,不太放心,后来才想走开源私有化这条路,软件不要钱,跑在自己机器上。麻烦是组件多,认证、模型网关、应用平台、门户、监控,五六样东西要自己一个个装,光打通就得好几天。
我就干脆自己动手,用这些开源组件攒了一套。过程没有听上去那么顺,断断续续调了好几天,SSO 打不通、容器网络抽风这类事都碰上了,才把 docker-compose 和部署文档一点点磨齐,这套东西后来整理成了开源项目 AI AllInOne,这篇就把整个过程记下来,踩过的坑也一起写上,自己搭的时候省得再踩一遍。
用了哪些组件
组件不多,不到十个,Keycloak 管登录,一个账号就能进所有产品。模型路由交给 NewAPI 和 LiteLLM,渠道、配额、成本都从这儿调。Dify 负责 AI 应用,可视化拖拽就能搭 Agent 和知识库。监控走 Prometheus 和 Grafana,日志丢给 Loki,调用明细由 Langfuse 记。Gitea 存代码,Ghost 做企业门户,再加个 Admin Center 统一管后台。全都用 docker-compose 串好了,一条命令就跑。
部署过程
前提是一台装了 Docker 的机器,Windows 11 加 Docker Desktop 或者 Linux 都行,能访问镜像仓库就好。
git clone https://github.com/sdlyxianchao/AIAllInOne AIAllInOne
cd AIAllInOne/windows
docker compose up -d
容器起来之后要初始化,环境变量、Keycloak 域、NewAPI 里的模型渠道(DeepSeek 之类)、Dify 的模型供应商,一项项配过来。这些我基本没动手,项目里提供了一个部署提示词,把项目路径和提示词丢给 AI Agent,理论上它就能照着部署文档把平台配起来了,中间会有一些交互和调试,慢慢来就好。最花时间的是对接 AD 域控,让域账号能直接登录所有产品,这一步文档里写得很细,Agent 照着做就行。我用的 Agent 是 WorkBuddy,其它同类工具也行。
跑起来之后日常运维也是同一套思路,查日志、看健康状态、改配置、重启服务,这些事不用自己记命令,直接跟 Agent 说,它操作完跟你确认,不过这么用 token 消耗是真的贵,所以我后来又用 AI 做了个统一的 Admin Center,把各个产品的后台收到一个页面里管,日常巡检走它,加上项目自带的一键健康检查和开机自启,费脑子的事再交给 Agent。唯一建议你自己上心的是备份,机器上这么多服务,数据丢了可找不回来,项目自带备份恢复的脚本和管理页面,一上来就配好。
踩过的坑
1. SSO 打通最费劲。 每个产品对接 OIDC 的字段都不一样,Gitea 光配客户端不够,还要开 ENABLE_AUTO_REGISTRATION,不然用户跳转过去得手动关联账号,Dify 那边又要处理 linkAccount 逻辑,好在文档里都写清楚了,照着来就行。
2. localhost 的坑。 Docker Desktop 的 WSL2 环境下,容器里访问宿主机的 localhost 会解析到 IPv6 的 ::1,端口转发直接失败,全平台统一改用 127.0.0.1 就没这个事了。
3. 改代码后不生效。 后端改了挂载卷里的代码,光 docker compose up -d 不会重启进程,得 docker compose restart,典型症状是前端调接口返回 HTML 而不是 JSON。
最终效果
坑都填完之后,这套平台现在是真能日常用的状态。浏览器打开门户,Keycloak 登一次,DeepChat、Dify、Gitea、Grafana 全部免密进出,不用挨个记账号。
聊天用 DeepChat,模型走 NewAPI 和 LiteLLM 路由,想用哪家切哪家。Agent 和知识库在 Dify 里拖拽搭,搭完直接发布出去给人用,工具类的东西还能从 MCP 和 Skill 市场一键装。

监控这边,Grafana 上各容器的状态、模型调用量、花费曲线都摆在那,Langfuse 里每一笔调用明细都翻得出来,谁在用、花了多少钱,清清楚楚。

语义缓存的效果最直观,LiteLLM 开了 redis-semantic,同一个问题换个说法再问,第一次 17.4 秒,第二次 0.4 秒就返回,相似度 0.917,这笔调用成本是零。最要紧的还是数据,模型调用、提示词、文档全在自家服务器上,一步不出内网。
成本差在哪
自己用或者小团队用的话,开源私有化和商业 SaaS 的差别主要就两点,一是软件费,SaaS 按年收,开源免费;二是数据位置,一个在别人机房,一个在自己机房。维护成本确实有,但一个人兼职运维完全够,监控、告警、备份恢复都是配好的,IM 告警还能推到钉钉、企业微信。
项目开源免费,部署文档和管理员手册都是全的,还带 9 种语言。整个项目现在也刚起步,要完善的地方还不少,感兴趣的话可以一起聊聊,Gitee或者Github搜同名就好了,看看能不能把它做好,遇到问题提 issue,也可以进项目群聊。
更多推荐


所有评论(0)