Connecter LibreChat à CheapTokens : point de terminaison personnalisé librechat.yaml
Ajoutez un point de terminaison CheapTokens à un LibreChat auto-hébergé : une entrée dans librechat.yaml, la clé en variable d'environnement, trois modèles dans le menu.

Sur cette page
Votre LibreChat est en cours d'exécution, mais le menu des modèles n'affiche que ce qui était fourni au départ. Pour ajouter CheapTokens, vous écrivez une entrée endpoints.custom dans librechat.yaml : un nom, l'URL de base https:/, la clé sous forme de variable d'environnement et une liste d'identifiants de modèles. Redémarrez le conteneur, et un point de terminaison « CheapTokens » apparaît dans le menu.
Les noms de champs ci-dessous proviennent de la référence des points de terminaison personnalisés de LibreChat (branche « Latest (dev) » de la documentation, vérifiée le 30 octobre 2026). La page ne porte aucun numéro de version, donc si votre installation est plus ancienne et qu'un champ se comporte différemment, comparez avec la documentation de votre version. Le côté API est celui de notre documentation : format OpenAI Chat Completions, un seul solde pour tous les modèles.
Ce dont l'entrée a besoin#
Quatre champs sont obligatoires, et chacun a un rôle simple :
name— le nom du point de terminaison dans le menu.apiKey— la clé. La documentation recommande une référence comme${VAR}plutôt que la clé elle-même, afin que le secret reste hors du YAML.baseURL— où vont les requêtes :https:/./ api. cheaptokens. dev/ v1 models.default— la liste des identifiants de modèles affichés dans le menu.
Deux champs facultatifs méritent d'être définis. titleConvo: true permet à LibreChat de nommer vos conversations (les titres sont créés sauf s'il vaut false), et modelDisplayLabel est l'étiquette à côté des réponses (la valeur par défaut est « AI »). models.fetch vaut false par défaut, donc LibreChat ne demandera pas de liste de modèles à l'API ; le menu provient de models.default. C'est pourquoi les identifiants ci-dessous sont écrits en toutes lettres.
Connectez-le en trois étapes#
Étape par étape
Connecter LibreChat (Docker)
Fournir la clé au conteneur
La clé doit parvenir au conteneur LibreChat sous forme de variable d'environnement. La documentation de LibreChat permet de définir des variables dans docker- sous environment, alors créez ce fichier à côté de docker-. Le nom de la variable est le nôtre, choisissez celui que vous voulez, gardez-le simplement identique dans le YAML :
services:
api:
environment:
CHEAPTOKENS_API_KEY: ct_your_key_hereLa valeur est un espace réservé : utilisez la clé de votre tableau de bord CheapTokens.
Ajouter le point de terminaison à librechat.yaml
Créez librechat.yaml à côté de docker-. La forme suit l'exemple Mistral de la documentation de LibreChat, avec notre adresse et nos identifiants :
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'Monter le fichier et redémarrer
Le conteneur doit voir le fichier. Ajoutez volumes au même docker-, pour qu'il contienne désormais les deux :
services:
api:
environment:
CHEAPTOKENS_API_KEY: ct_your_key_here
volumes:
- ./librechat.yaml:/app/librechat.yamlPuis appliquez-le :
docker compose up -d
Ouvrez LibreChat dans le navigateur, démarrez une nouvelle conversation et choisissez CheapTokens dans le menu des points de terminaison. Les trois modèles sont dans la liste. Envoyez « Say hi in one sentence » et vous devriez recevoir une réponse. Sinon, passez à la dernière section.
Trois modèles dans un seul menu#
C'est la partie qui rend un chat auto-hébergé intéressant. Imaginons que vous l'exploitez pour une petite équipe. La plupart des questions sont quotidiennes : réécrire cet e-mail, expliquer cette erreur. Pour celles-ci, zai- suffit, avec une fenêtre de contexte de 390K et jusqu'à 8 192 tokens par réponse. Quand quelqu'un colle un long document et veut une longue réponse, il bascule la même conversation sur deepseek- (contexte de 380K, jusqu'à 32 768 tokens par réponse). MiniMaxAI/ (contexte de 180K) est le troisième avis quand deux réponses se contredisent. Pas de second abonnement, pas de seconde clé : les trois sont facturés sur un seul solde.
Combien coûte cette conversation ? Prenons une équipe de cinq personnes envoyant 200 messages par jour, chacun portant environ 3 000 tokens d'entrée (l'historique grandit) et recevant environ 500 tokens en retour :
| Modèle | Entrée $/1M | Sortie $/1M | Par requête | 200 requêtes | OpenRouter, 200 requêtes |
|---|---|---|---|---|---|
| GLM-5.3-Flash | $0.02 | $0.04 | $0.00008 | $0.016 | $0.0284 |
| DeepSeek-V4-Flash | $0.015 | $0.10 | $0.000095 | $0.019 | $0.056 |
| MiniMax-M2.7 | $0.05 | $0.15 | $0.00023 | $0.045 | $0.54 |
3 000 tokens d'entrée et 500 tokens de sortie par requête. Les prix par million de tokens sont actuels et évoluent avec nos tarifs ; la colonne OpenRouter indique des prix de référence pour la même charge de travail.
Dans le tableau, le prix de chaque modèle pour ces 200 requêtes est compté avec l'entrée et la sortie ensemble, et au total cela revient moins cher qu'OpenRouter. Choisissez la ligne qui correspond à votre usage et comparez-la à la page de tarification.
Essayez vous-mêmeEssayez : envoyez une question à deux modèlesAfficher la réponse
Ouvrez une nouvelle conversation, choisissez zai-, et demandez un résumé d'un paragraphe que vous connaissez bien. Passez le modèle dans le même menu à deepseek-, et redemandez. Comparez la longueur et le ton des deux réponses — c'est ce qui vous aidera à choisir le modèle par défaut.
Si le point de terminaison n'apparaît pas ou répond par une erreur#
La plupart des problèmes relèvent de l'une de trois choses. Choisissez celle qui correspond à ce que vous voyez :
Choisissez votre cas
Que voyez-vous ?
Choisissez une option pour voir la réponse
CheapTokens est absent du menu
LibreChat n'a jamais lu votre fichier. Vérifiez que librechat.yaml est monté sur / (le fichier de surcharge ci-dessus), que l'indentation YAML est intacte, et que vous avez exécuté docker compose up - après la modification.
401 Unauthorized
La clé est manquante ou incorrecte. Vérifiez que le nom après ${ dans librechat.yaml est exactement le nom de la variable d'environnement, et que la clé ne contient pas d'espaces ou de guillemets collés. Plus de détails sur cette erreur dans API 401 ou 404.
404 ou une erreur de modèle
L'identifiant du modèle est incorrect. Utilisez l'identifiant complet tel que deepseek- ; le nom court n'est pas accepté. Vous pouvez lister les identifiants exacts avec les étapes de Lister les modèles avec GET /v1/models.
Une fois le premier message passé, vous pouvez ajouter d'autres identifiants à models.default chaque fois que vous voulez un autre modèle dans le menu. Vous préférez une autre interface ? La même idée, une URL de base plus une clé, se trouve dans Connecter Open WebUI à CheapTokens, et le tableau général est dans API compatible OpenAI : qu'est-ce que base_url. Les modèles eux-mêmes sont sur la page GLM.



