---
title: AI Models
description: Venda modelos de IA en su pasarela: añada proveedores OpenAI o Anthropic, sincronice modelos, fije precios y facture llamadas con claves y monedero.
url: https://nexcmp.com/es/docs/infrastructure/ai-models/
applies_to: NexCMP 1.6.1
updated: 2026-11-02
---

# AI Models {#ai-models}

> **Dónde está en el panel de administración:** System › Admin › License & updates (`/license`) para activar el módulo. Luego Services › AI Models: Providers (`/ai/providers`), Models (`/ai/models`), Profit (`/ai/profit`) y Audit (`/ai/audit`). Los clientes usan AI › API en el portal del cliente.

## Qué hace {#what-it-does}

AI Models es una pasarela y capa de facturación en su propio panel. Sus clientes obtienen claves API y llaman a **un único endpoint en su dominio**, en formato compatible con OpenAI o Anthropic. Usted elige qué modelos ofrecer y el coste de cada uno por cada 1 millón de tokens. NexCMP verifica la clave, los límites y el monedero, envía la solicitud al proveedor que haya añadido, mide los tokens y cobra al monedero prepagado del cliente.

**Usted aporta las fuentes de modelos.** NexCMP se entrega sin proveedores, sin modelos, sin direcciones predeterminadas y sin precios. No suministra modelos, claves API, tokens ni cuentas de proveedores.

::: warning Revise primero los términos de sus fuentes
Muchas fuentes de modelos restringen la reventa o la cesión de acceso a terceros. Utilice únicamente fuentes que esté autorizado a usar y revender, y cumpla con sus términos y con la legislación aplicable. Esta página no constituye asesoramiento legal.
:::

