文件

文件

LibreChat

LibreChat 會將閘道設定為 librechat.yaml 中的一個區塊:四個必填欄位、用於金鑰的環境變數,以及一次重新啟動。之後,模型選擇器便能透過單一端點名稱使用 Claude 和 GPT 的模型 ID。

LibreChat 在 librechat.yaml 中以 endpoints.custom 區塊設定閘道 — 四個必要欄位,金鑰來自 .env,並須重新啟動後選擇器才會顯示。

librechat.yaml
# 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: 200000
baseURL 須保留 /v1。 文件以文字而非範例說明了此規則:directEndpoint 是為已包含完整 completions 端點的基礎 URL 所設;「這是必要的,因為應用程式預設會在 baseURL 後方附加「/chat/completions」或「/completion」。」因此 https://api.kunavo.com/v1 會解析為 /v1/chat/completions,也就是要呼叫的路由,而 directEndpoint 則保持未設定。網站本身提供的兩個操作範例也都以相同方式結尾 — https://api.mistral.ai/v1 和 https://openrouter.ai/api/v1。此處若填入裸來源網址,會導致 404,而非驗證錯誤。
在 Docker 上,只編輯檔案還不夠。快速入門頁明確說明,librechat.yaml 必須存在於專案根目錄、掛載至 API 容器,並且必須重新啟動 LibreChat,變更才會套用至介面。若新端點沒有出現在選擇器中,幾乎總是這個原因,而不是憑證問題——請另外使用下方的 curl 確認憑證。
用量帳目反映的是 LibreChat 的計算結果,不是實際扣款。LibreChat 會依照內建的價格表,對照模型 ID 計算請求費用;因此,閘道 ID 可能會按照另一個模型的費率扣算,這正是上方 tokenConfig 區塊的用途。請為你提供的每個 ID 設定此區塊,否則就將帳目視為估算值,並以 /app/billing 中的餘額為準。
此設定是依據下方日期當天 LibreChat 自己的文件整理而成。Kunavo 尚未使用 LibreChat 連線自家端點——沒有對話、串流回合、工具往返呼叫或 Agents 執行紀錄。已發布的設定頁不等於測試,本文也不應被視為測試結果;你可以在十秒內確認的是下方的 curl,用戶端的行為則由你與 LibreChat 負責。
Kunavo 不提供 embedding、文字轉語音或語音轉文字模型,因此此端點只回應聊天 completions 請求,不支援其他功能。這點很重要,因為 LibreChat 的附加功能會使用其他類型的提供者:檔案聊天會透過獨立的 RAG API 執行向量索引,並使用其專屬金鑰和 base URL;語音功能也需要各自的憑證。這些功能應繼續使用原本的提供者;上方區塊中的金鑰僅供自訂端點使用,不適用於頁面上的其他功能。
還沒有金鑰?建立 Kunavo 帳戶,建立金鑰(以 sk-kn- 開頭),並從 $10 起新增額度——呼叫會從該餘額扣款,失敗的呼叫不會計費。之後儀表板會開啟 LibreChat 設定。

逐步操作

  1. 在 /app/keys 建立金鑰並複製——金鑰只會顯示一次。
  2. 在 Docker 上,請先掛載設定檔:快速入門指南要求你將 docker-compose.override.yml.example 複製到 docker-compose.override.yml,並取消註解 librechat.yaml volume。裸機安裝則可略過此步驟。
  3. 在專案根目錄建立或編輯 librechat.yaml——也就是與你的 .env 相同的目錄——並新增上方的 endpoints.custom 項目。
  4. 在 .env 中將金鑰設為 KUNAVO_API_KEY=sk-kn-...。YAML 中的 ${KUNAVO_API_KEY} 佔位符會從該處解析,讓你不必將機密寫入要提交的設定檔。
  5. 重新啟動 LibreChat,然後開啟端點選擇器:Kunavo 會以獨立項目出現在內建項目旁。模型清單會從 GET /v1/models 擷取;若擷取失敗,則使用你的 models.default 陣列。
  6. 傳送一則訊息,接著確認模型選擇器確實會切換模型——模型 ID 會在端點解析,因此在此情況下,同一個項目下有 Claude 和 GPT 的 ID 是正常的,並非設定錯誤。

