spicyapiDocumentación
Apps y plugins
Contenido principal

Apps de roleplay (RisuAI, Agnai, Chub, KoboldAI Lite, Janitor AI)

Conecta los modelos de texto de SpicyAPI con RisuAI, Agnai, Chub, KoboldAI Lite y Janitor AI. Los campos exactos de cada app, qué modelos van bien para roleplay, cómo tratar los modelos de razonamiento y cómo limitar el gasto.

Las apps de roleplay te permiten chatear con personajes, y la mayoría deja traer tu propio modelo de IA mediante una conexión compatible con OpenAI. SpicyAPI habla ese protocolo, así que puedes apuntar estas apps hacia él, elegir cualquier modelo de texto de SpicyAPI y pagar con tu saldo de SpicyAPI.

Esta página cubre cinco apps web y de escritorio: RisuAI, Agnai, Chub, KoboldAI Lite y Janitor AI. Para SillyTavern, consulta SillyTavern. Las apps las crean terceros y sus pantallas cambian; los nombres de campo de abajo salen del código fuente publicado y de las páginas de ayuda de cada app, y cada sección indica qué se comprobó y qué no.

La versión corta

  1. Crea una clave de API exclusiva para la app en spicyapi.ai/console/keys y ponle un límite de gasto diario.
  2. En la app, elige su conexión compatible con OpenAI o de "reverse proxy". Introduce https://api.spicyapi.ai/v1 como dirección (Janitor AI pide la más larga, https://api.spicyapi.ai/v1/chat/completions), pega tu clave y establece como modelo un id de chat que termine en /chat, copiado del catálogo en vivo.
  3. Establece Max tokens en al menos 1000 para los modelos de razonamiento y envía un mensaje.

Qué necesitas

  • Una cuenta de SpicyAPI con saldo. Consulta Configura tu cuenta y Facturación.
  • Una clave de API que empiece por sk-spicy-. Consulta Autenticación.
  • Un id de modelo. Los modelos de texto se llaman <maker>/<model>/chat, escrito aquí como MODEL_ID_FROM_CATALOG. MODEL_ID_FROM_CATALOG representa un id de modelo de chat que copias del catálogo en vivo (GET /api/v1/models); nunca escribas el marcador tal cual. El id debe escribirse exactamente, incluido el /chat del final. La lista completa está en spicyapi.ai/models; con tu clave, GET https://api.spicyapi.ai/v1/models también la devuelve, y los ids de chat son los que terminan en /chat. Consulta Modelos.

Qué app rellena qué campo

AppDirección que introducirDónde va la claveModeloQuién envía la solicitud
RisuAIhttps://api.spicyapi.ai/v1 (la ruta completa .../v1/chat/completions también funciona)Key/PasswordRequest Model, escrito a manoEl servidor de RisuAI en el sitio web, tu equipo en la app de escritorio
Agnaihttps://api.spicyapi.ai/v1 (no la ruta completa)API KeySe elige en un preset, de una lista obtenida de SpicyAPIEl servidor de Agnai
Chubhttps://api.spicyapi.ai/v1 (no la ruta completa)Reverse Proxy KeyMenú desplegable obtenido de SpicyAPITu navegador
KoboldAI Litehttps://api.spicyapi.ai/v1Campo API key de su conexión OpenAIMenú desplegable obtenido de SpicyAPITu navegador
Janitor AIhttps://api.spicyapi.ai/v1/chat/completions (la ruta completa)API KeyModel Name, escrito a manoSin verificar, consulta la sección de Janitor AI

La diferencia entre la dirección corta y la completa importa. Las apps que añaden /chat/completions por su cuenta fallan si la incluyes, y Janitor AI necesita que la escribas completa.

Elige un modelo

El roleplay necesita un modelo que se mantenga en el personaje, escriba respuestas largas y no rechace peticiones narrativas normales. El ranking de roleplay y LLM clasifica los modelos de texto de SpicyAPI en esos aspectos y muestra los precios actuales. Consúltalo en lugar de fiarte de una lista escrita aquí, porque los modelos y las clasificaciones cambian.

Cada página de modelo muestra además una etiqueta de política de contenido (por ejemplo unrestricted, borderline o filtered). Esa etiqueta indica con cuánta libertad responde el modelo; elige un modelo cuya etiqueta se ajuste a las historias que quieres escribir.

DeepSeek V4.1 Flash es un buen primer modelo para probar: está cerca de los primeros puestos del ranking y es uno de los más baratos. Copia su id (termina en /chat) del catálogo en vivo en spicyapi.ai/models en lugar de escribirlo de memoria.

