Autenticar y configurar la URL base
Tu clave de API otorga acceso inmediato al punto de conexión de finalización de chat. Genera una clave mediante Google o correo electrónico en el panel y pégala en tus variables de entorno. La URL base es https://api.cheapaiapikeys.com/v1 que funciona con cualquier cliente SDK estándar de OpenAI.
- Establecer
OPENAI_API_KEYtu cadena generada. - Anular
base_urlpara apuntar a nuestro servidor alojado. - Verifica la conectividad llamando a
GET /v1/modelspara listar los modelos disponibles.
curl https://api.cheapaiapikeys.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "List three common regex patterns for validating email addresses"}]
}'
Envía tu primera solicitud de finalización de chat
Envía entrada de texto y recibe texto generado utilizando la estructura estándar de finalización de chat. Nuestro único modelo uncensored procesa solicitudes sin rechazar temas adultos lícitos o controversiales. Puedes ajustar parámetros como temperature y top_p para controlar la aleatoriedad.
from openai import OpenAI
client = OpenAI(base_url="https://api.cheapaiapikeys.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)
Habilitar Streaming y Gestionar Eventos SSE
Habilitar entrega de tokens en tiempo real estableciendo stream: true en tu solicitud. El servidor devuelve Server-Sent Events (SSE) que debes analizar de forma incremental. Los detalles del uso de tokens aparecen en el último fragmento del flujo. Este enfoque reduce la latencia percibida para respuestas largas.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.cheapaiapikeys.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);
Usa llamada de función y modo JSON
Define las herramientas en el cuerpo de tu solicitud para habilitar una salida estructurada o la ejecución de funciones externas. Utiliza response_format: {type: "json_object"} para forzar un cumplimiento estricto de JSON. El modelo admite tool_choice para un control preciso sobre qué funciones invoca. Esto garantiza un análisis fiable para la lógica de tu aplicación.
Comprender los límites de tokens y precios
La facturación es transparente a $0.15 por cada millón de tokens de entrada y $0.50 por cada millón de tokens de salida. Los errores y las denegaciones no consumen saldo. La ventana de contexto admite un total de 100,000 tokens. Las solicitudes que superen el límite devuelven un error de límite de tasa 429. Asegúrate de que tus cargas útiles no superen los 8 MB para evitar errores de cuerpo.
Gestionar errores y casos extremos
Los errores comunes incluyen 401 para claves inválidas y 402 por crédito insuficiente. Un estado 429 indica que has excedido 300 solicitudes por minuto. Usa retroceso exponencial al reintentar después de los límites de velocidad. Verifica el error objeto en la respuesta JSON para detalles específicos. No se emiten reembolsos, así que monitoriza tu uso de cerca.
Transmisión
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)