文档
LibreChat
LibreChat 在 librechat.yaml 中以配置块的形式接入网关:四个必填字段、一个用于密钥的环境变量,以及一次重启。之后,模型选择器会在一个端点名称下列出 Claude 和 GPT 模型 ID。
LibreChat 在 librechat.yaml 中通过 endpoints.custom 配置网关 — 四个必填字段,密钥来自 .env,并需要重启后选择器才会显示。
# librechat.yaml — project root, beside your .env
version: 1.3.5 # the value the documentation's own example carries
endpoints:
custom:
# Required: name, apiKey, baseURL, models. The name must be unique and
# must not reuse a built-in endpoint name such as openAI or anthropic.
- name: "Kunavo"
apiKey: "${KUNAVO_API_KEY}" # resolved from .env, not written here
# Keep the /v1. LibreChat appends /chat/completions to this by default.
baseURL: "https://api.kunavo.com/v1"
models:
default: ["claude-sonnet-5", "claude-haiku-4-5"]
fetch: true # fills the picker from GET /v1/models
titleConvo: true
titleModel: "claude-haiku-4-5" # titles are a separate call — pin a cheap id
modelDisplayLabel: "Kunavo"
# Optional but worth the four lines: without it LibreChat prices your
# traffic from a table it ships. prompt/completion are USD per million
# tokens; context is that model's own window. All three required.
tokenConfig:
claude-sonnet-5:
prompt: 1.4
completion: 7
context: 1000000
claude-haiku-4-5:
prompt: 0.7
completion: 3.5
context: 200000baseURL 应保留 /v1。 文档通过文字说明而非示例明确了这一点:它指出,如果基础 URL 已经是完整的 completions 端点,则应设置 directEndpoint;并说明这是“必要的,因为应用默认会在 baseURL 后追加 ‘/chat/completions’ 或 ‘/completion’”。因此,https://api.kunavo.com/v1 会解析为应请求的路由 /v1/chat/completions,而 directEndpoint 保持未设置。该网站自己的两个操作示例都以相同方式结尾——https://api.mistral.ai/v1 和 https://openrouter.ai/api/v1。如果此处使用不带路径的源站地址,会出现 404,而不是身份验证错误。librechat.yaml 必须存在于项目根目录中,并挂载到 API 容器中;还必须重启 LibreChat,变更才会显示在 UI 中。新端点未出现在选择器中,几乎总是因为这些步骤,而不是凭据有误——请通过下文的 curl 单独检查凭据。tokenConfig 配置块就是为覆盖此价格而设。请为公开的每个 ID 都进行声明,或者将账目视为估算值,并以 /app/billing 中显示的余额为准。curl,至于客户端的行为,则取决于你与 LibreChat 之间的使用情况。sk-kn- 开头),并充值 $10 起——调用费用从该余额中扣除,失败的调用不会收费。随后,控制台会打开 LibreChat 设置页面。分步操作
- 在
/app/keys创建密钥并复制——它只会显示一次。 - 在 Docker 中,先挂载配置文件:快速入门指南要求你将
docker-compose.override.yml.example复制到docker-compose.override.yml,并取消注释librechat.yaml卷配置。裸机安装则无需此步骤。 - 在项目根目录中创建或编辑
librechat.yaml——该目录与.env相同——并添加上方的endpoints.custom条目。 - 将密钥作为
KUNAVO_API_KEY=sk-kn-...写入.env。YAML 中的${KUNAVO_API_KEY}占位符会从那里读取密钥,从而避免将机密写入你提交的配置文件。 - 重启 LibreChat,然后打开端点选择器:Kunavo 会作为独立条目出现在内置端点旁边;模型列表将从
GET /v1/models获取,若获取失败,则使用你在models.default数组中列出的模型。 - 发送一条消息,然后确认模型选择器确实会切换模型——模型 ID 会在端点解析,因此在同一条目下同时使用 Claude ID 和 GPT ID 属于正常情况,并非配置错误。
已于 2026年9月21日 对照 LibreChat 自定义端点对象参考 检查。第三方设置会发生变化;如果这里的字段名称不再与你看到的内容一致,应以该页面为准,而不是本页。
调试客户端前先验证
一个请求即可确定故障来自端点、密钥还是配置文件。如果返回 JSON,则相同的基础 URL 和密钥可以在 LibreChat 中使用。
# Settles whether a failure is the endpoint, the key, or the client.
curl -sS https://api.kunavo.com/v1/models \
-H "Authorization: Bearer sk-kn-..."字段中应填写哪个模型 ID
每个文本模型都可通过模型 ID 访问——实时列表见 GET /v1/models,包含价格的目录见模型页面。费率单位为每 1M token 的美元,格式为输入 / 输出。
| 模型 ID | Kunavo 输入 / 输出 | 它在 LibreChat 中的位置 |
|---|---|---|
claude-sonnet-5 | $1.40 / $7.00 | models. |
claude-opus-5 | $3.50 / $17.50 | 用于长篇分析时切换的 ID,此时更好的答案值得多花一轮交互 |
claude-haiku-4-5 | $0.70 / $3.50 | 共享实例的流量,以及 titleModel——LibreChat 会通过单独请求为每次对话生成标题 |
gpt-5-6-terra | $0.70 / $4.20 | 长篇粘贴文档,此时上下文窗口是决定因素 |
通过网关时表现各不相同的三个可选字段
此表中的所有内容都来自同一份字段参考资料,资料阅读日期见上文。这些是 LibreChat 对自身配置的说明,并非 Kunavo 的测试结果,也不代表某个特定模型 ID 在请求离开客户端后会如何运行。
| 字段 | 参考资料中的说明 | 这对网关有什么影响 |
|---|---|---|
provider | 通过原生提供方客户端路由自定义端点。目前支持的值为 Anthropic。 | 它切换的是网络协议,而非供应商:同一个配置块可以使用 Anthropic Messages,而不是 chat completions。此路径不会使用 OpenAI 风格的模型获取功能,因此请在 models. |
models.fetch | 为 true 时,会尝试从 API 获取模型列表;如果响应延迟,初次使用时可能会变慢。 | Kunavo 会响应 GET /v1/ |
tokenConfig | 定义特定模型的上下文窗口,以及用于成本跟踪和用量计算的每百万 token 费率。 | 如果不设置此项,账目会根据 LibreChat 内置价格表计算流量费用,并与该表从未收录的 ID 进行匹配。设置后,UI 中显示的数值就是你填写的数值。 |
包含挂载、配置、设置环境变量和重启的四步说明,见 LibreChat 的自定义端点快速入门页面;该页面以网关作为示例。
常见问题
如何向 LibreChat 添加自定义端点?
在项目根目录中、与 .env 同级的位置创建 librechat.yaml,并在 endpoints.custom 下添加一个条目,包含四个必填字段:name、apiKey、baseURL 和 models。name 必须唯一,且不能使用 openAI 或 anthropic 等内置端点名称。将凭据放入 .env,并在 YAML 中通过 ${YOUR_ENV_VAR} 引用,然后重启。在 Docker 中,还必须通过 docker-compose.override.yml 将此文件挂载到 API 容器中;重启后,新条目才会出现在端点选择器中。
LibreChat 的 baseURL 末尾需要加 /v1 吗?
对于兼容 OpenAI 的网关,需要。LibreChat 自己的字段参考说明,directEndpoint 选项适用于基础 URL 已经是完整补全端点的情况;之所以需要此选项,是因为应用默认会在 baseURL 后追加 /chat/completions 或 /completion。因此,基础 URL 应是带有 /v1 后缀的 API 根路径——https://api.kunavo.com/v1——并且 directEndpoint 应保持未设置。LibreChat 网站上的两个示例也采用了相同格式。设置错误会导致 404,而不是身份验证失败,因此可以据此判断问题是否出在密钥上。
为什么 LibreChat 报告的费用与提供方的实际扣费不符?
因为 LibreChat 根据其内置价格表计算请求费用,而不是根据提供方实际收取的费用计算,并且会将请求与模型 ID 匹配。与表中条目相似的网关 ID 会按该条目的费率计费;完全匹配不到任何条目的 ID 则按固定费率计算。解决方法是在自定义端点下添加 tokenConfig 配置块,为你公开的每个 ID 声明 prompt、completion 和 context 的费用,单位为每百万 token 的美元价格;LibreChat 会优先检查此覆盖设置,再查询自己的价格表。请将应用内账目视为估算值,并以提供方显示的余额为准。
LibreChat 能否通过自定义端点使用 Claude 模型?
可以,有两种配置方式。普通的兼容 OpenAI 的自定义端点会将模型 ID 原样传递到 baseURL,因此 Claude ID 会由该端点解析,而不是在 LibreChat 内部解析,也无需 Anthropic 账户。另一种方式是使用 provider 字段,通过 LibreChat 原生的 Anthropic Messages 客户端路由同一配置块——目前支持的值是 anthropic。该路径不会使用 OpenAI 风格的模型获取功能,因此请在 models.default 下列出所需的 ID,而不要依赖自动获取。
Kunavo 测试过 LibreChat 吗?
没有。本页面的配置是根据所示日期的 LibreChat 自己的自定义端点文档转录而来,其中没有任何运行时测试结果——没有会话、没有流式响应、没有工具往返调用,也没有 Agents 运行。本文记录的所有客户端都是如此;已发布的配置页面并非测试结果。你可以在十秒内自行确认基础 URL 和密钥是否有效,本页面上的 curl 命令就是用于此项检查;之后的所有行为都取决于 LibreChat 如何处理你选择的模型 ID。