Chat NSFW: Documentación de la API de LLM sin censura
Integra la API de LLM sin censura en tu aplicación de chat NSFW con esta guía de inicio rápido. Envía texto al endpoint de chat-completions y recibe respuestas del modelo sin restricciones.
URL base y autenticación
Comienza apuntando tu cliente compatible con OpenAI a la URL base https://api.nsfwchat.top/v1. Autentica cada petición incluyendo tu clave de API en el encabezado Authorization como token Bearer. Puedes generar esta clave inmediatamente después de registrarte con Google o correo electrónico en la página Obtener clave de API. La clave se muestra una sola vez al crearla, así que guárdala de forma segura. Esta única clave está vinculada al crédito prepago y los límites de peticiones de tu cuenta.
Primera petición
Envía una petición estándar de chat-completions para probar la conectividad y la calidad de la respuesta. Usa el ID del modelo uncensored para acceder al modelo de pesos abiertos ajustado para contenido adulto. La API acepta entrada de texto y devuelve salida de texto. Asegúrate de que tu carga útil incluya la matriz messages y el campo model. Esta llamada básica verifica que tu autenticación y la configuración de la URL base son correctas antes de construir la lógica de tu aplicación.
Integración con SDK de Python
Usa el SDK oficial de OpenAI para Python para interactuar con la API. Establece las variables de entorno base_url y api_key o pásalas directamente al constructor del cliente. Llama a chat.completions.create con el modelo uncensored. Este enfoque aprovecha el código existente de la comunidad para aplicaciones de chat NSFW. El SDK maneja la serialización y el análisis de errores, permitiéndote concentrarte en la ingeniería de prompts y la gestión del historial de mensajes dentro de tu entorno Python.
Integración con SDK de Node.js
Para aplicaciones en JavaScript o TypeScript, inicializa el cliente de OpenAI con tu URL base y clave de API. El SDK de Node.js es asíncrono por defecto, devolviendo promesas para todas las llamadas a la API. Invoca chat.completions.create para enviar el historial de tu conversación. Esta integración es ideal para servidores web o backends de juegos basados en Node.js que requieren E/S no bloqueante. Maneja el objeto de respuesta para extraer la respuesta del asistente y actualizar tu estado local o base de datos.
Respuestas en streaming vía SSE
Habilita el streaming configurando stream: true en tu petición. La API devuelve eventos de servidor (SSE) a medida que el modelo genera texto. Cada fragmento contiene deltas parciales. El último fragmento incluye las estadísticas de uso de tokens de la petición. Este método reduce la latencia percibida para los usuarios en interfaces de chat NSFW al mostrar el texto a medida que se genera. Procesa cada evento en tu cliente para actualizar la interfaz de usuario en tiempo real.
Límites, errores y ventana de contexto
La ventana de contexto admite hasta 100.000 tokens para el prompt y la finalización combinados. El cuerpo de tu petición no debe exceder los 8 MB. Tienes un límite de 300 peticiones por minuto y 8 peticiones simultáneas por clave. Si tu crédito prepago se agota, la API rechaza las peticiones adicionales. Los fallos de autenticación devuelven un error 401 y los límites de velocidad activan una respuesta 429. Asegúrate de que tu aplicación maneje estos errores de forma elegante para mantener una experiencia de usuario fluida durante períodos de alto tráfico.
cURL
curl https://api.nsfwchat.top/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Write a blunt product review of a cheap VPN."}]
}'Python
from openai import OpenAI
client = OpenAI(base_url="https://api.nsfwchat.top/v1", api_key="YOUR_KEY")
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)Node.js
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.nsfwchat.top/v1", apiKey: process.env.API_KEY });
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);Streaming
stream = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Tell the story in second person."}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)Funciones y límites
Todos los límites y funciones reales de la API en un solo lugar: revísalos antes de recargar.
| Elemento | Valor |
|---|---|
| Formato | compatible con OpenAI: cualquier SDK de OpenAI funciona cambiando la base URL y la clave |
| ID del modelo | uncensored |
| Endpoints | POST /v1/chat/completions · GET /v1/models |
| Autenticación | Authorization: Bearer YOUR_KEY |
| Base URL | https://api.nsfwchat.top/v1 |
| Parámetros | temperature, top_p, stop, seed, presence_penalty, frequency_penalty |
| Ventana de contexto | 100.000 tokens (entrada + salida) |
| Streaming | sí: server-sent events; el último fragmento incluye el uso de tokens |
| Llamadas a funciones | sí: tools, tool_choice; la respuesta trae tool_calls, también en streaming; resultados como role: tool |
| Modo JSON | response_format: {"type": "json_object"} |
| Salida máxima | hasta el resto de la ventana de 100.000 tokens; max_tokens opcional (sin límite aparte) |
| Cabeceras | X-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency |
| Límite de peticiones | 300 por minuto por clave |
| Tamaño de petición | hasta 8 MB |
| Concurrencia | 8 peticiones a la vez por clave |
| Recarga | USDT (TRC20) o USDC (Base), cualquier importe entero de $10 a $500 |
| Prueba gratis | $0,50 durante 7 días, sin tarjeta · Clave de prueba: 2 solicitudes paralelas, 60 por minuto; límites completos (8 y 300) tras la primera recarga |
| Facturación | crédito prepago por uso real; errores y rechazos no se cobran |
| Bono | +5 % desde $50, +10 % desde $100 |
| Precio | $0,25 por 1M tokens de entrada · $1,00 por 1M de salida |
| Caducidad | el crédito pagado no caduca, sin suscripción |
| Claves | una clave activa por cuenta; una nueva reemplaza a la anterior |
| Acceso | Google o correo y contraseña |
| Contenido | contenido adulto permitido; se rechaza el contenido sexual con menores |
Códigos de error
Los errores llegan como JSON con un type fijo; las peticiones fallidas o rechazadas no se cobran.
| Código | Tipo | Significado |
|---|---|---|
400 | bad_request | JSON inválido, mensajes vacíos, parámetro incorrecto o contexto demasiado largo |
401 | missing_key · invalid_key · key_revoked | falta la clave, es incorrecta o fue reemplazada |
402 | no_credit | sin crédito: recarga y sigue al instante |
403 | content_blocked | contenido sexual con menores: rechazado, no se cobra |
404 | not_found | endpoint desconocido |
413 | request_too_large | cuerpo mayor de 8 MB |
429 | rate_limited · concurrency | más de 300/min o 8 en paralelo: espera y reintenta |
503 | upstream_busy | modelo ocupado: reintenta en unos segundos |
Preguntas y respuestas
¿Qué ID de modelo debo usar?
Usa el ID de modelo <code>uncensored</code>. Es un modelo de pesos abiertos alojado en nuestros servidores, distinto de GPT, Claude u otros modelos de proveedores.
¿La API admite llamadas a funciones?
Sí, la API admite llamadas a funciones (tools y tool_choice) junto con el modo JSON para salidas estructuradas. Puedes definir herramientas en la carga útil de tu petición.
¿Existe un filtro de contenido para menores?
Se aplica un límite estricto de contenido: las peticiones que contengan contenido sexual con menores siempre se rechazan, independientemente del contexto del prompt.
Tu clave está a un formulario de distancia
Crea una cuenta, copia la clave, cambia la URL base. Eso es toda la configuración.