도구 및 통합가이드
LibreChat을 CheapTokens에 연결하기: librechat.yaml 커스텀 엔드포인트
셀프 호스팅 LibreChat에 CheapTokens 엔드포인트 추가하기: librechat.yaml 항목 하나, 환경 변수로 지정한 키, 메뉴의 세 모델.

LibreChat가 실행 중이지만 모델 메뉴에는 기본 제공되는 모델만 표시됩니다. CheapTokens를 추가하려면 librechat.yaml에 endpoints.custom 항목을 하나 작성하면 됩니다. 이름, 기본 URL https:/, 환경 변수로 지정한 키, 그리고 모델 id 목록입니다. 컨테이너를 재시작하면 메뉴에 "CheapTokens" 엔드포인트가 나타납니다.
아래 필드 이름은 LibreChat의 커스텀 엔드포인트 문서(문서 "Latest (dev)" 브랜치, 2026년 10월 30일 확인)에서 가져왔습니다. 해당 페이지에는 버전 번호가 없으므로, 설치 버전이 더 오래되어 필드 동작이 다르다면 사용 중인 릴리스의 문서와 비교하세요. API 쪽은 문서에 나온 그대로입니다. OpenAI Chat Completions 형식이며, 모든 모델이 하나의 잔액으로 청구됩니다.
항목에 필요한 것#
필수 필드는 네 가지이며, 각각 하는 일은 단순합니다.
name— 메뉴에서 엔드포인트가 표시될 이름입니다.apiKey— 키입니다. 문서에서는 키 자체 대신${VAR}같은 참조를 권장하므로, 비밀 값이 YAML에 남지 않습니다.baseURL— 요청이 가는 주소입니다:https:/./ api. cheaptokens. dev/ v1 models.default— 메뉴에 표시할 모델 id 목록입니다.
설정해 둘 만한 선택 필드가 두 가지 있습니다. titleConvo: true을 사용하면 LibreChat이 채팅 이름을 지정합니다(false이 아니면 제목이 생성됩니다). modelDisplayLabel은 답변 옆에 붙는 레이블입니다(기본값은 "AI"). models.fetch의 기본값은 false이므로 LibreChat은 API에 모델 목록을 요청하지 않습니다. 메뉴는 models.default에서 만들어집니다. 그래서 아래 id들을 전부 풀네임으로 적었습니다.
세 단계로 연결하기#
단계별로
LibreChat(Docker) 연결
컨테이너에 키 전달하기
키는 환경 변수로 LibreChat 컨테이너에 전달되어야 합니다. LibreChat 문서에서는 environment 아래의 docker-에 변수를 설정할 수 있으므로, docker- 옆에 해당 파일을 만드세요. 변수 이름은 임의로 정하면 되며, YAML에서도 동일하게 유지하기만 하면 됩니다.
services:
api:
environment:
CHEAPTOKENS_API_KEY: ct_your_key_here값은 자리 표시자입니다. CheapTokens 대시보드의 키를 사용하세요.
librechat.yaml에 엔드포인트 추가하기
docker- 옆에 librechat.yaml을 만드세요. 구조는 LibreChat 문서의 Mistral 예시를 따르며, 주소와 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'파일 마운트하고 재시작하기
컨테이너가 파일을 볼 수 있어야 합니다. 같은 docker-에 volumes를 추가하면 이제 둘 다 포함됩니다.
services:
api:
environment:
CHEAPTOKENS_API_KEY: ct_your_key_here
volumes:
- ./librechat.yaml:/app/librechat.yaml그런 다음 적용하세요.
docker compose up -d
브라우저에서 LibreChat을 열고 새 채팅을 시작한 뒤 엔드포인트 메뉴에서 CheapTokens를 선택하세요. 세 모델이 목록에 있습니다. "Say hi in one sentence"를 보내면 답변이 돌아와야 합니다. 그렇지 않다면 마지막 섹션으로 넘어가세요.
하나의 메뉴에 세 모델#
이 부분이 셀프 호스팅 채팅을 쓸 만하게 만듭니다. 작은 팀을 위해 운영한다고 가정해 봅시다. 대부분의 질문은 일상적인 것입니다. 이 이메일을 다시 써 줘, 이 오류를 설명해 줘 같은 것들입니다. 그런 경우에는 zai-이면 충분합니다. 390K 컨텍스트 윈도우에 답변당 최대 8,192 토큰입니다. 누군가 긴 문서를 붙여 넣고 긴 답변을 원하면 같은 채팅에서 deepseek-로 전환합니다(380K 컨텍스트, 답변당 최대 32,768 토큰). 두 답변이 서로 다를 때 세 번째 의견으로 MiniMaxAI/(180K 컨텍스트)을 씁니다. 두 번째 구독도, 두 번째 키도 필요 없습니다. 세 모델 모두 하나의 잔액으로 청구됩니다.
그 채팅 비용은 얼마일까요? 다섯 명이 하루에 200개 메시지를 보내고, 각 메시지가 약 3,000 입력 토큰(히스토리가 늘어남)을 담고 약 500 토큰을 돌려받는다고 가정해 봅시다.
| 모델 | 입력 $/1M | 출력 $/1M | 요청당 | 200회 요청 | OpenRouter, 200회 요청 |
|---|---|---|---|---|---|
| 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개 및 출력 500개 토큰입니다. 100만 토큰당 가격은 현재 기준이며 당사 요금제에 따라 함께 변경됩니다. OpenRouter 열은 동일한 작업량에 대한 참고 가격을 보여줍니다.
표에서 각 모델의 200개 요청 가격은 입력과 출력을 합쳐 계산했으며, 총합은 OpenRouter보다 저렴합니다. 사용량에 맞는 행을 골라 가격 페이지와 비교하세요.
직접 해보기직접 해보기: 두 모델에 같은 질문 보내기정답 보기
새 채팅을 열고 zai-을 선택한 뒤, 잘 아는 문단의 요약을 요청하세요. 같은 메뉴에서 모델을 deepseek-로 전환하고 다시 요청하세요. 두 답변의 길이와 어조를 비교하세요. 그것이 기본 모델을 정하는 기준입니다.
엔드포인트가 나타나지 않거나 오류로 답할 때#
대부분의 문제는 세 가지 중 하나입니다. 보이는 증상에 맞는 것을 고르세요.
사례 선택하기
무엇이 보이나요?
답을 보려면 옵션을 선택하세요
메뉴에 CheapTokens가 없음
LibreChat이 파일을 읽지 않았습니다. librechat.yaml이 /에 마운트되었는지(위의 오버라이드 파일), YAML 들여쓰기가 그대로인지, 변경 후 docker compose up -을 실행했는지 확인하세요.
401 Unauthorized
키가 없거나 잘못되었습니다. librechat.yaml의 ${ 뒤에 오는 이름이 환경 변수 이름과 정확히 같은지, 키에 공백이나 따옴표가 붙어 들어가지 않았는지 확인하세요. 이 오류에 대한 자세한 내용은 API 401 또는 404를 참고하세요.
404 또는 모델 오류
모델 id가 잘못되었습니다. deepseek- 같은 전체 id를 사용하세요. 짧은 이름은 허용되지 않습니다. GET /v1/models로 모델 목록 조회의 단계에 따라 정확한 id를 확인할 수 있습니다.
첫 메시지가 통과되면, 메뉴에 다른 모델을 추가하고 싶을 때마다 models.default에 id를 더 추가할 수 있습니다. 다른 프런트 엔드를 선호하시나요? 기본 URL과 키라는 같은 개념은 Open WebUI를 CheapTokens에 연결하기에 있고, 전체 그림은 OpenAI 호환 API: base_url이란 무엇인가에 있습니다. 모델 자체는 GLM 페이지에 있습니다.



