Volver a las guías
Configuración·4 de septiembre de 2026·Actualizado el 30 de septiembre de 2026·8 min de lectura

LibreChat frente a Open WebUI — cuál acepta un endpoint personalizado con menos fricción

Dos variables de entorno frente a un bloque YAML — y qué aporta el YAML.

Última revisión: .

Ambos funcionan autoalojados, ambos hablan el protocolo de OpenAI y ambos harán el trabajo. Las comparaciones que posicionan para esta pregunta alinean tablas de funciones. Esta responde a la pregunta más concreta que probablemente te trajo aquí: cuál de los dos acepta un endpoint personalizado compatible con OpenAI con menos fricción y qué ofrece cada uno a cambio.

Todo lo afirmado a continuación procede del README de cada proyecto. No hay ningún benchmark ni un veredicto sobre cuál es mejor, porque no hemos ejecutado ninguno a una escala que justifique tal conclusión.

De dónde procede cada uno

Open WebUILibreChat
OrigenModelos locales y OllamaClon de ChatGPT para múltiples proveedores
Backends que mencionaOllama, API compatibles con OpenAIAnthropic, AWS Bedrock, OpenAI, Azure OpenAI, Google, Vertex AI, OpenAI Responses API, además de endpoints personalizados
Configuración de endpoint personalizadoOPENAI_API_BASE_URL + OPENAI_API_KEY, o la interfaz ConnectionsUn bloque custom en librechat.yaml
RecuperaciónRAG local en nueve bases de datos vectoriales, búsqueda híbrida con reranking, búsqueda webChat con archivos en sus endpoints compatibles
Control de accesoRBAC granular y grupos de usuarios, LDAP/AD, SSO, SCIM 2.0Autenticación multiusuario con OAuth2, LDAP y correo electrónico, panel de administración para usuarios, grupos y roles
ExtensibilidadFiltros, acciones, pipes, herramientas y skills; servidores de herramientas MCP y OpenAPIAgentes con herramientas MCP, un marketplace de agentes, intérprete de código aislado
Instalarpip, uv, Docker, KubernetesDocker y varios despliegues cloud con un clic

El patrón es que Open WebUI ha invertido principalmente en el despliegue y la recuperación, y LibreChat en los proveedores y los agentes. Cuál de esos aspectos te importe suele ser un criterio de desempate mejor que contar funciones.

Conectar Open WebUI a un gateway

Dos variables de entorno y estará funcionando:

# Open WebUI — the OpenAI-compatible connection is a base URL and a key.
docker run -d -p 3000:8080 \
  -e OPENAI_API_BASE_URL=https://api.kunavo.com/v1 \
  -e OPENAI_API_KEY=sk-kn-... \
  -v open-webui:/app/backend/data \
  --name open-webui ghcr.io/open-webui/open-webui:main

# The same two values can be set in Settings -> Connections after
# first launch, which is the faster path when you are trying it out.

Como el selector de modelos puede rellenarse desde GET /v1/models, un endpoint que ofrezca varias familias las coloca todas en un único menú desplegable: los IDs de Claude y GPT aparecen juntos sin una segunda configuración.

Conectar LibreChat a un gateway

LibreChat quiere un bloque YAML en lugar de variables de entorno; hay más que escribir, pero obtienes control sobre los nombres y los modelos:

librechat.yaml
# LibreChat — a custom endpoint is a block in librechat.yaml.
version: 1.2.1
endpoints:
  custom:
    - name: "Kunavo"
      apiKey: "${KUNAVO_API_KEY}"
      baseURL: "https://api.kunavo.com/v1"
      models:
        default: ["claude-sonnet-5", "gpt-5-6-terra", "claude-haiku-4-5"]
        fetch: true          # populate the picker from GET /v1/models
      titleConvo: true
      titleModel: "claude-haiku-4-5"
      modelDisplayLabel: "Kunavo"

La línea titleModel es la que conviene copiar independientemente del endpoint: LibreChat genera el título de una conversación mediante una llamada al modelo, y fijarlo al modelo más barato de tu lista evita que los títulos se facturen a la tarifa del modelo con el que estés conversando.

Por qué poner un gateway detrás de cualquiera de los dos

Ambos clientes pueden mantener varios proveedores a la vez, por lo que un gateway no es obligatorio. Lo que cambia es cuántas cosas configuras y cuántas facturas recibes: una URL base y una clave en lugar de una cuenta, una credencial y una relación de facturación por cada familia de modelos. Añadir una familia después se convierte en incluir un ID de modelo en una lista, en lugar de crear una nueva integración.

