API compatible con OpenAI: Cambia tu cliente en tres líneas
Cambia tu cliente en tres líneas: cambia la URL base y la clave de API, luego conserva tu código existente. Esta api compatible con openai listo para usar ofrece una experiencia de api de llm sin censura con precios transparentes por token.
- URL base
- https://api.openaicompatibleapi.com/v1
- Modelo
- sin censura
Prerrequisitos: Instalar OpenAI SDK
Antes de realizar peticiones, asegúrate de que tu entorno de desarrollo tenga instalado el SDK oficial de OpenAI para tu lenguaje preferido. Esta es la forma estándar en que los desarrolladores interactúan con una api compatible con openai, asegurando tipado consistente y manejo de errores. Para Python, usa pip install openai. Para Node.js, ejecuta npm install openai. Estas bibliotecas manejan los detalles HTTP subyacentes, así que puedes centrarte en pasar prompts y recibir salidas de texto.
Configurar URL base y clave de API
La ventaja principal de nuestro servicio es que solo necesitas actualizar dos valores de configuración. Apunta tu cliente a nuestra URL base: https://api.openaicompatibleapi.com/v1. Luego, genera tu clave de API en la página de registro; se muestra inmediatamente después del registro sin necesidad de tarjeta de crédito. Establece base_url y api_key en la inicialización de tu cliente. Esto nos convierte en una alternativa directa de api gpt para tus proyectos existentes sin reescribir la lógica.
Realiza tu primera petición
Envía una petición estándar de finalización de chat usando el ID de modelo uncensored. Este modelo es un modelo de lenguaje grande de pesos abiertos ajustado para responder sin rechazos de contenido para uso adulto lícito. No es GPT, Claude ni ningún otro modelo de proveedor. Puedes probar la conectividad inmediatamente con un prompt de texto simple. La respuesta devolverá el texto generado en el campo content.
curl https://api.openaicompatibleapi.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."}]
}'
Habilitar respuestas en streaming
Para una mejor experiencia de usuario, habilita el streaming para recibir tokens a medida que se generan. Establece stream=True en tu petición. El SDK generará fragmentos a medida que lleguen, permitiéndote mostrar resultados parciales al instante. Esto es particularmente útil para ventanas de contexto largas de hasta 100.000 tokens. El streaming funciona idénticamente a los clientes estándar de OpenAI, manteniendo la compatibilidad con tu lógica existente de manejo de errores.
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)
Usar llamadas a funciones (llamadas a funciones)
Nuestra API admite llamadas a funciones estructuradas. Define tus funciones en el parámetro tools, y el modelo devolverá llamadas a funciones en la respuesta. Luego puedes ejecutar esas herramientas y enviar los resultados de vuelta al modelo para un razonamiento adicional. Esta función funciona con cualquier cliente compatible con OpenAI que admita el formato estándar de llamadas a funciones. Es ideal para construir agentes o automatizar flujos de trabajo sin gestionar un proxy de llm complejo.
from openai import OpenAI
client = OpenAI(base_url="https://api.openaicompatibleapi.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)
Verificar modelos disponibles
Consulta el endpoint GET /v1/models para verificar los modelos disponibles. Verás el modelo uncensored listado. Esto confirma que tu clave de API y URL base están configuradas correctamente. También puedes usar este endpoint para depurar problemas de autenticación. Si el endpoint devuelve una lista, tu conexión a la api de ia para desarrolladores está activa. No se ofrecen otros modelos, manteniendo la configuración simple.
Node.js
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.openaicompatibleapi.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);Especificaciones técnicas
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 |
| Endpoints | POST /v1/chat/completions · GET /v1/models |
| ID del modelo | uncensored |
| Autenticación | Authorization: Bearer YOUR_KEY |
| Base URL | https://api.openaicompatibleapi.com/v1 |
| Streaming | sí: server-sent events; el último fragmento incluye el uso de tokens |
| Modo JSON | response_format: {"type": "json_object"} |
| Llamadas a funciones | sí: tools, tool_choice; la respuesta trae tool_calls, también en streaming; resultados como role: tool |
| Parámetros | temperature, top_p, stop, seed, presence_penalty, frequency_penalty |
| Salida máxima | hasta el resto de la ventana de 100.000 tokens; max_tokens opcional (sin límite aparte) |
| Ventana de contexto | 100.000 tokens (entrada + salida) |
| 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 |
| Precio | $0,25 por 1M tokens de entrada · $1,00 por 1M de salida |
| Bono | +5 % desde $50, +10 % desde $100 |
| Facturación | crédito prepago por uso real; errores y rechazos no se cobran |
| Caducidad | el crédito pagado no caduca, sin suscripción |
| 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 |
| Contenido | contenido adulto permitido; se rechaza el contenido sexual con menores |
| Claves | una clave activa por cuenta; una nueva reemplaza a la anterior |
| Acceso | Google o correo y contraseña |
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
¿Cuáles son los límites de peticiones?
Estás limitado a 300 peticiones por minuto por clave de API. El tamaño del cuerpo de la petición está limitado a 8 MB. Si excedes el límite, recibirás un error 429. Puedes regenerar tu clave en cualquier momento para restablecer la asociación, aunque el límite de peticiones se aplica a la clave en sí.
¿Por qué obtengo un error 401 o 402?
Un error 401 indica una clave de API inválida o expirada. Un error 402 significa que tu crédito prepago se ha agotado. No ofrecemos una capa gratuita ilimitada; debes recargar para continuar usando la api de llm sin censura. El crédito no caduca, así que puedes recargar desde $10 con cripto (USDT o USDC).
¿La ventana de contexto es realmente de 100k?
Sí, el modelo admite una ventana de contexto estricta de 100.000 tokens para prompt y completion combinados. Esto permite un procesamiento extenso de documentos o conversaciones largas. Asegúrate de que tus entradas se ajusten a este límite para evitar truncamiento o errores.
Tu clave está a un formulario de distancia
Crea una cuenta, copia la clave, cambia la URL base. Eso es toda la configuración.