Puntos clave
- La API sin censura sigue la sintaxis estándar de OpenAI pero carece de funciones avanzadas como embeddings o enrutamiento de múltiples modelos, por lo que tu cliente debe configurarse para un único endpoint.
- Las respuestas en streaming requieren un manejo específico de SSE; si tu SDK predeterminado analiza JSON, encontrarás errores de análisis en las salidas grandes sin censura.
- Las llamadas a funciones funcionan pero requieren una adherencia estricta al esquema JSON porque el modelo puede alucinar argumentos con más frecuencia que los modelos ajustados por instrucciones.
- Estás limitado a 300 peticiones por minuto y un tamaño de cuerpo de 8 MB, lo que requiere estrategias de agrupación cuidadosas para aplicaciones de alto volumen.
Entendiendo el endpoint de la API de IA sin censura
Al integrar una API de IA sin censura, el primer error es asumir que se comporta idénticamente a los modelos comerciales estándar. Nuestro endpoint es un servicio de chat-completions compatible con OpenAI alojado. Sirve un único modelo de lenguaje grande sin censura dedicado. Esto significa que no necesitas gestionar el enrutamiento de modelos ni las versiones. Envías peticiones a POST /v1/chat/completions y recibes texto como respuesta.
A diferencia de los agregadores que agrupan imágenes, video y múltiples proveedores, este servicio se centra puramente en la generación de texto sin restricciones de alto rendimiento. El modelo es de pesos abiertos y está ajustado para responder sin rechazos de contenido para uso adulto lícito. Sin embargo, no es GPT, Claude, Gemini ni ningún otro modelo de proveedor. Se ejecuta en nuestros propios servidores GPU.
La URL base es https://api.uncensoredgptapi.com/v1. Para usarla, cambias el base_url en tus SDKs de OpenAI existentes o cualquier cliente compatible con OpenAI y proporcionas tu clave de API. El ID de modelo que debes enviar es simplemente "uncensored". Esta simplicidad reduce el tiempo de integración, pero requiere que verifiques que tu cliente pueda manejar un endpoint de un solo modelo sin esperar alternativas.
Errores comunes de autenticación
Los errores de autenticación generalmente provienen de encabezados mal configurados o claves expiradas. La API utiliza autenticación de token Bearer estándar. Debes incluir tu clave de API en el encabezado Authorization para cada petición.
Un error común es almacenar en caché la clave de API sin verificar su validez. Si regeneras tu clave, la antigua se revoca inmediatamente. Debes actualizar la configuración de tu cliente para usar la nueva clave. Si recibes un error 401 No autorizado, verifica dos cosas: primero, asegúrate de que la clave se haya copiado correctamente sin espacios en blanco iniciales ni finales. Segundo, verifica que estés usando la URL base correcta. Incluso una ligera desviación en el dominio o la ruta provocará un fallo de autenticación.
Otro problema frecuente es usar el ID de modelo incorrecto. El endpoint espera "uncensored". Si envías "gpt-4" u otro ID de modelo estándar, el endpoint puede rechazar la petición o devolver un error porque solo sirve un modelo. Verifica siempre el campo model en tu carga útil de petición.
curl https://api.uncensoredgptapi.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."}]
}'
Manejo correcto de respuestas en streaming
Las respuestas en streaming mediante Server-Sent Events (SSE) son compatibles, pero a menudo se manejan incorrectamente por desarrolladores acostumbrados a respuestas JSON síncronas. Cuando estableces "stream": true en tu petición, la API devuelve un flujo de objetos JSON parciales, no una única respuesta JSON completa.
Si tu cliente intenta analizar toda la respuesta como JSON a la vez, fallará. Debes leer el flujo línea por línea. Cada línea comienza con data: y contiene un objeto JSON parcial. La línea final es data: [DONE]. Tu código debe agregar estos fragmentos para reconstruir el texto final.
Algunos SDK manejan esto automáticamente, pero las implementaciones personalizadas necesitan análisis explícito de SSE. Asegúrate de que el búfer de tu cliente pueda manejar salidas grandes sin tiempo de espera. El modelo sin censura puede generar respuestas largas, y el streaming ayuda a gestionar el uso de memoria. Si experimentas conexiones caídas, considera implementar retroceso exponencial para la lógica de reintento.
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)
Errores de configuración de llamadas a funciones
El tool calling es compatible, pero el modelo sin censura puede alucinar argumentos con más frecuencia que los modelos ajustados por instrucciones. Esto requiere una validación más estricta por tu parte. Al definir herramientas, asegúrate de que tu esquema JSON sea preciso. El modelo intentará rellenar los argumentos, pero puede omitir campos obligatorios o proporcionar tipos incorrectos.
Valida siempre los argumentos de la llamada a la función antes de ejecutar la función. Si el modelo devuelve JSON inválido para los argumentos, debes manejar el error de manera elegante. No asumas que la salida estará perfectamente estructurada. Es posible que necesites implementar un mecanismo de reintento o un paso de post-procesamiento para limpiar los argumentos.
Además, ten en cuenta que el modelo sin censura podría ignorar las definiciones de herramientas si el prompt es complejo. Si encuentras problemas, simplifica las descripciones de las herramientas y asegúrate de que el prompt del sistema instruya claramente al modelo para usar las herramientas cuando sea apropiado. Prueba con algunas entradas de muestra para verificar el comportamiento.
Límites de ventana de contexto (100k tokens)
La API sin censura admite una ventana de contexto de 100.000 tokens, combinando tanto el prompt como la respuesta. Esto es significativamente mayor que muchos modelos estándar, lo que permite conversaciones extensas o el procesamiento de documentos grandes. Sin embargo, no es infinito. Si tu entrada supera este límite, la API devolverá un error.
Para evitar alcanzar este límite, monitorea el uso de tokens. La mayoría de los SDK proporcionan utilidades para contar tokens. Lleva un registro de los tokens acumulados en el historial de tu conversación. Si estás procesando documentos grandes, considera fragmentarlos o resumir las partes anteriores de la conversación para liberar espacio de contexto.
Recuerda que la ventana de contexto incluye todos los mensajes en la matriz messages. Cada mensaje contribuye al total. Si envías muchos mensajes pequeños, la sobrecarga puede sumarse. Optimiza la estructura de tu prompt para minimizar tokens innecesarios. Por ejemplo, evita repetir instrucciones del sistema en cada turno si permanecen constantes.
Explicación de los límites de peticiones (300 RPM)
La API aplica un límite de peticiones de 300 peticiones por minuto por clave. Este es un límite estricto para garantizar un uso justo entre todos los usuarios. Si superas este límite, recibirás un error 429 Demasiadas peticiones. Tu cliente debe manejar esto implementando una estrategia de reintento.
Un error común es no tener en cuenta el tráfico por ráfagas. Si envías 300 peticiones rápidamente, puedes alcanzar el límite incluso si tu tasa promedio es menor. Distribuye tus peticiones uniformemente durante el minuto. Si estás procesando un conjunto de datos grande, considera agrupar peticiones o usar una cola para gestionar el flujo.
Los límites de peticiones se aplican por clave de API. Si tienes múltiples servicios usando la misma clave, comparten el límite. Para aumentar la capacidad, puedes generar una nueva clave, pero ten en cuenta que solo una clave está activa por cuenta. Puedes regenerar la clave en cualquier momento, pero esto revoca la antigua, así que asegúrate de actualizar todos los clientes.
Límites de tamaño del cuerpo de la petición (8MB)
Cada cuerpo de petición está limitado a 8 MB. Este límite se aplica a la carga útil JSON, incluida la matriz messages y cualquier definición de herramienta. Si tu petición supera este tamaño, la API la rechazará con un error 413 Carga útil demasiado grande.
Este límite es importante al enviar archivos grandes como datos codificados en base64 o al incluir historiales de conversación extensos. Si estás trabajando con documentos grandes, considera comprimir el texto o eliminar espacios en blanco innecesarios antes de enviar. También puedes usar streaming para reducir el uso de memoria, pero el cuerpo de la petición inicial aún debe ajustarse al límite de 8 MB.
Monitorea el tamaño de tus peticiones durante el desarrollo. Si encuentras este error, revisa la estructura de tu prompt y elimina cualquier información redundante. Por ejemplo, si estás incluyendo todo el prompt del sistema en cada mensaje, muévelo al rol system una vez y refiérete a él.
Gestión y regeneración de claves de API
Cada cuenta está limitada a una clave de API. Esta clave se genera durante el registro y se muestra inmediatamente. Puedes regenerar la clave en cualquier momento desde tu panel. Cuando la regeneras, la clave antigua se revoca al instante. Cualquier cliente que use la clave antigua recibirá un error 401 No autorizado.
Para gestionar esto eficazmente, actualiza todos tus clientes antes de regenerar la clave. Si tienes múltiples servicios o dispositivos usando la clave, asegúrate de que todos se actualicen simultáneamente. Puedes generar una nueva clave tantas veces como sea necesario, pero solo una estará activa a la vez.
La clave de API está vinculada a tu correo electrónico y contraseña. Si pierdes tu clave, puedes regenerarla. No hay límite en el número de regeneraciones. Sin embargo, una regeneración frecuente puede indicar un problema de seguridad, así que úsala cuando sea necesario. Mantén tu clave segura y no la compartas públicamente.
Solución de problemas de filtros de contenido
El modelo sin censura no rechaza temas adultos legales, ficticios, de investigación de seguridad o controversiales. Sin embargo, hay un límite de contenido estricto que siempre se aplica: no hay contenido sexual que involucre menores. Las peticiones que contengan este contenido se bloquean.
Si encuentras rechazos inesperados, verifica tu prompt en busca de indicadores sutiles de contenido prohibido. El modelo está ajustado para uso sin restricciones, pero aún puede aplicar filtros de seguridad básicos. Si estás probando con casos límite, documenta el comportamiento para entender los límites del modelo.
Otro problema común es la alucinación. El modelo sin censura puede generar información plausible pero incorrecta. Verifica siempre las salidas críticas, especialmente al usar llamadas a funciones o generar código. El modelo prioriza la fluidez sobre la precisión factual estricta en algunos casos.