nsfwllms.comDocumentación
LLM NSFW: Inicio rápido de la API de LLM sin censura
Comienza con nuestra API de LLM sin censura en minutos. Esta guía cubre autenticación, completado de chat, streaming y llamadas a herramientas usando clientes compatibles con OpenAI.
- por 1M de tokens de entrada
- $0.25
- Tokens de salida / 1M
- $1.00
- ventana de contexto de tokens
- 100,000
- crédito de prueba
- $0.50
- peticiones por minuto
- 300
URL base y autenticación
Nuestra API sigue el estándar de OpenAI, lo que facilita la integración. Usa la URL base https://api.nsfwllms.com/v1 para todas las peticiones. La autenticación se maneja mediante un token Bearer en el encabezado Authorization. Puedes generar tu clave en la página Obtener clave de API usando solo un correo electrónico y una contraseña. No se requiere número de teléfono ni tarjeta de crédito para comenzar con el crédito de prueba gratis.
Primera petición
Envía una petición estándar de completado de chat para probar la conectividad. El identificador del modelo es uncensored. Esta petición demuestra el flujo básico de entrada de texto y salida de texto sin parámetros especiales.
curl https://api.nsfwllms.com/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."}]
}'
Esto devuelve un objeto de respuesta estándar que contiene el texto generado. Si recibes un 401, verifica tu clave de API. Un 402 indica que tu saldo de crédito prepago es insuficiente.
Integración con SDK de Python
Usa el paquete oficial de Python openai para interactuar con el endpoint. Establece la URL base para apuntar a nuestros servidores y proporciona tu clave de API. Esto te permite aprovechar los patrones de SDK familiares para tus aplicaciones de LLM sin censura.
from openai import OpenAI
client = OpenAI(base_url="https://api.nsfwllms.com/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)
El cliente maneja la serialización y la lógica de reintento automáticamente. Puedes pasar model="uncensored" para asegurarte de que estás accediendo al modelo sin censura correcto.
Uso del SDK de Node.js
Para proyectos en JavaScript o TypeScript, inicializa el cliente de OpenAI con la URL base personalizada. Este enfoque funciona con cualquier biblioteca de cliente compatible con OpenAI que admita endpoints personalizados.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.nsfwllms.com/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);
Asegúrate de usar una versión reciente del SDK que admita la configuración baseUrl. Esto garantiza la compatibilidad con nuestras funciones de streaming y llamadas a herramientas.
Respuestas en streaming (SSE)
Habilita el streaming estableciendo stream: true en tu petición. La API devuelve Eventos Enviados por el Servidor (SSE) que puedes procesar de forma incremental. Esto reduce la latencia percibida en interfaces de chat.
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)
Cada fragmento contiene deltas de texto parciales. Concatena estos deltas para reconstruir la respuesta completa. El streaming funciona de manera idéntica al protocolo estándar de OpenAI, por lo que los analizadores de stream existentes deberían funcionar sin modificaciones.
Límites de peticiones y restricciones
Cada clave de API está limitada a 300 peticiones por minuto. El tamaño máximo del cuerpo de la petición es de 8 MB. La ventana de contexto admite hasta 100.000 tokens en total para prompt y completado combinados. Si excedes el límite de peticiones, recibirás un error 429. Puedes regenerar tu clave de API en cualquier momento, lo que revoca inmediatamente la clave anterior.
Funciones y límites
Una tabla con cada límite, función y precio.
| Elemento | Valor |
|---|---|
| Formato | compatible con OpenAI: cualquier SDK de OpenAI funciona cambiando la base URL y la clave |
| Autenticación | Authorization: Bearer YOUR_KEY |
| ID del modelo | uncensored |
| Endpoints | POST /v1/chat/completions · GET /v1/models |
| Base URL | https://api.nsfwllms.com/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 |
| 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) |
| Llamadas a funciones | sí: tools, tool_choice; la respuesta trae tool_calls, también en streaming; resultados como role: tool |
| Cabeceras | X-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency |
| Concurrencia | 8 peticiones a la vez por clave |
| Tamaño de petición | hasta 8 MB |
| Límite de peticiones | 300 por minuto por clave |
| Facturación | crédito prepago por uso real; errores y rechazos no se cobran |
| 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 |
| Caducidad | el crédito pagado no caduca, sin suscripción |
| Precio | $0,25 por 1M tokens de entrada · $1,00 por 1M de salida |
| Recarga | USDT (TRC20) o USDC (Base), cualquier importe entero de $10 a $500 |
| Bono | +5 % desde $50, +10 % desde $100 |
| Contenido | contenido adulto permitido; se rechaza el contenido sexual con menores |
| Acceso | Google o correo y contraseña |
| Claves | una clave activa por cuenta; una nueva reemplaza a la anterior |
Errores y qué hacer
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é pasa si se agota mi crédito prepago?
Recibirás un error 402 en las peticiones posteriores. Puedes recargar tu cuenta desde $10 usando criptomonedas (USDT o USDC). Los créditos bonus se añaden automáticamente en niveles superiores.
¿Es el modelo sin censura GPT-4?
No. El ID del modelo es <code>uncensored</code>. Es un modelo de pesos abiertos ajustado para generación de texto sin restricciones, que se ejecuta en nuestros propios servidores GPU. No es GPT, Claude ni ningún otro modelo de otro proveedor.
¿Cómo manejo los errores de streaming?
Verifica el código de estado HTTP del stream de respuesta. Si el stream termina prematuramente o devuelve un objeto de error, inspecciona el <code>error</code> campo para obtener detalles como límites de peticiones o parámetros inválidos.