AI Models es un producto independiente de **AI Chat and AI Agent** (módulo **AI**, consulte [proveedores de IA](https://nexcmp.com/es/docs/ai/ai-providers/)). Los dos módulos no dependen el uno del otro.

## Requisitos {#requirements}

| Elemento | Requisito |
|---|---|
| Módulo | **AI Models** activado en License & updates, Modules. Está desactivado por defecto. |
| Proveedores | Una o más fuentes de modelos que esté autorizado a revender, cada una con una API compatible con OpenAI (`/chat/completions`), una API compatible con Anthropic (`/messages`) o ambas. Cada una requiere una URL base y una clave de API. |
| Red | El panel debe comunicarse con cada proveedor mediante **HTTPS en el puerto 443** con un nombre de dominio público. Cualquier proveedor en un host interno, otro puerto o HTTP sin cifrar debe estar listado en **Allowed internal hosts** (ajuste `ai_endpoint_allow`). |
| Clientes | Una cuenta de cliente con una dirección de correo electrónico verificada y saldo en el monedero. |
| Hardware | Ninguno. NexCMP solo reenvía solicitudes: sin GPU ni archivos de modelos. |

## Preparar la infraestructura {#prepare-the-infrastructure}

1. Obtenga una clave API de cada fuente de modelos que vaya a utilizar y anote su URL base (por ejemplo, `https://api.example.com/v1`).
2. Revise los términos de la fuente con respecto a la reventa.
3. Si una fuente se ejecuta dentro de su red, defina su dirección, por ejemplo `http://10.0.0.5:8000/v1`. Indicará `10.0.0.5:8000` en **Allowed internal hosts**.

## Conectar en NexCMP {#connect-in-nexcmp}

### 1. Activar el módulo {#_1-turn-the-module-on}

Abra **System › Admin › License & updates**, busque la tarjeta **Module** y active **AI Models**. El menú se recarga y aparece **Services › AI Models**. Mientras el módulo esté desactivado, las páginas de clientes, las de administración y la pasarela responderán `404 module_disabled`, y no se contactará a ningún proveedor.

![La tarjeta Module con el interruptor AI Models activado](https://nexcmp.com/es/docs/images/infrastructure/ai-models-01-modules.webp)

### 2. Añadir un proveedor {#_2-add-a-provider}

1. Abra **AI Models › Providers** y seleccione **Add provider**.
2. Introduzca un **slug** corto, un **nombre** (solo visible para usted), el **tipo** (OpenAI-compatible, Anthropic-compatible o Both), la **URL base** y la **API key**, así como una **prioridad** (los números más bajos se prueban primero).
3. Guarde. La clave se almacena cifrada y después solo se muestran sus últimos cuatro caracteres. Solo se puede introducir una clave desde una sesión de administrador iniciada.

Utilice **Both** únicamente para una pasarela que realmente admita ambos formatos. NexCMP **no** traduce entre los dos formatos: a un modelo servido por un proveedor OpenAI-compatible se accede en `/ai/v1/chat/completions`, y a uno servido por un proveedor Anthropic-compatible en `/ai/v1/messages`.

![La página Providers que lista tres proveedores de muestra con tipo, prioridad y estado](https://nexcmp.com/es/docs/images/infrastructure/ai-models-02-providers.webp)

### 3. Probar la conexión {#_3-test-the-connection}

Seleccione **Test connection** en el proveedor. NexCMP lee `GET <base URL>/models` con la clave e informa de **ok**, o bien del motivo del fallo: **auth** (clave incorrecta), **blocked**, **billing** o **unreachable**. Las pruebas están limitadas a 6 por minuto.

### 4. Sincronizar los modelos {#_4-sync-the-models}

Seleccione **Sync models**. NexCMP lee la lista de modelos del proveedor y añade cada modelo nuevo **desactivado y sin precio**. Si el proveedor ya no lista un modelo, este se marcará. Mientras el módulo esté activo, la lista también se sincroniza automáticamente cada 6 horas (ajuste `ai_models_sync_hours`).

### 5. Establecer precios y activar los modelos {#_5-set-prices-and-switch-models-on}

1. Abra **AI Models › Models**.
2. Para cada modelo que desee vender, establezca el **precio de venta** en dólares estadounidenses por cada 1 millón de tokens: **input**, **cached input** y **output**.
3. Opcionalmente, introduzca su **coste** para el modelo. A continuación, **Profit** muestra los ingresos frente al coste por día y por modelo, y se rechazará cualquier precio de venta inferior a su coste más el margen mínimo (ajuste `ai_min_margin_pct`, 10 por defecto), a menos que confirme una pérdida deliberada. **Set price from cost** aplica el margen comercial que usted elija; no hay un margen por defecto.
4. Active el modelo. No es posible activar un modelo que no tenga precio de venta. Si el precio de cached input se deja en cero, se cobrará al precio de input.

![La página Models con los precios de venta de input, cached input y output, y los interruptores de activación](https://nexcmp.com/es/docs/images/infrastructure/ai-models-03-models.webp)

### 6. Rutas y conmutación por error {#_6-routes-and-failover}

En un modelo, **Routes** lista los proveedores que le dan servicio, por orden. Añada un segundo proveedor de respaldo, configure el orden y, opcionalmente, asigne un nombre de modelo diferente para cada proveedor (el nombre enviado al proveedor puede diferir del que usted publica). Cuando un proveedor devuelve un error de servidor, de autorización o de facturación, un modelo no encontrado o un límite de tasa, NexCMP prueba la siguiente ruta. Si una lectura agota el tiempo de espera después de haber enviado la solicitud, **no** se envía a otro proveedor para que no pague dos veces.

Cada proveedor está limitado a `ai_provider_rpm` solicitudes por minuto (50 por defecto). Si un proveedor sigue devolviendo errores de autorización o facturación, NexCMP alertará al administrador por Telegram cuando Telegram esté configurado.

### 7. Activar el interruptor de venta {#_7-open-the-sale-switch}

En la parte superior de las páginas de AI Models, el **interruptor de venta** (ajuste `feature_ai_models`) está desactivado por defecto. Mientras esté desactivado, los clientes verán que el servicio aún no está abierto y la lista pública de precios informará de que no está disponible. Compruebe que al menos un modelo esté activado, tenga un precio de venta y una ruta con clave, y luego actívelo.

### Qué pueden hacer los clientes {#what-customers-can-do}

En el portal del cliente, **AI › API**:

- **Models** muestra sus modelos y precios, la URL base y comandos de ejemplo listos para usar.
- **API Keys**: cree, renombre, rote, deshabilite y elimine claves. El secreto se muestra una sola vez; solo se almacena un hash. Por clave: modelos permitidos, caducidad, un presupuesto flexible (advierte) y un presupuesto estricto (bloquea con `402`), solicitudes por minuto y tokens por minuto.
- **Usage** por modelo, clave y día, con exportación.
- **Logs**: registros de solicitudes filtrables (hora, clave, modelo, tokens, coste, estado, latencia). **Los prompts y las respuestas no se registran.** Los registros se conservan 90 días por defecto (`ai_log_retention_days`).
- **Settings**: presupuesto de la cuenta y dirección de correo para las alertas de presupuesto.
- **Playground**: chatee con un modelo, compare modelos en paralelo y copie el código correspondiente.

![Página API Keys del cliente con las URL base para ambos formatos de API](https://nexcmp.com/es/docs/images/infrastructure/ai-models-04-keys.webp)

Endpoints de gateway en su dominio:

```text
POST /ai/v1/chat/completions      OpenAI-compatible
POST /ai/v1/messages              Anthropic-compatible (also /ai/v1/messages/count_tokens)
GET  /ai/v1/models                model list
GET  /ai/v1/models/pricing        public price list, no key needed
```

### Monedero y facturación {#wallet-and-billing}

El uso de IA se descuenta del mismo monedero prepago que los demás servicios. Antes de enviar una solicitud al proveedor, NexCMP reserva los fondos correspondientes al coste máximo estimado; si el saldo es inferior al mínimo (`ai_min_balance_cents`, 20 centavos por defecto) o resulta insuficiente, la solicitud se rechaza con `402 insufficient_balance` y **no se realiza ninguna llamada al proveedor**. El uso se recopila por cuenta y se liquida en movimientos del monedero cada hora, con un barrido cada 5 minutos; el consumo aún no liquidado ya se deduce del saldo visible para la pasarela.

Los resellers pueden comercializar AI Models en su propio dominio: su margen o descuento se aplica sobre su precio de venta y a su monedero mayorista se le cobra el precio mayorista. Un interruptor de IA por reseller, activado por defecto, determina quién puede venderlo.

## Verificación {#verify}

1. Tras el paso 3, **Test connection** muestra **ok** y el número de modelos.
2. Tras el paso 4, los nuevos modelos aparecen listados, desactivados y sin precio.
3. Como cliente con saldo en el monedero, cree una clave y llame al gateway:

   ```bash
   curl https://your-domain/ai/v1/chat/completions \
     -H "Authorization: Bearer sk-ai-…" -H "Content-Type: application/json" \
     -d '{"model":"model-one","messages":[{"role":"user","content":"hello"}]}'
   ```

   Una respuesta `200` incluye la contestación del modelo. **Usage** refleja la solicitud, y **Profit** la muestra si introdujo un coste.
4. Con el monedero a cero, la misma llamada devuelve `402 insufficient_balance`.

## Límites y notas {#limits-and-notes}

- El módulo no incluye proveedores, modelos ni tarifas predefinidas, y nunca consulta listas de precios del proveedor.
- Las herramientas que se ejecutan en el proveedor y se cobran por llamada, como la búsqueda web, se rechazan al no poder medirse su consumo. Solo se reenvía una lista reducida de parámetros de solicitud.
- El consumo de tokens se obtiene de la respuesta del proveedor; si esta no lo incluye, NexCMP realiza una estimación y marca el registro como estimado.
- Los errores del proveedor se depuran antes de llegar al cliente (se eliminan nombres, hosts, direcciones y el identificador de modelo del proveedor). Los clientes nunca ven qué proveedor atendió la solicitud.
- Los clientes acceden al gateway a través del dominio de su panel, por lo que el certificado TLS de dicho dominio debe ser válido.
- NexCMP no ofrece acuerdos de nivel de servicio (SLA), fine-tuning ni alojamiento de GPU para este módulo.

## Resolución de problemas {#troubleshooting}

| Síntoma | Causa y solución |
|---|---|
| Todas las páginas de AI Models y el gateway responden con `404 module_disabled` | El módulo está desactivado. Active **AI Models** en License & updates, Modules. |
| Error al añadir un proveedor: `endpoint_host_not_allowed`, `endpoint_must_be_https` o `invalid_endpoint_port` | La URL base debe usar HTTPS en el puerto 443 con un nombre de dominio público. Para un host interno, otro puerto o HTTP estándar, incluya `host:port` en **Allowed internal hosts**. |
| `blocked_endpoint` | La dirección es una IP o el nombre resuelve a una dirección privada. Inclúyala en **Allowed internal hosts** si ese es el comportamiento deseado. |
| **Test connection** devuelve `auth` | La clave es incorrecta o carece de permisos. Vuelva a introducirla. |
| No se puede activar un modelo (`no_price`) | Defina primero un precio de venta. |
| Los clientes reciben `503 ai_unavailable` | El interruptor de venta está desactivado o el interruptor de IA del reseller está apagado. |
| Los clientes reciben `503 upstream_unavailable` | Ninguna ruta habilitada con clave admite ese modelo en el formato solicitado. Revise las rutas del modelo y el tipo de proveedor. |
| Los clientes reciben `402 insufficient_balance` | El saldo del monedero está por debajo del mínimo o no cubre la solicitud. Solicite al cliente que realice una recarga. |
