Volver al blog

Herramientas e integracionesGuía

Conecta LibreChat a CheapTokens: endpoint personalizado en librechat.yaml

Añade un endpoint de CheapTokens a LibreChat autoalojado: una entrada en librechat.yaml, la clave como variable de entorno, tres modelos en el menú.

Por CheapTokens TeamPublicado el 5 min de lectura

Entrada de configuración de LibreChat apuntando a la API de CheapTokens
En esta página
  1. Qué necesita la entrada
  2. Conéctalo en tres pasos
  3. Tres modelos en un solo menú
  4. Si el endpoint no aparece o responde con un error

Tu LibreChat está funcionando, pero el menú de modelos solo muestra lo que trae de fábrica. Para añadir CheapTokens escribes una entrada endpoints.custom en librechat.yaml: un nombre, la URL base https://api.cheaptokens.dev/v1, la clave como variable de entorno y una lista de ids de modelos. Reinicia el contenedor y aparecerá un endpoint "CheapTokens" en el menú.

Los nombres de campo de abajo provienen de la referencia de endpoints personalizados de LibreChat (rama "Latest (dev)" de la documentación, consultada el 30 de octubre de 2026). La página no lleva número de versión, así que si tu instalación es más antigua y algún campo se comporta distinto, compáralo con la documentación de tu versión. El lado de la API es el de nuestra documentación: formato OpenAI Chat Completions, un solo saldo para todos los modelos.

Qué necesita la entrada#

Cuatro campos son obligatorios, y cada uno tiene una función clara:

  • name — cómo se llama el endpoint en el menú.
  • apiKey — la clave. La documentación recomienda una referencia como ${VAR} en lugar de la clave en sí, para que el secreto no quede en el YAML.
  • baseURL — adónde van las peticiones: https://api.cheaptokens.dev/v1.
  • models.default — la lista de ids de modelos que se muestran en el menú.

Dos campos opcionales merece la pena configurarlos. titleConvo: true permite que LibreChat nombre tus chats (los títulos se crean a menos que sea false), y modelDisplayLabel es la etiqueta junto a las respuestas (por defecto es "AI"). models.fetch es false por defecto, así que LibreChat no pedirá a la API una lista de modelos; el menú sale de models.default. Por eso los ids de abajo aparecen escritos completos.

Conéctalo en tres pasos#

Paso a paso

Conecta LibreChat (Docker)

Dale la clave al contenedor

La clave tiene que llegar al contenedor de LibreChat como variable de entorno. La documentación de LibreChat permite definir variables en docker-compose.override.yml bajo environment, así que crea ese archivo junto a docker-compose.yml. El nombre de la variable es cosa tuya, elige cualquiera, solo mantenlo idéntico en el YAML:

yaml
services:
  api:
    environment:
      CHEAPTOKENS_API_KEY: ct_your_key_here

El valor es un marcador de posición: usa la clave de tu panel de CheapTokens.

Añade el endpoint a librechat.yaml

Crea librechat.yaml junto a docker-compose.yml. La forma sigue el ejemplo de Mistral de la documentación de LibreChat, con nuestra dirección e 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'

Monta el archivo y reinicia

El contenedor tiene que ver el archivo. Añade volumes al mismo docker-compose.override.yml, para que ahora contenga ambos:

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

Luego aplícalo:

bash
docker compose up -d
De la clave al menú: variable de entorno, librechat.yaml, el montaje y luego CheapTokens en la lista de modelos
El camino desde la clave hasta el endpoint CheapTokens en el menú de LibreChat

Abre LibreChat en el navegador, inicia un chat nuevo y elige CheapTokens en el menú de endpoints. Los tres modelos están en la lista. Envía "Say hi in one sentence" y deberías recibir una respuesta. Si no es así, salta a la última sección.

Tres modelos en un solo menú#

Esta es la parte que hace que valga la pena tener un chat autoalojado. Supón que lo usas para un equipo pequeño. La mayoría de las preguntas son del día a día: reescribe este correo, explica este error. Para esas, zai-org/GLM-5.3-Flash es suficiente, con una ventana de contexto de 390K y hasta 8.192 tokens por respuesta. Cuando alguien pega un documento largo y quiere una respuesta larga, cambia el mismo chat a deepseek-ai/DeepSeek-V4-Flash-0731 (380K de contexto, hasta 32.768 tokens por respuesta). MiniMaxAI/MiniMax-M2.7 (180K de contexto) es la tercera opinión cuando dos respuestas no coinciden. Sin segunda suscripción, sin segunda clave: los tres se facturan con un solo saldo.

¿Cuánto cuesta ese chat? Toma un equipo de cinco personas que envían 200 mensajes al día, cada uno con unos 3.000 tokens de entrada (el historial crece) y recibiendo unos 500 tokens de vuelta:

Modelo Por solicitud 200 solicitudes OpenRouter, 200 solicitudes
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

3000 tokens de entrada y 500 tokens de salida por solicitud. Los precios por 1M de tokens son actuales y cambian junto con nuestras tarifas; la columna de OpenRouter muestra precios de referencia para la misma carga de trabajo.

En la tabla, el precio de cada modelo para esas 200 peticiones se cuenta con entrada y salida juntas, y en total sale más barato que OpenRouter. Elige la fila que coincida con tu uso y compárala con la página de precios.

Pruébalo tú mismoPruébalo: envía una pregunta a dos modelosMostrar respuesta

Abre un chat nuevo, elige zai-org/GLM-5.3-Flash y pide un resumen de un párrafo que conozcas bien. Cambia el modelo en el mismo menú a deepseek-ai/DeepSeek-V4-Flash-0731 y vuelve a preguntar. Compara la longitud y el tono de las dos respuestas: en eso te basas para decidir el modelo por defecto.

Si el endpoint no aparece o responde con un error#

La mayoría de los problemas son una de tres cosas. Elige la que coincida con lo que ves:

Elige tu caso

¿Qué ves?

CheapTokens no aparece en el menú

LibreChat nunca leyó tu archivo. Comprueba que librechat.yaml está montado en /app/librechat.yaml (el archivo de override de arriba), que la indentación del YAML está intacta y que ejecutaste docker compose up -d después del cambio.

401 Unauthorized

La clave falta o es incorrecta. Comprueba que el nombre después de ${ en librechat.yaml es exactamente el nombre de la variable de entorno, y que la clave no tiene espacios ni comillas pegadas. Más sobre este error en API 401 o 404.

404 o un error de modelo

El id del modelo es incorrecto. Usa el id completo, como deepseek-ai/DeepSeek-V4-Flash-0731; el nombre corto no se acepta. Puedes listar los ids exactos con los pasos de Listar modelos con GET /v1/models.

Una vez que el primer mensaje pasa, puedes añadir más ids a models.default siempre que quieras otro modelo en el menú. ¿Prefieres otro front end? La misma idea, una URL base más una clave, está en Conecta Open WebUI a CheapTokens, y la visión general está en API compatible con OpenAI: qué es base_url. Los modelos en sí están en la página de GLM.