Dos límites que conviene conocer:

  • Algunos modelos aceptan como máximo 256 mensajes por solicitud. En un chat muy largo, una app que envía todo el historial puede superarlo. Busca el ajuste de la app que controla cuánto historial se envía, o su tamaño de contexto, y redúcelo. La página del modelo indica sus límites.
  • La entrada de imágenes solo funciona con modelos que leen imágenes. El chat de roleplay normal no la necesita.

Ajustes de muestreo

Las apps de roleplay envían un montón de ajustes de muestreo con cada mensaje: temperature, top-p, top-k, min-p, top-a, frequency, presence y repetition penalty. Los modelos difieren en cuáles aceptan.

SpicyAPI ignora los que un modelo no usa en lugar de rechazar el mensaje. También ignora n: 1, una lista de stop vacía y las cadenas de stop en un modelo que no tiene ninguna. Cuando ignora algo, la respuesta incluye un encabezado X-Spicy-Ignored-Params que nombra los ajustes descartados, así que puedes ver exactamente qué no tuvo efecto.

Cuando un modelo admite un ajuste pero no el valor que enviaste, SpicyAPI usa el valor más cercano que acepta: una temperatura por encima del máximo del modelo pasa a ser ese máximo, y una lista de cadenas de stop más larga de lo que permite el modelo conserva sus primeras entradas. Estos cambios se enumeran en un encabezado X-Spicy-Adjusted-Params, por ejemplo temperature=1, stop=kept 1 of 3. Esto significa que puedes dejar tus presets habituales como están.

Los campos que no son ajustes de muestreo son distintos: si una app envía algo que el modelo no conoce en absoluto, SpicyAPI responde igualmente con un error 400 que nombra el campo.

Modelos de razonamiento y Max tokens

Algunos modelos piensan antes de responder. Ese razonamiento consume tokens, y esos tokens cuentan para Max tokens (que también aparece como Max output, Response length o max_new_tokens, según la app).

  • Establece Max tokens con generosidad. Si es muy pequeño, por ejemplo 20 o 200, un modelo de razonamiento puede gastar todo el presupuesto pensando y no devolver texto. Recibes un error upstream_failed que indica que el presupuesto de salida se gastó en razonamiento. Empieza en 1000 o más y súbelo si las respuestas se cortan.
  • Pensar cuesta dinero y tiempo. Pagas los tokens de razonamiento como cualquier otra salida, y la primera palabra llega más tarde. A algunos modelos se les puede pedir que piensen menos con el ajuste reasoning_effort. Los niveles difieren según el modelo; un nivel que el modelo no ofrece se cambia por el más cercano que sí ofrece, y los ajustes de razonamiento al estilo OpenRouter (Agnai los envía) se traducen a reasoning_effort. Las apps que tienen un cuadro Additional Parameters o de parámetros personalizados pueden enviarlo, por ejemplo reasoning_effort con un valor más bajo; la mayoría de las apps de abajo no lo envían por sí solas.
  • Algunas apps muestran el razonamiento en el chat. Janitor AI lo envuelve en etiquetas <think>. Chub no lo muestra en absoluto.

Mantén el gasto bajo control

Los chats de roleplay son largos y las apps reenvían toda la conversación con cada mensaje, así que el costo por mensaje crece a medida que crece el chat.

Para cada app, crea su propia clave en la consola. Abre Advanced al crearla y establece un límite de gasto diario (y uno mensual si quieres). Si la app se comporta mal, entra en bucle o la clave se filtra, el daño se detiene en el límite, y puedes revocar esa clave sin tocar nada más. Una clave también puede restringirse a modelos concretos. Consulta Autenticación.

Estas apps guardan tu clave en sus propios servidores o en tu navegador. El sitio web de RisuAI, Agnai y Janitor AI envían tu clave y tu chat a través de sus servidores; Chub y KoboldAI Lite envían las solicitudes directamente desde tu navegador. Una clave exclusiva y con límite es la precaución adecuada en todos los casos.

RisuAI

RisuAI funciona en risuai.xyz, como app de escritorio o en tu propio servidor. Comprobado con el código fuente de RisuAI (versión 2026.8.250).

Elige el modelo Custom API

En los ajustes del bot, abre el menú desplegable de modelos y elige Custom API.

Rellena los tres campos

  • URL (aparece como "Reverse Proxy"): https://api.spicyapi.ai/v1. RisuAI añade /chat/completions por sí mismo cuando la dirección termina en /v1, y la ruta completa https://api.spicyapi.ai/v1/chat/completions también funciona.
  • Key/Password: tu clave sk-spicy-. Se envía como bearer token.
  • Request Model: el id del modelo, MODEL_ID_FROM_CATALOG. RisuAI no tiene lista de modelos para direcciones personalizadas, así que escríbelo a mano.

Establece el menú Format en OpenAI Compatible.

Establece Max tokens y envía un mensaje

Aumenta la longitud máxima de respuesta si elegiste un modelo de razonamiento (consulta arriba) y empieza a chatear.

