Narzędzia i integracjePrzewodnik
Podłącz LibreChat do CheapTokens: niestandardowy endpoint w librechat.yaml
Dodaj endpoint CheapTokens do samodzielnie hostowanego LibreChat: jeden wpis w librechat.yaml, klucz jako zmienna środowiskowa, trzy modele w menu.

Na tej stronie
Twój LibreChat działa, ale menu modeli pokazuje tylko to, co było w zestawie. Aby dodać CheapTokens, wpisujesz jeden wpis endpoints.custom w librechat.yaml: nazwę, bazowy URL https:/, klucz jako zmienną środowiskową i listę identyfikatorów modeli. Zrestartuj kontener, a w menu pojawi się endpoint „CheapTokens”.
Nazwy pól poniżej pochodzą z dokumentacji niestandardowych endpointów LibreChat (gałąź dokumentacji „Latest (dev)”, sprawdzona 30 października 2026). Strona nie ma numeru wersji, więc jeśli Twoja instalacja jest starsza i jakieś pole działa inaczej, porównaj z dokumentacją dla swojej wersji. Strona API to ta z naszej dokumentacji: format OpenAI Chat Completions, jedno saldo dla wszystkich modeli.
Czego potrzebuje wpis#
Wymagane są cztery pola, a każde ma proste zadanie:
name— nazwa endpointu w menu.apiKey— klucz. Dokumentacja zaleca odwołanie takie jak${VAR}zamiast samego klucza, aby sekret nie trafił do YAML.baseURL— gdzie trafiają żądania:https:/./ api. cheaptokens. dev/ v1 models.default— lista identyfikatorów modeli pokazywanych w menu.
Warto ustawić dwa opcjonalne pola. titleConvo: true pozwala LibreChat nazywać Twoje czaty (tytuły są tworzone, chyba że ma wartość false), a modelDisplayLabel to etykieta obok odpowiedzi (domyślnie „AI”). models.fetch domyślnie ma wartość false, więc LibreChat nie zapyta API o listę modeli; menu pochodzi z models.default. Dlatego poniższe identyfikatory są podane w pełni.
Podłącz to w trzech krokach#
Krok po kroku
Podłącz LibreChat (Docker)
Przekaż kontenerowi klucz
Klucz musi dotrzeć do kontenera LibreChat jako zmienna środowiskowa. Dokumentacja LibreChat pozwala ustawiać zmienne w docker- w sekcji environment, więc utwórz ten plik obok docker-. Nazwa zmiennej jest nasza, wybierz dowolną, tylko zachowaj ją identyczną w YAML:
services:
api:
environment:
CHEAPTOKENS_API_KEY: ct_your_key_hereWartość to placeholder: użyj klucza z panelu CheapTokens.
Dodaj endpoint do librechat.yaml
Utwórz librechat.yaml obok docker-. Kształt jest zgodny z przykładem Mistral w dokumentacji LibreChat, z naszym adresem i identyfikatorami:
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'Zamontuj plik i zrestartuj
Kontener musi widzieć plik. Dodaj volumes do tego samego docker-, aby teraz zawierał oba:
services:
api:
environment:
CHEAPTOKENS_API_KEY: ct_your_key_here
volumes:
- ./librechat.yaml:/app/librechat.yamlNastępnie zastosuj to:
docker compose up -d
Otwórz LibreChat w przeglądarce, rozpocznij nowy czat i wybierz CheapTokens w menu endpointów. Trzy modele są na liście. Wyślij „Say hi in one sentence” i powinieneś otrzymać odpowiedź. Jeśli nie, przejdź do ostatniej sekcji.
Trzy modele w jednym menu#
To jest część, która sprawia, że samodzielnie hostowany czat jest wart zachodu. Załóżmy, że prowadzisz go dla małego zespołu. Większość pytań to codzienne sprawy: przepisz tego maila, wyjaśnij ten błąd. Do nich wystarczy zai-, z oknem kontekstu 390K i do 8 192 tokenów na odpowiedź. Gdy ktoś wkleja długi dokument i chce długiej odpowiedzi, przełącza ten sam czat na deepseek- (kontekst 380K, do 32 768 tokenów na odpowiedź). MiniMaxAI/ (kontekst 180K) to trzecia opinia, gdy dwie odpowiedzi się nie zgadzają. Bez drugiej subskrypcji, bez drugiego klucza: wszystkie trzy są rozliczane z jednego salda.
Ile kosztuje taki czat? Weźmy zespół pięciu osób wysyłających 200 wiadomości dziennie, z których każda niesie około 3 000 tokenów wejściowych (historia rośnie) i zwraca około 500 tokenów:
| Model | Wejście $/1M | Wyjście $/1M | Za żądanie | 200 żądań | OpenRouter, 200 żądań |
|---|---|---|---|---|---|
| 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ów wejściowych i 500 tokenów wyjściowych na żądanie. Ceny za 1 mln tokenów są aktualne i zmieniają się wraz z naszymi taryfami; kolumna OpenRouter pokazuje ceny referencyjne dla tego samego obciążenia.
W tabeli cena każdego modelu za te 200 żądań jest liczona razem z wejściem i wyjściem, a w sumie wychodzi taniej niż OpenRouter. Wybierz wiersz odpowiadający Twojemu użyciu i porównaj go ze stroną cennika.
Spróbuj samWypróbuj: wyślij jedno pytanie do dwóch modeliPokaż odpowiedź
Otwórz nowy czat, wybierz zai- i poproś o streszczenie akapitu, który dobrze znasz. Przełącz model w tym samym menu na deepseek- i zapytaj ponownie. Porównaj długość i ton obu odpowiedzi — na tej podstawie decydujesz o domyślnym modelu.
Jeśli endpoint się nie pojawia lub odpowiada błędem#
Większość problemów to jedna z trzech rzeczy. Wybierz tę, która pasuje do tego, co widzisz:
Wybierz swój przypadek
Co widzisz?
Wybierz opcję, aby zobaczyć odpowiedź
Brak CheapTokens w menu
LibreChat nigdy nie odczytał Twojego pliku. Sprawdź, czy librechat.yaml jest zamontowany w / (plik nadpisujący powyżej), czy wcięcia YAML są nienaruszone i czy uruchomiłeś docker compose up - po zmianie.
401 Unauthorized
Brakuje klucza lub jest błędny. Sprawdź, czy nazwa po ${ w librechat.yaml jest dokładnie nazwą zmiennej środowiskowej i czy w klucz nie wklejono spacji ani cudzysłowów. Więcej o tym błędzie w API 401 lub 404.
404 lub błąd modelu
Identyfikator modelu jest błędny. Użyj pełnego identyfikatora, takiego jak deepseek-; krótka nazwa nie jest akceptowana. Dokładne identyfikatory możesz wylistować krokami z List models with GET /v1/models.
Gdy pierwsza wiadomość przejdzie, możesz dodawać kolejne identyfikatory do models.default, kiedy tylko chcesz mieć inny model w menu. Wolisz inny front end? Ten sam pomysł, bazowy URL plus klucz, jest w Connect Open WebUI to CheapTokens, a ogólny obraz w OpenAI-compatible API: what base_url is. Same modele są na stronie GLM.



