Dokumentation
LibreChat
LibreChat konfiguriert ein Gateway als Block in librechat.yaml: vier erforderliche Felder, eine Umgebungsvariable für den Schlüssel und ein Neustart. Im Modellauswahlmenü stehen dann Claude- und GPT-IDs hinter einem einzigen Endpunktnamen zur Verfügung.
LibreChat nimmt ein Gateway als endpoints.custom-Block in librechat.yaml — vier Pflichtfelder, den Schlüssel aus .env und einen Neustart, bevor es in der Auswahl erscheint.
# 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 behält /v1 bei. Die Dokumentation klärt dies im Fließtext statt anhand eines Beispiels: Sie erklärt, dass directEndpoint für eine Basis-URL vorgesehen ist, die bereits dem vollständigen Completions-Endpunkt entspricht, und dass dies „erforderlich ist, weil die App standardmäßig ‚/chat/completions‘ oder ‚/completion‘ an baseURL anhängt“. Somit wird https://api.kunavo.com/v1 zu /v1/chat/completions aufgelöst, der aufzurufenden Route, und directEndpoint bleibt ungesetzt. Beide Beispiele auf der Website verwenden dieselbe Form: https://api.mistral.ai/v1 und https://openrouter.ai/api/v1. Ein bloßer Basis-Host führt hier zu einem 404 statt zu einem Authentifizierungsfehler.librechat.yaml im Projektstamm vorhanden, in den API-Container eingebunden und LibreChat neu gestartet werden, bevor die Änderung in der Benutzeroberfläche erscheint. Wenn ein neuer Endpunkt nie im Auswahlmenü auftaucht, liegt es fast immer daran und nicht an den Zugangsdaten. Prüfen Sie die Zugangsdaten separat mit dem folgenden curl.tokenConfig dient dazu, diese Zuordnung zu überschreiben. Definieren Sie ihn für jede angebotene ID oder betrachten Sie die Übersicht als Schätzung und Ihren Kontostand bei /app/billing als maßgeblichen Wert.curl. Das Verhalten des Clients klären Sie mit LibreChat.sk-kn-) und füge ab $10 Guthaben hinzu – Aufrufe werden aus diesem Guthaben bezahlt, fehlgeschlagene Aufrufe werden nicht berechnet. Das Dashboard öffnet anschließend die LibreChat-Einrichtung.Schritt für Schritt
- Erstellen Sie unter
/app/keyseinen Schlüssel und kopieren Sie ihn — er wird nur einmal angezeigt. - Binden Sie unter Docker zuerst die Konfiguration ein: Laut Schnellstart müssen Sie
docker-compose.override.yml.examplenachdocker-compose.override.ymlkopieren und das Volumelibrechat.yamleinkommentieren. Bei einer Bare-Metal-Installation entfällt dieser Schritt. - Erstellen oder bearbeiten Sie
librechat.yamlim Projektstamm, also im selben Verzeichnis wie.env, und fügen Sie den obigen Eintragendpoints.customhinzu. - Legen Sie den Schlüssel unter
.envalsKUNAVO_API_KEY=sk-kn-...ab. Der Platzhalter${KUNAVO_API_KEY}in der YAML-Datei wird von dort aus aufgelöst. So bleibt das Geheimnis aus der Konfigurationsdatei heraus, die Sie einchecken. - Starten Sie LibreChat neu und öffnen Sie dann die Endpunktauswahl: Kunavo erscheint neben den integrierten Anbietern als eigener Eintrag. Die Modellliste wird entweder von
GET /v1/modelsabgerufen oder – falls der Abruf fehlschlägt – Ihrem Arraymodels.defaultentnommen. - Senden Sie eine Nachricht und prüfen Sie anschließend, ob der Modellwähler tatsächlich zwischen Modellen wechselt. Da die IDs am Endpunkt aufgelöst werden, sind Claude- und GPT-IDs unter demselben Eintrag hier normal und kein Konfigurationsfehler.
Abgeglichen mit Referenz zu LibreChats benutzerdefiniertem Endpunktobjekt am 21. September 2026. Einstellungen von Drittanbietern können sich ändern; wenn ein Feldname hier nicht mehr mit deiner Ansicht übereinstimmt, ist diese Seite maßgeblich, nicht diese hier.
Vor dem Debugging des Clients prüfen
Eine Anfrage klärt, ob der Fehler am Endpunkt, am Schlüssel oder an der Konfigurationsdatei liegt. Wenn diese Anfrage JSON zurückgibt, funktionieren dieselbe Basis-URL und derselbe Schlüssel in 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-..."Welche Modell-ID in das Feld gehört
Jedes Textmodell ist über eine Modell-ID erreichbar – die aktuelle Liste findest du unter GET /v1/models, den Katalog mit Preisen auf der Modellseite. Die Tarife sind USD pro 1 Mio. Token, Eingabe / Ausgabe.
| Modell-ID | Kunavo: Ein- und Ausgabe | Wo es in LibreChat hineinpasst |
|---|---|---|
claude-sonnet-5 | $1.40 / $7.00 | der Standardeintrag unter models. |
claude-opus-5 | $3.50 / $17.50 | die ID, zu der Sie für eine lange Analyse wechseln, wenn sich eine bessere Antwort lohnt |
claude-haiku-4-5 | $0.70 / $3.50 | der Datenverkehr eines gemeinsam genutzten Systems sowie titleModel – LibreChat erstellt den Titel jedes Gesprächs in einem separaten Aufruf |
gpt-5-6-terra | $0.70 / $4.20 | lange eingefügte Dokumente, bei denen das Kontextfenster ausschlaggebend ist |
Drei optionale Felder mit unterschiedlichem Verhalten hinter einem Gateway
Alle Angaben in dieser Tabelle stammen aus derselben Feldreferenz, die am oben genannten Datum eingesehen wurde. Sie beschreibt die eigene Konfiguration von LibreChat – kein Testergebnis von Kunavo und keine Aussage darüber, wie sich eine bestimmte Modell-ID verhält, sobald die Anfrage den Client verlässt.
| Feld | Was die Referenz angibt | Bedeutung für ein Gateway |
|---|---|---|
provider | Leitet einen benutzerdefinierten Endpunkt über einen nativen Anbieter-Client. Anthropic ist derzeit der unterstützte Wert. | Damit wird das Übertragungsprotokoll gewechselt, nicht der Anbieter: Derselbe Block kann statt Chat-Completions das Anthropic-Messages-Protokoll verwenden. Auf diesem Pfad wird der OpenAI-artige Modellabruf nicht verwendet. Tragen Sie die IDs daher ausdrücklich unter models. |
models.fetch | Wenn der Wert true ist, wird versucht, eine Modellliste von der API abzurufen. Bei verzögerter Antwort kann es dadurch bei der ersten Verwendung zu Verlangsamungen kommen. | Kunavo beantwortet GET /v1/models, sodass die Auswahlliste automatisch befüllt wird. models. |
tokenConfig | Definiert modellspezifische Kontextfenster und Preise pro Million Token für die Kostenverfolgung und Nutzungsberechnung. | Ohne diese Angabe berechnet die Übersicht die Kosten Ihres Datenverkehrs anhand der mitgelieferten Tabelle von LibreChat, abgeglichen mit einer ID, für die diese Tabelle nie vorgesehen war. Mit der Angabe entsprechen die Zahlen in der Benutzeroberfläche den von Ihnen festgelegten Werten. |
Die Anleitung in vier Schritten – einbinden, konfigurieren, Umgebungsvariable setzen, neu starten – finden Sie auf LibreChats Schnellstartseite für benutzerdefinierte Endpunkte. Dort dient ein Gateway als Beispiel.
Häufig gestellte Fragen
Wie füge ich LibreChat einen benutzerdefinierten Endpunkt hinzu?
Erstellen Sie librechat.yaml im Projektstamm neben Ihrer .env-Datei und fügen Sie unter endpoints.custom einen Eintrag mit den vier erforderlichen Feldern hinzu: name, apiKey, baseURL und models. Der Name muss eindeutig sein und darf nicht dem Namen eines integrierten Endpunkts wie openAI oder anthropic entsprechen. Legen Sie die Zugangsdaten in .env ab und verweisen Sie in der YAML-Datei mit ${YOUR_ENV_VAR} darauf. Starten Sie LibreChat anschließend neu. Unter Docker muss die Datei außerdem über docker-compose.override.yml in den API-Container eingebunden werden. Der neue Eintrag erscheint erst nach diesem Neustart in der Endpunktauswahl.
Muss LibreChats baseURL mit /v1 enden?
Ja, bei einem OpenAI-kompatiblen Gateway. Laut LibreChats eigener Feldreferenz ist die Option directEndpoint für eine Basis-URL vorgesehen, die bereits dem vollständigen Completions-Endpunkt entspricht. Sie ist erforderlich, weil die App standardmäßig /chat/completions oder /completion an baseURL anhängt. Die Basis-URL ist daher die API-Stamm-URL mit dem Suffix /v1 – https://api.kunavo.com/v1 –, und directEndpoint bleibt ungesetzt. Beide Beispiele auf der LibreChat-Website sind entsprechend aufgebaut. Ein Fehler hierbei führt zu einem 404 statt zu einem Authentifizierungsfehler, woran Sie den Unterschied zu einem falschen Schlüssel erkennen.
Warum stimmen die von LibreChat gemeldeten Kosten nicht mit der Abrechnung des Anbieters überein?
LibreChat berechnet die Kosten anhand einer mitgelieferten Preistabelle und nicht anhand der Abrechnung Ihres Anbieters. Dabei gleicht es die Tabelle mit Ihrer Modell-ID ab. Eine Gateway-ID, die einem Tabelleneintrag ähnelt, wird mit dessen Preis berechnet; für eine ID ohne passenden Eintrag gilt ein Festpreis. Fügen Sie zur Korrektur unter Ihrem benutzerdefinierten Endpunkt einen tokenConfig-Block ein, der prompt, completion und context für jede angebotene ID in USD pro Million Token angibt. LibreChat prüft diese Überschreibung, bevor es die eigene Tabelle heranzieht. Betrachten Sie die anwendungsinterne Nutzungsübersicht als Schätzung und den Kontostand Ihres Anbieters als maßgeblichen Wert.
Kann LibreChat Claude-Modelle über einen benutzerdefinierten Endpunkt verwenden?
Ja, in zwei Varianten. Ein gewöhnlicher OpenAI-kompatibler benutzerdefinierter Endpunkt leitet die Modell-ID direkt an Ihre baseURL weiter. Eine Claude-ID wird daher an diesem Endpunkt aufgelöst, nicht innerhalb von LibreChat, und ein Anthropic-Konto ist nicht erforderlich. Alternativ leitet das Feld provider denselben Block über den nativen Anthropic-Messages-Client von LibreChat. Derzeit wird der Wert anthropic unterstützt. Auf diesem Pfad wird der OpenAI-artige Modellabruf nicht verwendet. Tragen Sie die gewünschten IDs daher unter models.default ein, statt sich auf den Abruf zu verlassen.
Hat Kunavo LibreChat getestet?
Nein. Die Konfiguration auf dieser Seite wurde am angegebenen Datum aus der Dokumentation von LibreChat zu benutzerdefinierten Endpunkten übernommen, und nichts darin stammt aus einem Laufzeittest – es gab weder ein Gespräch noch einen gestreamten Durchlauf, einen Tool-Aufruf-Rundlauf oder einen Agents-Lauf. Das gilt für jeden hier dokumentierten Client: Eine veröffentlichte Einrichtungsseite ist kein Test. In zehn Sekunden können Sie selbst prüfen, ob Basis-URL und Schlüssel grundsätzlich funktionieren. Dafür ist der curl-Aufruf auf dieser Seite vorgesehen. Alles Weitere hängt vom Verhalten von LibreChat mit der von Ihnen gewählten Modell-ID ab.