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:
-
Una cuenta. Regístrate y verifica tu correo.
-
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.
-
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/completionsAutenticación por header:
Authorization: Bearer px_live_...Tu primera llamada
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." } ] }'from openai import OpenAI
# Solo cambian dos cosas frente a OpenAI: base_url y api_key.client = OpenAI( api_key="px_live_...", base_url="https://api.semantara.com/v1",)
resp = client.chat.completions.create( model="proxy/auto", messages=[ {"role": "user", "content": "Explica qué es un vector embedding en una frase."} ],)print(resp.choices[0].message.content)import OpenAI from 'openai'
const client = new OpenAI({ apiKey: 'px_live_...', baseURL: 'https://api.semantara.com/v1',})
const resp = await client.chat.completions.create({ model: 'proxy/auto', messages: [ { role: 'user', content: 'Explica qué es un vector embedding en una frase.' }, ],})console.log(resp.choices[0].message.content)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):
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.