De dónde salen las solicitudes. En risuai.xyz, RisuAI normalmente retransmite las solicitudes a través de su propio servidor, de modo que tu clave y tu chat pasan por él. La app de escritorio y un servidor autoalojado envían las solicitudes directamente desde tu equipo. Solo la opción "Force Plain Fetch" del sitio web, oculta entre los ajustes no recomendados, envía las solicitudes desde el navegador; SpicyAPI también las acepta.

Muestreo. Los ajustes por defecto de Custom API en RisuAI envían frequency, presence y repetition penalty, min-p y top-a. SpicyAPI ignora los que el modelo no usa, así que los valores por defecto funcionan.

Agnai

Agnai está en agnai.chat. Comprobado con el código fuente de Agnai (rama dev, 2026-10-06). SpicyAPI no está en la lista de proveedores integrados de Agnai, así que la añades como una conexión personalizada compatible con OpenAI.

Añade un proveedor

En Settings, abre la página de gestión de proveedores y añade un proveedor de tipo OpenAI Compat (o Remotely Hosted y luego Other (Generic OpenAI)). Ponle la etiqueta que quieras.

Rellena la dirección y la clave

  • URL: https://api.spicyapi.ai/v1 (o https://api.spicyapi.ai; Agnai añade /v1 si falta). No introduzcas la ruta completa .../chat/completions, o Agnai la duplica.
  • API Key: tu clave sk-spicy-.

Elige el modelo en un preset

En el preset con el que chateas, elige el modelo de la lista. Agnai rellena la lista a partir de la lista de modelos de SpicyAPI. Elige un id que termine en /chat.

De dónde salen las solicitudes. Con un proveedor añadido de esta forma, el servidor de Agnai envía la solicitud, así que tu clave se guarda en Agnai.

Muestreo. Agnai siempre envía temperature y top-p, que algunos modelos no admiten. SpicyAPI los ignora en esos modelos, así que modelos como DeepSeek V4 y Kimi K3 funcionan.

No recomendado: los modos directos desde el navegador. Agnai también tiene un tipo de conexión Self-Host y un interruptor Use Local Requests en presets antiguos, que hacen que tu navegador llame directamente a la dirección. Según el código fuente, estos modos añaden un campo llamado think que SpicyAPI no acepta, y SpicyAPI responde 400 ante los campos que no conoce. Esto no se probó con SpicyAPI. Si recibes un 400 ahí, vuelve a la configuración de proveedor descrita arriba.

Chub

Chub (chub.ai) envía las solicitudes directamente desde tu navegador a la dirección que le indiques. Comprobado con el código de front-end publicado de Chub (compilación del 2026-06-28); es posible que las pantallas de Chub hayan cambiado desde entonces. La conexión desde el navegador funciona porque SpicyAPI permite solicitudes desde páginas web.

Añade el reverse proxy en Secrets

Abre Secrets, busca el bloque OpenAI y elige Reverse Proxy en lugar de My Own API Key.

Rellena la dirección y la clave

  • Open AI Reverse Proxy: https://api.spicyapi.ai/v1. Chub añade /chat/completions por sí mismo, así que no lo incluyas.
  • Reverse Proxy Key: tu clave sk-spicy-.

Pulsa Check Proxy. Una comprobación correcta también carga la lista de modelos.

Selecciona OpenAI / Proxy y un modelo

En Configuration > Prompt Structure, establece la API en OpenAI / Proxy y elige un modelo del menú desplegable (un id que termine en /chat).

Chub advierte en su propia página de ajustes de que tu IP y el registro del chat podrían guardarse cuando usas un reverse proxy. Es una nota de Chub, no de SpicyAPI.

Cosas que muestra el código fuente y que pueden sorprenderte:

  • Chub deja de leer una respuesta en streaming a los 120 segundos. Un modelo de razonamiento que piensa durante mucho tiempo puede quedar cortado; reduce su esfuerzo de razonamiento o elige un modelo que responda más rápido.
  • Chub no muestra el razonamiento del modelo, solo su respuesta.

KoboldAI Lite

KoboldAI Lite es una única página web en lite.koboldai.net. Comprobado con su index.html publicado. Llama directamente a la dirección desde tu navegador, lo cual funciona porque SpicyAPI permite solicitudes desde páginas web.

Elige la conexión OpenAI

Abre Settings y elige la conexión OpenAI API (endpoint personalizado).

Introduce la dirección y la clave

Pon https://api.spicyapi.ai/v1 como dirección y tu clave sk-spicy- en el campo de la clave. La app elimina un /chat/completions final si lo pegas.

Obtén la lista de modelos

Usa el botón de la app para obtener los modelos, elige un id que termine en /chat y establece la longitud de salida en los ajustes de generación.

