Saltar al contenido
Nuevo

DeepSeek V4.1 Flash gratis por 7 días: 10M tokens al día tras una recarga de $10 o más. Hasta el 30/11.

Cómo funciona

La API de NotHoly entra en tu código OpenAI o Anthropic

Cambia la base URL, la clave y el ID del modelo. El SDK de OpenAI o Anthropic que ya usas, y las herramientas sobre él, siguen funcionando en NotHoly.

Intermedio3 min de lecturaPor NotHoly

Cambiar de proveedor de modelo casi siempre significa reescribir: otro cliente, otros campos de petición, otro streaming. Ese coste es lo que ata a un equipo a un proveedor mucho después de tener razones para irse. NotHoly quita el coste hablando las dos formas de API que tu código ya usa.

La API es compatible con los formatos de OpenAI y de Anthropic. Cambias la base URL, la clave y el ID del modelo, y la biblioteca cliente, los cuerpos de petición, las definiciones de herramienta y el streaming que ya escribiste siguen funcionando. La misma cuenta y la misma clave alcanzan ambas formas. Claves, presupuestos y la lista de modelos están en una sola cuenta, así que un equipo puede mover un servicio a la vez.

La forma OpenAI

Apunta el SDK de OpenAI a NotHoly y elige un ID de modelo del catálogo. Nada más en la llamada cambia, incluidas las herramientas de función que pasas y la manera de leer una respuesta en stream.

python
from openai import OpenAI

client = OpenAI(base_url="https://api.notholy.com/v1", api_key="nh_live_...")

r = client.chat.completions.create(
    model="MODEL_ID",
    messages=[{"role": "user", "content": "List the auth checks this endpoint is missing."}],
    max_tokens=800,
)
print(r.choices[0].message.content)

GET /v1/chat/completions, /v1/completions y /v1/responses responden en esta forma, con server-sent events cuando activas stream, cada evento una línea data: que termina en data: [DONE]. Se aceptan Authorization: Bearer y x-api-key, así que un cliente que envía cualquiera de los dos encabezados funciona sin cambios.

La forma Anthropic

Los SDK de Anthropic usan https://api.notholy.com como base URL, sin /v1, y llaman a POST /v1/messages. Mantienes max_tokens y mantienes el reasoning: thinking con un presupuesto de tokens, o output_config.effort para un nivel con nombre que se asigna al más cercano que el modelo tiene. Los turnos user y assistant llevan bloques text, tool_use y tool_result igual.

bash
curl https://api.notholy.com/v1/messages \
  -H "x-api-key: $NOTHOLY_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{"model": "MODEL_ID", "max_tokens": 800, "thinking": {"type": "enabled", "budget_tokens": 2000}, "messages": [{"role": "user", "content": "Explain this stack trace and name the likely bug class."}]}'

La respuesta es la forma de mensaje de Anthropic, los errores usan los tipos de error de Anthropic, y un stream devuelve eventos de Anthropic. POST /v1/messages/count_tokens estima el tamaño de la entrada antes de enviar, sin llamar al modelo.

Las herramientas que ya usas

Como las formas coinciden, las bibliotecas sobre ellas también coinciden. Los SDK de OpenAI y de Anthropic en cualquier lenguaje apuntan a NotHoly solo por configuración, y lo mismo vale para los agentes de código que hablan esos protocolos. La CLI escribe esa configuración para agentes como Claude Code, Codex y OpenCode, así que no editas cada uno a mano. La guía de migración es la versión corta: base URL, clave, modelo. El uso se mide por token a la tarifa publicada de cada modelo en todos estos endpoints, así que el cambio no altera cómo piensas el coste. Tu harness de evaluación, tu wrapper de logs y tu lógica de reintentos mantienen su sentido, porque la petición y la respuesta que envuelven no cambiaron.

Dónde no encaja

Algunas cosas no pasan con el resto. La API Responses es sin estado, así que previous_response_id devuelve 400. cache_control se acepta y se ignora, porque el caché corre solo. En los endpoints crudos el servidor no ejecuta ninguna herramienta propia; ejecuta solo las herramientas de función que envías, y tu código las corre. n debe ser 1. Aún no hay modelo de embedding, y no hay endpoint de batch, fine-tuning, assistants, audio ni generación de imagen. Una fuente document en PDF en la forma Messages devuelve 400, así que manda archivos por el chat o por el endpoint de archivos.

Si lo único que te ata a un proveedor es el trabajo de integración, aquí hay poco de eso. Pon un saldo pequeño en precios, cambia tres valores y corre el código que ya tienes.

Fuentes

  1. NotHoly, Migration from OpenAI and Anthropic
  2. NotHoly, Chat completions
  3. NotHoly, Messages (Anthropic)
  4. OpenAI, API reference
  5. Anthropic, Messages API

Más en Modelos de LLM y APIs

Modelos de LLM y APIs

Planes ilimitados vs cobro por uso en seguridad

Los planes ilimitados suelen limitar la velocidad, no los tokens. Verboo, Venice.ai, Drael y crédito prepago por token, comparados en términos y facturas.

Intermedio7 min de lectura