Kunavo ofrece la superficie compatible con OpenAI que hablan ambos clientes, por lo que la URL base anterior es todo lo que necesita cualquiera de los dos. Los detalles de configuración de cada cliente están en el centro de integraciones, la referencia del endpoint está en chat completions y la guía de API compatible con OpenAI explica qué incluye y qué no incluye “compatible”.

Preguntas frecuentes

¿Cuál es la diferencia entre LibreChat y Open WebUI?

Ambos son interfaces de chat autoalojadas y de código abierto que pueden comunicarse con API compatibles con OpenAI, y la diferencia está en su origen. Open WebUI se desarrolló en torno a Ollama y los modelos locales, y su README destaca el RAG local en nueve bases de datos vectoriales, RBAC granular y grupos de usuarios, un sistema de plugins con filtros, acciones, pipes y herramientas, e instalación mediante pip, Docker o Kubernetes. LibreChat se desarrolló como un clon de ChatGPT para múltiples proveedores: su README destaca la compatibilidad con proveedores concretos —Anthropic, AWS Bedrock, OpenAI, Azure OpenAI, Google, Vertex AI y la API de OpenAI Responses— además de endpoints personalizados, agentes con herramientas MCP y un intérprete de código aislado compatible con varios lenguajes.

¿Cuál es más fácil de conectar a una API personalizada compatible con OpenAI?

Open WebUI, si quieres ponerlo en marcha con un solo comando: la conexión requiere dos variables de entorno, OPENAI_API_BASE_URL y OPENAI_API_KEY, y el mismo par puede configurarse en la interfaz, en Connections, después del primer lanzamiento. LibreChat pide un archivo YAML: un endpoint personalizado es un bloque en librechat.yaml con name, apiKey, baseURL y una sección models. Hay más que escribir, pero obtienes algo a cambio: puedes nombrar el endpoint, controlar qué modelos aparecen y fijar un modelo económico para los títulos de conversación. Ninguno necesita un proxy; la documentación de LibreChat indica explícitamente que los endpoints personalizados funcionan sin uno.

¿Cuál debería elegir para un equipo?

Compara la lista de funciones de cada proyecto con tu requisito en lugar de aceptar el veredicto de una página comparativa, incluida esta. Open WebUI declara RBAC granular y grupos de usuarios, LDAP/Active Directory, SSO mediante encabezados de confianza y OAuth, y aprovisionamiento SCIM 2.0. LibreChat declara autenticación multiusuario con OAuth2, LDAP e inicio de sesión por correo electrónico, además de un panel de administración para usuarios, grupos y roles. Ambos cubren el caso habitual; las diferencias importantes para una organización concreta suelen estar en los detalles del aprovisionamiento, que es donde conviene mirar primero.

¿Puede cualquiera de los dos usar Claude y GPT al mismo tiempo?

Sí, y esa es la razón principal para poner un gateway detrás de cualquiera de ellos. Ambos aceptan un endpoint compatible con OpenAI y, si ese endpoint ofrece varias familias de modelos, todas aparecen en un selector de modelos bajo una sola clave. Sin gateway, configuras cada proveedor por separado, con una cuenta y una facturación independientes para cada uno; con uno, añadir una familia de modelos consiste en incluir un ID de modelo en una lista en lugar de crear una nueva integración.

¿Necesito Ollama para usar Open WebUI?

No. Open WebUI admite Ollama y API compatibles con OpenAI, y su propio README describe cómo apuntar la URL de la API a proveedores alojados para combinarlos. Ejecutarlo únicamente contra un endpoint alojado es una configuración compatible, no una solución provisional; esto importa si quieres la interfaz sin una máquina capaz de ejecutar modelos localmente.

¿Un gateway cambia el comportamiento de alguno de los clientes?

Cambia adónde van las solicitudes y cuánto cuestan, no cómo funciona la interfaz. Ambos clientes hablan el protocolo de OpenAI con cualquier URL base que se les proporcione, por lo que funciones como RAG, agentes y RBAC son propiedades del cliente y no se ven afectadas. Lo único que debes comprobar es la lista de modelos: ambos pueden rellenar su selector mediante GET /v1/models, de modo que los modelos que ves son los que informa el endpoint y no una lista codificada.