Saltearse al contenido

Inicio rápido

Semantara expone una API compatible con OpenAI. Si ya usas el SDK de OpenAI, migrar es cambiar el base_url y la clave.

Antes de empezar

Necesitas tres cosas, que configuras una sola vez en la Consola:

  1. Una cuenta. Regístrate y verifica tu correo.

  2. Un proveedor de IA (BYOK). Conecta tu propia clave de OpenAI, Anthropic o Gemini. Semantara la usa para enrutar tus peticiones y la guarda cifrada.

  3. Una API key de servicio. Genérala en la Consola; empieza con px_live_. Cópiala al crearla — se muestra una sola vez.

El endpoint

POST https://api.semantara.com/v1/chat/completions

Autenticación por header:

Authorization: Bearer px_live_...

Tu primera llamada

Ventana de terminal
curl https://api.semantara.com/v1/chat/completions \
-H "Authorization: Bearer px_live_..." \
-H "Content-Type: application/json" \
-d '{
"model": "proxy/auto",
"messages": [
{ "role": "user", "content": "Explica qué es un vector embedding en una frase." }
]
}'

La respuesta sigue el formato de OpenAI (choices, usage, …), así que tu código existente la procesa sin cambios.

Elegir el modelo

  • "model": "proxy/auto" — Semantara clasifica la complejidad de tu petición y elige el modelo más económico que la resuelve bien. Es la opción recomendada para ahorrar.
  • Un modelo específico — si prefieres fijarlo, pasa el nombre del modelo de tu proveedor (por ejemplo gpt-4o, claude-sonnet-4-6). Semantara lo respeta.

Conversaciones de varios turnos

Manda el historial completo en messages, igual que con OpenAI — incluye system y los turnos previos de assistant:

{
"model": "proxy/auto",
"messages": [
{ "role": "system", "content": "Eres un asistente conciso." },
{ "role": "user", "content": "¿Capital de Francia?" },
{ "role": "assistant", "content": "París." },
{ "role": "user", "content": "¿Y su población?" }
]
}

Streaming

Pasa "stream": true para recibir la respuesta por partes (SSE, formato OpenAI):

Ventana de terminal
curl https://api.semantara.com/v1/chat/completions \
-H "Authorization: Bearer px_live_..." \
-H "Content-Type: application/json" \
-d '{ "model": "proxy/auto", "stream": true, "messages": [ { "role": "user", "content": "Cuenta hasta cinco." } ] }'

¿Algo falló?

Cada error trae un error_code estable. Consulta la referencia de códigos de error para saber qué significa y cómo resolverlo.