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
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.
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). Los dos módulos no dependen el uno del otro.
Requisitos
| 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
- 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). - Revise los términos de la fuente con respecto a la reventa.
- 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:8000en Allowed internal hosts.
Conectar en NexCMP
1. Activar el módulo
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.

2. Añadir un proveedor
- Abra AI Models › Providers y seleccione Add provider.
- 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).
- 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.

3. Probar la conexión
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
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
- Abra AI Models › Models.
- 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.
- 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. - 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.

6. Rutas y conmutación por error
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
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
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.

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 neededMonedero y facturación
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
Tras el paso 3, Test connection muestra ok y el número de modelos.
Tras el paso 4, los nuevos modelos aparecen listados, desactivados y sin precio.
Como cliente con saldo en el monedero, cree una clave y llame al gateway:
bashcurl 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
200incluye la contestación del modelo. Usage refleja la solicitud, y Profit la muestra si introdujo un coste.Con el monedero a cero, la misma llamada devuelve
402 insufficient_balance.
Límites y notas
- 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
| 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. |