Zurück zum Blog

Tools & IntegrationenAnleitung

LibreChat mit CheapTokens verbinden: benutzerdefinierter Endpunkt in librechat.yaml

Füge einen CheapTokens-Endpunkt zu selbst gehostetem LibreChat hinzu: ein Eintrag in librechat.yaml, der Schlüssel als Umgebungsvariable, drei Modelle im Menü.

Von CheapTokens TeamVeröffentlicht am 4 Min. Lesezeit

LibreChat-Konfigurationseintrag, der auf die CheapTokens-API zeigt
Auf dieser Seite
  1. Was der Eintrag braucht
  2. In drei Schritten verbinden
  3. Drei Modelle in einem Menü
  4. Wenn der Endpunkt nicht erscheint oder mit einem Fehler antwortet

Dein LibreChat läuft, aber das Modellmenü zeigt nur die mitgelieferten Modelle. Um CheapTokens hinzuzufügen, schreibst du einen endpoints.custom-Eintrag in librechat.yaml: einen Namen, die Basis-URL https://api.cheaptokens.dev/v1, den Schlüssel als Umgebungsvariable und eine Liste von Modell-IDs. Starte den Container neu, und ein „CheapTokens“-Endpunkt erscheint im Menü.

Die folgenden Feldnamen stammen aus der Referenz für benutzerdefinierte Endpunkte von LibreChat (Dokumentation, Branch „Latest (dev)“, geprüft am 30. Oktober 2026). Die Seite trägt keine Versionsnummer; wenn deine Installation älter ist und sich ein Feld anders verhält, vergleiche mit der Dokumentation für deine Version. Die API-Seite ist die aus unserer Dokumentation: OpenAI-Chat-Completions-Format, ein Guthaben für alle Modelle.

Was der Eintrag braucht#

Vier Felder sind erforderlich, und jedes hat eine einfache Aufgabe:

  • name — wie der Endpunkt im Menü heißt.
  • apiKey — der Schlüssel. Die Dokumentation empfiehlt eine Referenz wie ${VAR} statt des Schlüssels selbst, damit das Geheimnis nicht im YAML landet.
  • baseURL — wohin die Anfragen gehen: https://api.cheaptokens.dev/v1.
  • models.default — die Liste der Modell-IDs, die im Menü angezeigt werden.

Zwei optionale Felder lohnen sich. titleConvo: true lässt LibreChat deine Chats benennen (Titel werden erstellt, es sei denn, es ist false), und modelDisplayLabel ist die Beschriftung neben den Antworten (Standard ist „AI“). models.fetch ist standardmäßig false, sodass LibreChat die API nicht nach einer Modellliste fragt; das Menü kommt aus models.default. Deshalb sind die IDs unten vollständig ausgeschrieben.

In drei Schritten verbinden#

Schritt für Schritt

LibreChat verbinden (Docker)

Dem Container den Schlüssel geben

Der Schlüssel muss den LibreChat-Container als Umgebungsvariable erreichen. Laut LibreChat-Dokumentation kannst du Variablen in docker-compose.override.yml unter environment setzen; erstelle diese Datei neben docker-compose.yml. Der Variablenname ist uns überlassen, wähle einen beliebigen, halte ihn nur im YAML identisch:

yaml
services:
  api:
    environment:
      CHEAPTOKENS_API_KEY: ct_your_key_here

Der Wert ist ein Platzhalter: Verwende den Schlüssel aus deinem CheapTokens-Dashboard.

Den Endpunkt zu librechat.yaml hinzufügen

Erstelle librechat.yaml neben docker-compose.yml. Die Struktur folgt dem Mistral-Beispiel in der LibreChat-Dokumentation, mit unserer Adresse und unseren IDs:

yaml
endpoints:
  custom:
    - name: 'CheapTokens'
      apiKey: '${CHEAPTOKENS_API_KEY}'
      baseURL: 'https://api.cheaptokens.dev/v1'
      models:
        default:
          - 'zai-org/GLM-5.3-Flash'
          - 'deepseek-ai/DeepSeek-V4-Flash-0731'
          - 'MiniMaxAI/MiniMax-M2.7'
      titleConvo: true
      modelDisplayLabel: 'CheapTokens'

Die Datei einbinden und neu starten

Der Container muss die Datei sehen. Füge volumes zur selben docker-compose.override.yml hinzu, sodass sie nun beides enthält:

yaml
services:
  api:
    environment:
      CHEAPTOKENS_API_KEY: ct_your_key_here
    volumes:
      - ./librechat.yaml:/app/librechat.yaml

Wende es dann an:

