使用服务端管理的自定义端点
把 Key 写入 LibreChat 服务端的 .env,再定义 baseURL 为 https://www.primoraihub.com/v1 的自定义端点。重启前,必须把模型占位符替换为鉴权模型列表返回的一个准确 ID。
# .env — 不要提交到源码仓库
PRIMORDIAL_API_KEY=YOUR_SERVER_SIDE_KEY
# librechat.yaml
version: 1.3.5
cache: true
endpoints:
custom:
- name: "Primordial AI"
apiKey: "${PRIMORDIAL_API_KEY}"
baseURL: "https://www.primoraihub.com/v1"
models:
default:
- "MODEL_ID_FROM_V1_MODELS"
fetch: true
modelDisplayLabel: "Primordial AI"
LibreChat 不同版本的配置 Schema 可能变化。上述 version 来自 2026-08-24 观察到的官方示例;如果当前安装版本的文档要求不同,应使用该版本规定的值。
现有证据能证明什么
LibreChat 的官方自定义配置指南说明,Docker 安装需要把 YAML 放在预期位置、挂载到 API 容器并重启;其自定义端点字段文档定义了 baseURL、apiKey、必填的 models.default 和可选的 models.fetch。
| 检查 | 2026-08-24 观察结果 | 结论 |
|---|---|---|
无 Key 调用 GET /v1/models | HTTP 401 | 路由到达鉴权边界;这不是成功获取模型。 |
无 Key 调用 POST /v1/chat/completions | HTTP 401 | 路由到达鉴权边界;这不是成功的 LibreChat 对话。 |
| YAML 加载、模型获取、流式、工具、视觉、RAG、Memory 和 MCP | 本指南没有使用 LibreChat 独立端到端测试 | 必须按安装版本、单个模型和具体功能分别验证。 |
OpenAI 兼容自定义端点不会自动获得 LibreChat 的全部能力。LibreChat 兼容矩阵把部分功能标为依赖模型,另一些功能则需要不同的端点类型。
先发现一个真实的备用模型
编辑 YAML 前,在可信 Shell 中执行以下命令。它验证同一个服务端 Key,只输出当前模型 ID:
test -n "$PRIMORDIAL_API_KEY" || {
echo "PRIMORDIAL_API_KEY 未设置" >&2
exit 1
}
curl --fail-with-body --silent --show-error \
https://www.primoraihub.com/v1/models \
-H "Authorization: Bearer $PRIMORDIAL_API_KEY" \
| jq -r '.data[]?.id'
把其中一个返回 ID 写入 models.default。即使 fetch: true,LibreChat 仍要求备用列表;生产环境不能保留字面占位符。
让 LibreChat 能读取配置
- 备份当前 LibreChat 配置。
- 把
PRIMORDIAL_API_KEY写入服务端环境文件,不能包含引号或尾随空格。 - 把自定义端点合并进现有
librechat.yaml,不要覆盖无关端点。 - 根据当前安装版本的官方部署说明,确认 YAML 已挂载到 LibreChat API 容器。
- 校验 YAML 语法,重启 LibreChat,再检查启动日志中的 Schema 或环境变量错误。
排查挂载时不要输出环境变量值,只确认变量存在且非空。
先测试最窄的可用路径
- 登录 LibreChat,选择 Primordial AI 自定义端点。
- 确认模型选择器包含
GET /v1/models返回的准确 ID。 - 新建对话,关闭工具、文件、视觉、Memory 和其他可选功能。
- 发送一个短 Prompt,并在不记录凭据的前提下检查 LibreChat 服务端日志和 Primordial AI 用量。
- 每次最多启用一个可选功能,记录模型、接口、请求结构和结果。
基础聊天成功,只能证明当时的一个 LibreChat 版本、一个自定义端点、一个模型和一条请求路径成功。
按失败阶段排查
| 现象 | 可能边界 | 下一项检查 |
|---|---|---|
| 看不到自定义端点 | YAML 位置、挂载、Schema 或重启 | 对照当前版本的官方配置指南,并检查启动日志。 |
| 模型列表返回 401 | Key 插值或凭据状态 | 直接测试服务端 Key,去掉引号、空白和误加的 Bearer 前缀。 |
| 端点出现但模型获取失败 | /models 响应或网络路径 | 从 LibreChat API 容器内部测试,并保留一个已验证备用 ID。 |
| 模型出现但聊天返回 404 | API 根地址错误或路由重复 | 使用准确的 /v1 baseURL,而不是完整 Chat Completions URL。 |
| 普通聊天成功但工具或视觉失败 | 模型或可选功能语义 | 关闭该功能,并按当前文档验证其准确请求。 |
| 429、5xx 或超时 | 限流、上游或容器网络 | 按 API 错误决策指南处理,只在安全场景采用有限重试。 |
把 LibreChat 主机视为凭据边界
获准使用该端点的 LibreChat 用户,都可能消耗服务端管理的提供商 Key。应使用专用受限 Key、限制端点访问、避免提交 .env、保护管理界面并监控用量。
LibreChat 也支持用户自行提供 Key,但密钥流转和模型获取行为会受版本与配置影响。面向多人开放前必须单独验证该模式。
常见问题
librechat.yaml 应填写什么 baseURL?
使用 https://www.primoraihub.com/v1,不能追加 /chat/completions。
为什么 fetch 为 true 仍需要 models.default?
LibreChat 文档把 models.default 定义为必填项,并在自动获取失败时将其作为备用列表。
修改 YAML 后为什么端点没有出现?
检查文件位置、容器挂载、Schema 版本、YAML 缩进、环境变量插值和 LibreChat 是否重启。
基础聊天成功能否证明全部 LibreChat 功能可用?
不能。工具、视觉、RAG、Memory、MCP、流式细节和其他功能必须按具体模型与端点单独验证。