Deja "CORS Proxy" desactivado. KoboldAI Lite tiene una opción para enrutar las solicitudes a través de un proxy que gestiona su autor. No la necesitas para SpicyAPI, y activarla envía tu clave a través del servidor de otra persona.

Muestreo. Su ajuste de repetición se envía a la API como presence penalty. SpicyAPI lo ignora en los modelos que no lo usan.

Janitor AI

Sin verificar

No pudimos confirmar que Janitor AI funcione con SpicyAPI. Janitor AI es de código cerrado y hace falta una cuenta para probarlo, así que nadie ha probado un chat real. Lo que sigue es cómo describen sus ajustes de proxy el centro de ayuda de Janitor y el código publicado de su página. Tómalo como algo que probar, no como una promesa.

La función de "proxy" de Janitor AI envía tu chat a una dirección que eliges. Según el centro de ayuda de Janitor, los campos están en el icono de engranaje de la página del chat, en API Settings y luego Add Configuration.

Añade una configuración

Rellena:

  • Config Name: lo que quieras, como SpicyAPI.
  • Model Name: el id del modelo, escrito a mano: MODEL_ID_FROM_CATALOG.
  • Proxy URL: la dirección completa, https://api.spicyapi.ai/v1/chat/completions. Janitor tiene un botón "Add /chat/completions" que lo hace por ti después de introducir https://api.spicyapi.ai/v1.
  • API Key: tu clave sk-spicy-.

Guarda y envía un mensaje

El centro de ayuda de Janitor describe su propio botón Check Key/Model como poco fiable, así que prueba con un mensaje real.

Si Janitor muestra un error de red o de conexión, como "A network error occurred", es probable que la página de Janitor esté bloqueando las solicitudes a direcciones distintas de la de OpenAI. La página web de Janitor tiene una política de seguridad que permite solicitudes directas a una sola dirección de IA de terceros: la de OpenAI. Cuando Janitor envía la solicitud desde tu navegador, el navegador la rechaza antes de que SpicyAPI vea nada, y SpicyAPI no puede cambiarlo. Si tu clave no muestra uso en la consola mientras aparece este error, esa es la causa.

Si te ocurre, usa SillyTavern o RisuAI en su lugar.

Otros datos del centro de ayuda y del código de página de Janitor:

  • Algunos bots de Janitor tienen los proxies desactivados por sus autores, así que un bot puede negarse a chatear a través de un proxy sin importar lo que introduzcas.
  • Janitor muestra el razonamiento de un modelo envuelto en etiquetas <think>. Usa un Max tokens mayor o un esfuerzo de razonamiento menor para mantenerlo breve.
  • Janitor limita la longitud de un solo mensaje que escribes.

Solución de problemas

Qué vesQué hacer
401 o "invalid API key"Copia la clave de nuevo desde la consola. Una clave revocada deja de funcionar al instante, y debe ser la clave sk-spicy-, no la contraseña de una cuenta.
402 o "insufficient balance"Añade fondos en la consola o comprueba que no se haya alcanzado el límite de gasto diario de la clave. Consulta Facturación.
404 o "model not found"El id del modelo es incorrecto. Debe terminar en /chat y estar escrito como en https://api.spicyapi.ai/v1/models.
404 en la propia dirección, con una ruta duplicada como /chat/completions/chat/completionsLa app añade la ruta por su cuenta. Usa https://api.spicyapi.ai/v1 (RisuAI, Agnai, Chub, KoboldAI Lite). Solo Janitor AI necesita la ruta completa.
400 que nombra un campoLa app envió algo que el modelo no acepta y que no es un ajuste de muestreo. Quita o desactiva el campo indicado.
400 sobre el número de mensajesEl historial del chat supera el límite de mensajes del modelo. Reduce el historial o el tamaño de contexto en la app.
upstream_failed, "the output budget was spent on reasoning"Aumenta Max tokens o reduce el esfuerzo de razonamiento del modelo. Consulta Modelos de razonamiento y Max tokens.
La respuesta se corta a media fraseMax tokens es demasiado bajo o (en Chub) se alcanzó el límite de 120 segundos.
"Network error" o "Failed to fetch" en la app, y ninguna solicitud en los registros de tu consolaLa solicitud nunca llegó a SpicyAPI. En Janitor AI es la página bloqueando la dirección; en las demás, comprueba que la dirección no tenga erratas y que el sitio sea accesible.
429Demasiadas solicitudes a la vez. Espera unos segundos; las apps compartidas pueden enviar solicitudes de muchos usuarios desde una misma dirección.

Los códigos de error se explican en Errores. Cada error termina con un request_id; indícalo al soporte y la solicitud se podrá localizar con exactitud. Tus solicitudes también aparecen en Logs en la consola, que es la forma más rápida de saber si una solicitud llegó siquiera a SpicyAPI.

En esta página