bash
docker compose up -d
Vom Schlüssel zum Menü: Umgebungsvariable, librechat.yaml, der Mount, dann CheapTokens in der Modellliste
Der Weg vom Schlüssel zum CheapTokens-Endpunkt im LibreChat-Menü

Öffne LibreChat im Browser, starte einen neuen Chat und wähle CheapTokens im Endpunktmenü. Die drei Modelle stehen in der Liste. Sende „Sag Hallo in einem Satz“ und du solltest eine Antwort erhalten. Wenn nicht, springe zum letzten Abschnitt.

Drei Modelle in einem Menü#

Das ist der Teil, der einen selbst gehosteten Chat lohnenswert macht. Angenommen, du betreibst ihn für ein kleines Team. Die meisten Fragen sind alltäglich: diese E-Mail umschreiben, diesen Fehler erklären. Dafür reicht zai-org/GLM-5.3-Flash mit einem Kontextfenster von 390K und bis zu 8.192 Tokens pro Antwort. Wenn jemand ein langes Dokument einfügt und eine lange Antwort möchte, wechselt er denselben Chat zu deepseek-ai/DeepSeek-V4-Flash-0731 (380K Kontext, bis zu 32.768 Tokens pro Antwort). MiniMaxAI/MiniMax-M2.7 (180K Kontext) ist die dritte Meinung, wenn zwei Antworten nicht übereinstimmen. Kein zweites Abonnement, kein zweiter Schlüssel: Alle drei werden von einem Guthaben abgerechnet.

Was kostet so ein Chat? Nimm ein Team von fünf Personen, die täglich 200 Nachrichten senden, jede mit etwa 3.000 Eingabe-Tokens (der Verlauf wächst) und etwa 500 Tokens zurück:

Modell Pro Anfrage 200 Anfragen OpenRouter, 200 Anfragen
GLM-5.3-Flash $0.00008 $0.016 $0.0284
DeepSeek-V4-Flash $0.000095 $0.019 $0.056
MiniMax-M2.7 $0.00023 $0.045 $0.54

3.000 Input- und 500 Output-Tokens pro Anfrage. Die Preise pro 1 Mio. Tokens sind aktuell und ändern sich zusammen mit unseren Tarifen; die OpenRouter-Spalte zeigt Referenzpreise für dieselbe Arbeitslast.

In der Tabelle wird der Preis jedes Modells für diese 200 Anfragen mit Eingabe und Ausgabe zusammen gezählt, und insgesamt ist es günstiger als OpenRouter. Wähle die Zeile, die deiner Nutzung entspricht, und vergleiche sie mit der Preisseite.

Probier es selbstAusprobieren: eine Frage an zwei Modelle sendenAntwort anzeigen

Öffne einen neuen Chat, wähle zai-org/GLM-5.3-Flash und bitte um eine Zusammenfassung eines Absatzes, den du gut kennst. Wechsle im selben Menü das Modell zu deepseek-ai/DeepSeek-V4-Flash-0731 und frage erneut. Vergleiche Länge und Ton der beiden Antworten — danach entscheidest du über das Standardmodell.

Wenn der Endpunkt nicht erscheint oder mit einem Fehler antwortet#

Die meisten Probleme sind eines von drei Dingen. Wähle das aus, was du siehst:

Wähle deinen Fall

Was siehst du?

CheapTokens fehlt im Menü

LibreChat hat deine Datei nie gelesen. Prüfe, ob librechat.yaml unter /app/librechat.yaml eingebunden ist (die Override-Datei oben), ob die YAML-Einrückung intakt ist und ob du nach der Änderung docker compose up -d ausgeführt hast.

401 Unauthorized

Der Schlüssel fehlt oder ist falsch. Prüfe, ob der Name nach ${ in librechat.yaml exakt dem Namen der Umgebungsvariable entspricht und ob der Schlüssel keine eingefügten Leerzeichen oder Anführungszeichen enthält. Mehr zu diesem Fehler in API 401 oder 404.

404 oder ein Modellfehler

Die Modell-ID ist falsch. Verwende die vollständige ID wie deepseek-ai/DeepSeek-V4-Flash-0731; der Kurzname wird nicht akzeptiert. Du kannst exakte IDs mit den Schritten in Modelle mit GET /v1/models auflisten abrufen.

Sobald die erste Nachricht durchgeht, kannst du jederzeit weitere IDs zu models.default hinzufügen, wenn du ein weiteres Modell im Menü möchtest. Lieber ein anderes Frontend? Dieselbe Idee, eine Basis-URL plus ein Schlüssel, steht in Open WebUI mit CheapTokens verbinden, und das Gesamtbild findest du in OpenAI-kompatible API: Was ist base_url. Die Modelle selbst sind auf der GLM-Seite.