
如果你跟我一样手里同时捏着 ChatGPT Plus、Claude Pro还偶尔翻一下 Gemini、再用本地 Ollama 跑点小模型那你大概率也经历过这种状态浏览器里开着一排排的对话标签页每个平台账号独立、历史记录割裂、想对比一下同一个问题在不同模型下的回答都得来回切窗口。后来我刷到了 LibreChat 这个开源项目花了一个晚上部署起来把常用的模型全部接进去从此那个多标签页缝合怪的工作流就被我自己搭建的这个统一入口替代了。LibreChat本质上就是一个可以自托管的 AI 聊天前端聚合平台。它把 OpenAI、Azure OpenAI、Anthropic Claude、Google Gemini、Groq、Mistral、Ollama 这堆模型的 API 全部聚合到一个界面上界面风格基本复刻了 ChatGPT 原版体验支持多用户注册、对话归档、文件夹管理、Token 用量统计、联网搜索、附件上传等能力。适合谁用如果你只是想找一个多模型统一入口它有性价比如果你是团队或小公司想在公司内部署一个大家都能用、而且数据完全自控的 AI 对话平台它也相当能打。这篇文章就把我从零部署、接入模型、跑通多用户到最后踩坑调整的完整过程写出来希望能帮你少走弯路。1. 为什么要自托管一个AI聊天前端三个真实痛点LibreChat 这类型的项目不是给所有人准备的。如果你只是偶尔问一下 ChatGPT那直接用官方界面就好自托管纯属折腾。但如果你遇到了下面这三类问题中的任何一种LibreChat 基本就是为你量身定做的。1.1 多模型切换的成本与割裂感我身边很多朋友是把 AI 当生产力工具用的写代码用 Claude 效果最好日常问答和逻辑推理用 GPT 更稳做长文档总结又得靠 Gemini 的长上下文再加上想试试本地跑的开源模型。问题就来了——你每个平台都要单独充值每份对话记录都留在各自的平台上想回溯上周我给某个项目写的那段 prompt时得先去回忆当时用的是哪个平台。我算过一笔账ChatGPT Plus 一个月 20 美元Claude Pro 一个月 20 美元Gemini 高级版 20 美元左右还没算那些按量计费 API 调用的钱。但接入 LibreChat 之后你完全可以只购买 OpenAI 或者 Claude 的 API 按量付费把用量集中到一个平台里管理很多场景下的实际花费远低于订阅三个会员的费用。更关键的是所有对话历史都在你自己服务器上可以统一搜索、统一归档。1.2 对话数据完全在云端的隐私顾虑公司内部的技术方案讨论、带着未公开项目代码的问题、客户的敏感数据……这些东西直接丢给云端 AI 平台哪怕你没在对话里发什么机密文件名平台的日志策略、数据留存政策也不是你能控制的。LibreChat 把前端、后端、数据库全部部署在你的服务器上对话内容只存在于你自己的 MongoDB 里和第三方平台的唯一交互就是调用模型 API 时传过去的那一次请求。如果你的团队对数据合规有硬性要求还可以进一步接本地模型让业务数据完全不经过外部 API。这一点是官方网页版永远做不到的。1.3 官方前端缺失的多用户和管理能力个人使用的时候可能不觉得但一旦想把 AI 能力开放给团队里的同事官方订阅方案的短板就暴露了成员各自开会员、账单混乱、没有统一用量统计、没法控制谁能用哪个模型。LibreChat 内置了完整的用户注册体系管理员后台可以启停注册、设置默认模型、查看每个用户的 Token 消耗量甚至可以做模型级别的访问限制。再加上它原生支持 Markdown 渲染、代码高亮、LaTeX 公式、图表可视化分享对话记录也比官方界面灵活得多很多细节是深度使用之后才能体会到的。2. 从零部署Docker Compose 路线及最容易卡的几个节点LibreChat 的官方推荐部署方式是用 Docker Compose这是我最推荐的方式理由很简单它把所有依赖Node.js 后端、React 前端、MongoDB都打包好了一条命令拉起升级也方便。不过我在部署过程中还是遇到了几个坑下面按完整流程拆开讲。2.1 准备工作配置要求和项目获取先说最低配置1 核 2G 内存的小型 VPS 就能跑起来但如果你同时接入了多个云端模型 API实际内存占用通常在 500MB 到 1GB 之间。如果打算用 Docker 跑 Ollama 本地模型建议主机内存至少 8GB否则大点的模型会被内存卡死。部署前需要准备一台可以访问外网的服务器或者家里长期开机的 NAS / 小主机已安装 Docker 和 Docker Compose 插件一个域名后面接反向代理需要没有域名用 IP 加端口也能访问但体验和稳定性差不少然后是获取项目git clone https://github.com/danny-avila/LibreChat.git cd LibreChat cp lib/config/.env.example .env在正式开始构建镜像之前需要先编辑.env文件里的几个基础配置项。即使你还没有决定接入哪个模型建议先设置好# 后端端口默认3080 PORT3080 # MongoDB连接串官方docker-compose里默认配置可用 MONGO_URImongodb://127.0.0.1:27017/LibreChat # JWT密钥用于用户会话加密 JWT_SECRETyour-super-secret-key-change-me # 管理员邮箱 ADMIN_EMAILyour-emailexample.comJWT_SECRET 一定不要用默认值否则跑起来的所有会话密钥都是公开的别人可以伪造登录态。2.2 docker-compose 拉起服务完整命令过程LibreChat 的根目录下自带docker-compose.yml和docker-compose.override.yml。直接执行docker compose up -d首次运行会自动构建前端镜像和后端镜像根据网络状况可能需要 10~20 分钟。构建完成后访问http://服务器IP:3080就能看到登录页面。但我实测时在这个环节遇到了两个问题非常典型端口冲突。如果你的机器上已经跑了别的 Nginx 或者其他 Web 服务占用了 3080 端口容器会启动失败。解决办法是在.env里把端口改掉例如PORT3100再重新启动。MongoDB 容器健康检查卡住。LibreChat 的后端容器依赖 MongoDB 启动成功但有时候 MongoDB 首次初始化需要较长时间后端会一直报数据库连接失败。我的经验是不要慌等 1~2 分钟再看或者在docker compose up -d之后执行docker compose logs mongodb看到类似Waiting for connections的日志就说明库没问题了。2.3 反向代理与 HTTPS不装上迟早后悔LibreChat 本身能跑但它是一个 Web 应用如果直接用 IP 加端口对外提供访问会有一个很明显的问题除了浏览器会有不安全连接警告更重要的是浏览器很多新特性比如剪贴板读取权限、摄像头调用等在非 HTTPS 环境下会被直接禁用。我用的方案是 Nginx Proxy Manager 加 Lets Encrypt 证书。如果你不熟悉Caddy 的配置更简单几行配置就能自动申请和续期证书chat.example.com { reverse_proxy 127.0.0.1:3080 }把 DNS 解析记录指到服务器 IP 后Caddy 会自动完成 HTTPS 证书的申请。这步做好之后后面无论是多用户注册还是自定义域名接入都会顺畅很多。3. 模型接入的四种典型路径与关键配置LibreChat 最有价值的地方在于模型聚合。但它只是一个前端本身不提供任何 AI 能力所有对话都需要走模型提供方的 API。官方支持的环境变量非常多我按自己的实测顺序把最常接的几种路径和容易出问题的地方整理出来。3.1 OpenAI 与 Azure OpenAI最无缝的接入如果要用 OpenAI 官方接口只要在.env里设置OPENAI_API_KEYsk-xxxxx重启服务后界面的模型选择器里就会出现 GPT-4o、GPT-4-turbo、GPT-3.5-turbo 等模型选项。这里要注意的是你的账户需要有对应的模型访问权限否则会报 403 或模型不存在。Azure OpenAI 是很多公司实际在用的因为可以走企业合同、数据不出地域。LibreChat 支持它但配置比官方接口多一点AZURE_OPENAI_API_KEYyour-azure-key AZURE_OPENAI_ENDPOINThttps://your-resource.openai.azure.com/ AZURE_OPENAI_API_INSTANCE_NAMEyour-resource-name AZURE_OPENAI_API_VERSION2024-02-15-preview我在这里踩过一个坑api-version必须填一个 Azure 资源里实际支持的版本填错了所有请求都会被 Azure 拒绝连接。LibreChat 文档里默认的版本号不一定和你资源里的一致建议在 Azure 门户的资源管理 → 密钥和端点里核对一下。3.2 Anthropic ClaudeClaude.ai 账号和 Console 账号不是一回事Claude 在写代码、长文本理解上表现很好也是我日常主力。LibreChat 接入 Claude 的配置很简单ANTHROPIC_API_KEYsk-ant-xxxxx但很多人包括我当时的同事会在这里卡住在 Claude.ai 页面上开通了 Pro 会员然后去抄页面上那个 API Key结果一调用就报 401。原因很简单——Claude.ai 的账号密钥和 Anthropic Console 的 API Key 是两套体系前者只能用于官方网页和 App后者才是通过 API 调用的凭证。你得去 console.anthropic.com 单独申请 API Key按量计费。另外从 2024 年底开始Anthropic 把 API 迁移到了新的claude.ai域名模式LibreChat 更新到新版后一般会自动兼容但如果你用的是旧版本镜像可能需要在.env里指定ANTHROPIC_API_ENDPOINThttps://api.anthropic.com3.3 Google Gemini免费额度真香但模型名要写对Gemini 接入后的实际体验很惊喜尤其是长上下文的处理速度和免费额度的慷慨程度。配置如下GOOGLE_API_KEYyour-google-api-key GOOGLE_MODELSgemini-1.5-pro,gemini-1.5-flashGoogle 的 API Key 去 AI Studio 后台申请即可免费档在测试阶段完全够用。容易出错的是模型名目前 LibreChat 的模型列表不一定和 Google 最新的模型名完全同步如果界面上没有出现你想要的模型可以手动配置GOOGLE_MODELS为 Google 官方文档里列出的模型 ID。3.4 Ollama 本地模型告别外部 API 的最后一块拼图这是我觉得 LibreChat 做得最出彩的一部分。Ollama 是目前最省心的本地模型运行工具LibreChat 可以直接把它当作一个模型提供商来接入。在服务器上先安装并启动 Ollamacurl -fsSL https://ollama.com/install.sh | sh ollama pull qwen2.5:14b ollama serve然后在.env里配置OLLAMA_BASE_URLhttp://172.17.0.1:11434注意这里不要用http://localhost:11434。这是一个非常经典的坑LibreChat 后端跑在 Docker 容器里容器内的localhost指的不是宿主机而是容器自己。Docker 默认的 bridge 网络下172.17.0.1才是宿主机的网关地址。如果你用的是 host 网络模式或用 Docker Desktop 在 macOS/Windows 上跑情况又不一样最稳的办法是在宿主机上执行docker network inspect bridge查看网关地址。把 Ollama 接好之后你在界面上可以像切换 GPT-4 一样直接切换到qwen2.5:14b这样的本地模型完全离线可用。我日常的工作流是敏感内容走本地模型一般性问题走 Claude 或 GPT两个模型之间的对话记录完全统一在一个界面里这个体验非常舒服。4. 多用户、用量统计与日常使用体验个人用完顺手之后自然就想把它开放给团队。LibreChat 在这方面做得非常细几乎可以当作一个轻量级的SaaS 管理后台来用。4.1 用户注册策略与管理员控制默认情况下LibreChat 安装好之后任何访问你页面的人都能自助注册一个账号这对团队内部使用来说并不安全。你需要在控制面板里调整注册策略在管理员后台可以设定是否开放注册可以强制关闭只允许你手动创建用户是否需要邮箱验证新用户是否需要管理员审核才能使用是否允许用户自定义 API Key我的建议是如果只是三五个人小范围用直接关闭开放注册在后台手动创建账号如果是公司内部有几十人可以开放注册但开启邮箱域名白名单比如只允许company.com后缀的邮箱注册这样基本杜绝了外部人员混进来。4.2 Token 用量统计再也不用猜谁在烧钱接入 API 之后最怕的是什么怕同事把 API 当免费的疯狂发长对话月底账单爆掉。LibreChat 在用量统计上做得很直观——每条消息、每个会话、每个用户都有 Token 记录后台可以直接按用户查看一段时间内的消耗总量和费用估算。用量的计算逻辑是LibreChat 在调用模型 API 时会把请求和响应的usage信息prompt_tokens、completion_tokens自动写进 MongoDB然后在前端Token 用量页面按会话和日期汇总。它不只统计 OpenAI 系的模型Anthropic、Google、Ollama 这些提供方也会记录。这意味着你可以很清楚地看到小王昨天光用 GPT-4o 就花了 30 美元然后针对性地调整模型的用户权限比如限制部分用户只能使用便宜的 flash 模型或本地模型防止账单失控。4.3 对话管理文件夹、归档与分享链接聊得多了对话列表就会变得巨长。LibreChat 提供的功能很实用文件夹把相关对话按主题整理到文件夹里侧边栏懒加载即使几百个对话也能快速定位归档不删除对话但从主列表移走保持工作区干净搜索全局搜索历史对话内容可以直接搜正文这对经常要找回旧 prompt 的人来说是刚需分享可以生成一个公开或小组可访问的分享链接方便把某段对话截图给同事看——不过分享用的是明文链接敏感内容要注意不要乱发4.4 联网搜索与附件上传补齐官方体验的最后一环很多模型本身不知道最新消息LibreChat 提供了一个联网搜索功能可以通过配置 SearXNG 或者直接对接 Bing 搜索 API 来实现。原理是当你开启联网搜索时LibreChat 会把你的问题转成搜索请求抓取搜索结果页面内容再把搜索结果和问题一起拼进 prompt 上下文给模型让模型基于搜索结果回答。我在实测中的体验是搭配 SearXNG 自建搜索实例后查实时资料的成功率比想象中高。不过要注意的是联网搜索会显著增加 Token 消耗因为每次会把多篇网页内容塞进上下文所以建议把它做成手动开关不要默认开启。另外LibreChat 支持上传图片、PDF、Word 等附件多模态模型可以读取图片内容文本类模型会把文件里的文字提取出来作为上下文。这个功能在分析合同、读论文这些场景下很实用。5. 我踩过的坑与实战建议最后这部分我想把这段时间实际使用中遇到的问题和最后的用法建议一起分享出来这些细节在官方文档里不一定找得到但对于打算长期跑这个服务的人来说非常关键。5.1 MongoDB 数据备份别让对话记录一次没LibreChat 的所有对话、用户、配置都存在 MongoDB 里一旦容器被误删或者服务器磁盘故障没有备份就等于直接丢失所有历史。我是被吓过一次之后才配了自动备份。最简单的备份方式是用mongodumpdocker exec -t librechat-mongodb mongodump --archive/tmp/backup.gz --gzip docker cp librechat-mongodb:/tmp/backup.gz ./backup-$(date %Y%m%d).gz恢复的时候用mongorestore --archivebackup.gz --gzip即可。建议配合 crontab 每天凌晨备份一次并把备份文件同步到对象存储或其他机器上不要跟 MongoDB 放在同一台服务器。5.2 升级版本前必须做的三件事LibreChat 的迭代速度很快基本每隔一两周就会发新版本新功能很诱人但升级前请先做好三件事备份 MongoDB方法如上因为升级过程中有可能会执行数据库迁移脚本备份.env文件新版可能新增了配置项备份一份便于对照查看 release notes有些版本会变更环境变量名称旧配置直接过来会失效我自己实际经历的一次教训是某次升级后新版对模型配置的格式做了调整GOOGLE_MODELS里如果逗号后面带空格就会解析异常导致 Gemini 模型在界面上消失。排查了半天才发现是格式问题后来又读了一遍文档才确认。所以升级这种事别偷懒文档还是要扫一眼。5.3 云端模型与本地模型混用的推荐组合跑到现在我最舒服的组合方案是Claude 模型的 API作为默认主力模型处理日常问答、代码编写OpenAI GPT-4o作为备选用于需要工具调用、或者感受其他思维方式的场景Ollama 上的 qwen2.5 系列作为本地模型处理敏感数据、离线场景Gemini 免费档用来做长文档总结因为长上下文场景下它的性价比极高这个组合覆盖了我将近 90% 的需求而且因为所有对话都在同一个界面里切换模型时上下文还能继续保留这是官方单个平台完全做不到的。5.4 性能优化与资源控制的几个建议如果你和我一样用的是小内存 VPS有几个细节可以大幅降低资源占用前端构建产物用 Nginx 做静态缓存给后端 Node 服务省下不必要的渲染压力如果不需要联网搜索建议不要启动 SearXNG 容器这个搜索服务本身挺吃内存的MongoDB 默认占用可能比较高可以在 docker-compose 里给它加上--wiredTigerCacheSizeGB限制比如限制到 0.5GB多人同时使用时后端 Node 进程的并发处理能力是瓶颈实测 10 人以下用默认配置问题不大人再多就要考虑给后端容器加资源上限、前置负载均衡5.5 我对 LibreChat 的当前评价这个项目在开源社区里已经是一个非常成熟的形态了。它不只是一个山寨 ChatGPT而是一个把模型接入、用户管理、成本控制、数据隐私全部打通的自托管解决方案。如果你愿意折腾一下它能带来的收益远超那一个晚上的部署时间。如果你准备上手我的建议是先不急着把所有的模型都接进来第一步先把 OpenAI 或 Ollama 跑通感受一下对话界面的流畅度觉得好用之后再逐步接入 Claude、Gemini然后配置多用户、联网搜索这些进阶功能。一步一步来你会发现那些原本分散在各处的 AI 工具最后真的能收拢到一个自己完全掌控的入口里。