已於 2026年9月21日 根據 LibreChat 自訂端點物件參考 進行確認。第三方設定會變動;如果這裡的欄位名稱不再與你看到的內容相符,應以該頁面為準,而不是本頁。

這是簡短版本。完整指南——模型選擇、實際工作階段費用,以及失敗情況——請參閱 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 權杖的美元價格,輸入/輸出。

模型 IDKunavo 輸入/輸出它在 LibreChat 中的位置
claude-sonnet-5$1.40 / $7.00models.default 中的預設項目——日常對話使用的模型
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長篇貼上的文件;此時上下文視窗是決定因素
計費方式是從預付餘額按權杖計費,沒有月費——請參閱 billing。在重複的上下文中——這是編輯器或聊天用戶端傳送內容的大部分——提示快取 對帳單的影響比模型選擇更大。

閘道後方有三個行為各異的選填欄位

此表的所有內容都來自同一份欄位參考文件,並於上方日期查閱。這是 LibreChat 對自身設定的說明,並非 Kunavo 的測試結果,也不代表特定模型 ID 在請求離開用戶端後會有何種行為。

欄位參考文件的說明對閘道的影響
provider透過原生提供者用戶端路由自訂端點。目前支援的值是 Anthropic。它會切換線上通訊協定,而非供應商:同一個區塊可以使用 Anthropic Messages,而非 chat completions。此路徑不會使用 OpenAI 樣式的模型擷取,因此請在 models.default 下明確列出模型 ID。
models.fetch設為 true 時,會嘗試從 API 擷取模型清單;若回應延遲,初次使用時可能會變慢。Kunavo 會回應 GET /v1/models,因此模型選擇器會自動填入模型。若此呼叫失敗,則會使用 models.default 作為備援;因此即使啟用了擷取功能,也建議填入此欄位。
tokenConfig定義各模型的上下文視窗及每百萬 token 費率,供成本追蹤和用量計算使用。若未設定,帳目會依照 LibreChat 內建價格表,對照該表中原本沒有的 ID 計算流量費用。設定後,介面中的數字就會採用你填入的值。

四步驟操作指南——掛載、設定、設定環境變數、重新啟動——請參閱 LibreChat 自訂端點快速入門頁;該頁以閘道作為範例。

常見問題

如何將自訂端點新增至 LibreChat?

在專案根目錄、與 .env 同一層建立 librechat.yaml,並在 endpoints.custom 下新增一個項目,填入四個必填欄位:name、apiKey、baseURL 和 models。名稱必須唯一,且不得使用 openAI 或 anthropic 等內建端點名稱。將憑證放在 .env,並在 YAML 中以 ${YOUR_ENV_VAR} 引用,然後重新啟動。在 Docker 上,還必須透過 docker-compose.override.yml 將檔案掛載至 API 容器;重新啟動後,新項目才會出現在端點選擇器中。

LibreChat 的 baseURL 需要以 /v1 結尾嗎?

若使用 OpenAI 相容閘道,則需要。LibreChat 自己的欄位參考文件指出,directEndpoint 選項適用於 base URL 已是完整 completions 端點的情況;這是必要的,因為應用程式預設會在 baseURL 後方附加 /chat/completions 或 /completion。因此,base URL 應是附有 /v1 後綴的 API 根路徑——https://api.kunavo.com/v1——且 directEndpoint 應保持未設定。LibreChat 網站上的兩個範例也採用相同格式。若設定錯誤,會出現 404,而不是驗證失敗;這有助於將問題與金鑰錯誤區分開來。

為什麼 LibreChat 回報的費用與提供者實際收取的金額不同?

因為 LibreChat 會依照內建價格表,而非提供者的實際帳單,對照你的模型 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 執行紀錄。此處記載的所有用戶端皆如此;已發布的設定頁不等於測試。你可以在十秒內自行確認 base URL 和金鑰是否可用,這正是此頁 curl 指令的用途;除此之外的行為,取決於 LibreChat 如何處理你選擇的模型 ID。