Primeros pasos con Yeap LLM API mediante el SDK de OpenAI
Yeap LLM API es compatible con OpenAI: conserve su SDK y apunte base_url a https://llm.yeap.cloud/v1. Incluye creación de claves, ejemplos en Python y Node.js, streaming, embeddings y límites de cuota, modelos e IP por clave.
Yeap LLM API es una pasarela de modelos compatible con OpenAI. El objetivo es sencillo: no tener que aprender a usar otro SDK ni reescribir código. Conserve su SDK de OpenAI actual, cambie base_url a https://llm.yeap.cloud/v1, utilice una clave de API de Yeap y estará listo para empezar. El uso se factura por token con cargo al saldo de su cuenta de Yeap, el mismo que utilizan sus otros productos de Yeap.
Endpoints disponibles
| Endpoint | Finalidad |
|---|---|
POST /v1/chat/completions | Generación de respuestas de chat, con streaming |
POST /v1/completions | Generación de continuaciones de texto |
POST /v1/embeddings | Embeddings |
POST /v1/images/generations | Generación de imágenes |
POST /v1/audio/transcriptions | Conversión de voz a texto |
GET /v1/models | Listar los modelos disponibles para su clave |
Todos los endpoints se autentican con Authorization: Bearer <key>. Los modelos y los precios cambian con el tiempo, y la lista de referencia es siempre GET /v1/models o la lista de modelos de la consola; por eso los ejemplos siguientes usan marcadores de posición en lugar de nombres de modelos concretos.
Paso 1: Cree una clave de API
Inicie sesión en console.yeap.cloud, vaya a LLM → Tokens y cree una clave. Puede configurar:
- Nombre: recomendamos nombrarla por proyecto o entorno, por ejemplo,
blog-summarizer-prod; - Cuota: un límite de gasto para esta clave, o sin límite;
- Límites de modelos: restringir la clave a modelos concretos;
- Límites de IP: aceptar solicitudes solo desde IP específicas;
- Caducidad: la clave deja de funcionar automáticamente después de esta fecha y hora.
Las claves empiezan por sk-; guarde la suya en cuanto se cree. Utilice una clave distinta por proyecto y por entorno, y asigne una cuota baja a las claves de entornos que no sean de producción para limitar el impacto de una filtración.
Guarde la clave en una variable de entorno en lugar de incluirla en su repositorio:
export YEAP_API_KEY="sk-..."
Paso 2: Compruebe la conectividad con curl
curl https://llm.yeap.cloud/v1/models \
-H "Authorization: Bearer $YEAP_API_KEY"
En la respuesta JSON, el id de cada elemento del arreglo data es un nombre de modelo que puede utilizar en las solicitudes.
Paso 3: Python
Instale el SDK oficial con pip install openai.
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["YEAP_API_KEY"],
base_url="https://llm.yeap.cloud/v1",
)
resp = client.chat.completions.create(
model="your-model-id", # pick one from /v1/models
messages=[
{"role": "system", "content": "You are a concise technical assistant."},
{"role": "user", "content": "Explain what a CDN is in one sentence."},
],
)
print(resp.choices[0].message.content)
print(resp.usage) # prompt_tokens / completion_tokens / total_tokens
Streaming
Las aplicaciones de chat suelen necesitar mostrar la salida a medida que se genera. Configure stream=True y la respuesta llegará de forma incremental como eventos enviados por el servidor:
stream = client.chat.completions.create(
model="your-model-id",
messages=[{"role": "user", "content": "Write a short poem about cache hits."}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
Embeddings
emb = client.embeddings.create(
model="your-embedding-model-id",
input=["Yeap CDN supports HTTP/3", "How to purge the cache"],
)
vectors = [item.embedding for item in emb.data]
print(len(vectors), len(vectors[0]))
Generación de imágenes y transcripción
Los endpoints de imagen y audio también utilizan los métodos estándar del SDK; basta con usar un modelo del tipo correspondiente:
# Image generation
img = client.images.generate(
model="your-image-model-id",
prompt="A minimalist illustration of a server room",
size="1024x1024",
)
print(img.data[0].url or "base64 image returned")
# Speech to text
with open("meeting.mp3", "rb") as f:
tr = client.audio.transcriptions.create(
model="your-transcription-model-id",
file=f,
)
print(tr.text)
Los modelos pueden devolver las imágenes como URL o como base64, por lo que conviene contemplar ambos casos en su código.
Prácticas para mantener los costos previsibles
- Configure
max_tokens. Los tokens de salida suelen costar más que los de entrada. Un límite de salida razonable para cada tipo de solicitud evita facturas inesperadas por un modelo que sigue generando texto. - Reduzca el contexto. En las conversaciones de varios turnos, se vuelve a enviar todo el historial en cada turno. Resumir o recortar los turnos anteriores reduce considerablemente los tokens de entrada.
- Adapte el modelo a la tarea. La clasificación, la extracción y la reescritura suelen funcionar bien con un modelo más pequeño; reserve los más grandes para tareas que realmente requieran razonamiento. Compare varios modelos en el Playground antes de elegir uno predeterminado.
- Utilice las cuotas de las claves como última barrera. Aunque un error haga que su código llame a la API en un bucle, la cuota de la clave evita que el gasto se dispare.
Paso 4: Node.js
Instale con npm install openai.
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.YEAP_API_KEY,
baseURL: "https://llm.yeap.cloud/v1",
});
const stream = await client.chat.completions.create({
model: "your-model-id",
messages: [{ role: "user", content: "List three ways to reduce API latency." }],
stream: true,
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}
Cambiar sin modificar el código
Los SDK oficiales de OpenAI leen las variables de entorno OPENAI_BASE_URL y OPENAI_API_KEY. Si una herramienta o un script ya utiliza el SDK de OpenAI y prefiere no modificar su código, cambie únicamente el entorno:
export OPENAI_BASE_URL="https://llm.yeap.cloud/v1"
export OPENAI_API_KEY="$YEAP_API_KEY"
Lo mismo funciona con la mayoría de las herramientas de terceros que admiten un endpoint de API personalizado: configure el endpoint como https://llm.yeap.cloud/v1 y utilice su clave de Yeap.
Errores y reintentos
En producción, prevea los fallos:
- 401: la clave no es válida o ha caducado, o la solicitud procede de una dirección que no está en la lista de IP permitidas para la clave. Revise la configuración de la clave.
- Cuota insuficiente: las solicitudes se rechazan cuando se agota la cuota de una clave o el saldo de la cuenta es demasiado bajo, y el mensaje de error indica el motivo. Aumente la cuota de la clave o recargue el saldo en la consola.
- 429 y 5xx: suelen ser errores transitorios y conviene reintentar con intervalos de espera crecientes. Los SDK de OpenAI reintentan automáticamente; ajuste la cantidad con
max_retriesy el tiempo de espera por solicitud contimeout.
client = OpenAI(
api_key=os.environ["YEAP_API_KEY"],
base_url="https://llm.yeap.cloud/v1",
max_retries=3,
timeout=60.0,
)
Supervisar el uso
Cada solicitud se registra con el modelo, la cantidad de tokens y el costo. En el menú LLM de la consola puede consultar los registros de solicitudes y las estadísticas, y ver el gasto por clave, lo que facilita separar los proyectos. Para comparar modelos antes de escribir código, pruébelos en el Playground de la consola directamente desde su navegador.
Resumen
Para empezar con Yeap LLM API necesita tres cosas: una clave, un base_url y un nombre de modelo de /v1/models. El resto del código ya lo tiene escrito.
Cree en Yeap Cloud
Planes gratuitos de DNS y CDN para cada cuenta nueva.
Seguir leyendo

PHP2Shell (CVE-2026-109618/109619): cómo lo mitigamos con un parche virtual en el perímetro
Dos avisos críticos de PHP permiten la ejecución remota de código sin autenticación mediante una salida abrupta por falta de memoria y estado global obsoleto. Le explicamos cómo funcionan los fallos, qué bloquea Yeap WAF en el perímetro desde el primer día y qué debe corregir todavía en su origen.
La nueva infraestructura perimetral de Yeap CDN: por qué elegimos Rust
Reemplazamos nuestra infraestructura perimetral de CDN por una versión propia desarrollada en Rust sobre Pingora. Esto supone para su sitio conexiones más rápidas, configuración que se aplica en segundos y mayor aislamiento y seguridad.
Configure Yeap CDN y HTTPS gratuito para su sitio web en 10 minutos
Una guía paso a paso para integrar un sitio existente con Yeap CDN: añada el dominio, configure el origen, conecte mediante CNAME o NS, obtenga un certificado gratuito de Let's Encrypt, elija un modo SSL, fuerce HTTPS y verifique con curl.