Collega LibreChat a CheapTokens: endpoint personalizzato in librechat.yaml
Aggiungi un endpoint CheapTokens a LibreChat self-hosted: una voce in librechat.yaml, la chiave come variabile d'ambiente, tre modelli nel menu.

In questa pagina
Il tuo LibreChat è in esecuzione, ma il menu dei modelli mostra solo quelli inclusi di serie. Per aggiungere CheapTokens scrivi una voce endpoints.custom in librechat.yaml: un nome, l'URL di base https:/, la chiave come variabile d'ambiente e un elenco di id dei modelli. Riavvia il container e nel menu compare un endpoint "CheapTokens".
I nomi dei campi qui sotto provengono dal riferimento degli endpoint personalizzati di LibreChat (documentazione del branch "Latest (dev)", verificata il 30 ottobre 2026). La pagina non riporta un numero di versione, quindi se la tua installazione è più vecchia e un campo si comporta diversamente, confronta con la documentazione della tua release. Il lato API è quello della nostra documentazione: formato OpenAI Chat Completions, un unico saldo per ogni modello.
Cosa serve alla voce#
Quattro campi sono obbligatori, e ognuno ha un compito semplice:
name— come si chiama l'endpoint nel menu.apiKey— la chiave. La documentazione consiglia un riferimento come${VAR}invece della chiave stessa, così il segreto resta fuori dal YAML.baseURL— dove vanno le richieste:https:/./ api. cheaptokens. dev/ v1 models.default— l'elenco degli id dei modelli mostrati nel menu.
Vale la pena impostare due campi opzionali. titleConvo: true permette a LibreChat di dare un nome alle tue chat (i titoli vengono creati a meno che non sia false), e modelDisplayLabel è l'etichetta accanto alle risposte (il valore predefinito è "AI"). models.fetch è false per impostazione predefinita, quindi LibreChat non chiederà all'API un elenco di modelli; il menu deriva da models.default. Ecco perché gli id qui sotto sono scritti per esteso.
Collegalo in tre passaggi#
Passo dopo passo
Collega LibreChat (Docker)
Fornisci la chiave al container
La chiave deve arrivare al container LibreChat come variabile d'ambiente. La documentazione di LibreChat ti consente di impostare le variabili in docker- sotto environment, quindi crea quel file accanto a docker-. Il nome della variabile è a tua scelta, scegline uno qualsiasi, basta che sia identico nel YAML:
services:
api:
environment:
CHEAPTOKENS_API_KEY: ct_your_key_hereIl valore è un segnaposto: usa la chiave dalla tua dashboard CheapTokens.
Aggiungi l'endpoint a librechat.yaml
Crea librechat.yaml accanto a docker-. La struttura segue l'esempio Mistral nella documentazione di LibreChat, con il nostro indirizzo e i nostri id:
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'Monta il file e riavvia
Il container deve vedere il file. Aggiungi volumes allo stesso docker-, così ora contiene entrambi:
services:
api:
environment:
CHEAPTOKENS_API_KEY: ct_your_key_here
volumes:
- ./librechat.yaml:/app/librechat.yamlPoi applicalo:
docker compose up -d
Apri LibreChat nel browser, avvia una nuova chat e scegli CheapTokens nel menu degli endpoint. I tre modelli sono nell'elenco. Invia "Say hi in one sentence" e dovresti ricevere una risposta. Se non succede, vai all'ultima sezione.
Tre modelli in un unico menu#
Questa è la parte che rende utile una chat self-hosted. Supponi di gestirla per un piccolo team. La maggior parte delle domande sono quotidiane: riscrivi questa email, spiega questo errore. Per queste basta zai-, con una finestra di contesto di 390K e fino a 8.192 token per risposta. Quando qualcuno incolla un documento lungo e vuole una risposta lunga, passa la stessa chat a deepseek- (contesto 380K, fino a 32.768 token per risposta). MiniMaxAI/ (contesto 180K) è il terzo parere quando due risposte sono in disaccordo. Nessun secondo abbonamento, nessuna seconda chiave: tutti e tre sono fatturati da un unico saldo.
Quanto costa quella chat? Prendi un team di cinque persone che inviano 200 messaggi al giorno, ognuno con circa 3.000 token di input (la cronologia cresce) e con circa 500 token restituiti:
| Modello | Input $/1M | Output $/1M | Per richiesta | 200 richieste | OpenRouter, 200 richieste |
|---|---|---|---|---|---|
| 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 |
3000 token di input e 500 token di output per richiesta. I prezzi per 1M di token sono attuali e cambiano insieme alle nostre tariffe; la colonna OpenRouter mostra i prezzi di riferimento per lo stesso carico di lavoro.
Nella tabella, il prezzo di ciascun modello per quelle 200 richieste è calcolato sommando input e output, e in totale risulta più economico di OpenRouter. Scegli la riga che corrisponde al tuo utilizzo e confrontala con la pagina dei prezzi.
Provalo tu stessoProvalo: invia una domanda a due modelliMostra risposta
Apri una nuova chat, scegli zai- e chiedi il riassunto di un paragrafo che conosci bene. Passa al modello deepseek- nello stesso menu e chiedi di nuovo. Confronta la lunghezza e il tono delle due risposte: è in base a questo che decidi il modello predefinito.
Se l'endpoint non compare o risponde con un errore#
La maggior parte dei problemi è uno di tre casi. Scegli quello che corrisponde a ciò che vedi:
Scegli il tuo caso
Cosa vedi?
Scegli un'opzione per vedere la risposta
CheapTokens manca dal menu
LibreChat non ha mai letto il tuo file. Verifica che librechat.yaml sia montato in / (il file di override qui sopra), che l'indentazione del YAML sia intatta e che tu abbia eseguito docker compose up - dopo la modifica.
401 Unauthorized
La chiave manca o è sbagliata. Verifica che il nome dopo ${ in librechat.yaml sia esattamente il nome della variabile d'ambiente e che nella chiave non siano stati incollati spazi o virgolette. Maggiori dettagli su questo errore in API 401 o 404.
404 o un errore sul modello
L'id del modello è sbagliato. Usa l'id completo come deepseek-; il nome breve non è accettato. Puoi elencare gli id esatti con i passaggi in Elenca i modelli con GET /v1/models.
Una volta che il primo messaggio passa, puoi aggiungere altri id a models.default ogni volta che vuoi un altro modello nel menu. Preferisci un front end diverso? La stessa idea, un URL di base più una chiave, è in Collega Open WebUI a CheapTokens, e il quadro generale è in API compatibile con OpenAI: cos'è base_url. I modelli stessi sono nella pagina GLM.



