Documentación
Smart AIPI ofrece APIs compatibles con OpenAI y Anthropic. Usa nuestro servicio con cualquier SDK, herramienta o app existente de OpenAI o Anthropic simplemente cambiando la base URL. No se requieren cambios de código.
Base URL de OpenAI
https://api.smartaipi.com/v1
Base URL de Anthropic
https://api.smartaipi.com
Herramientas CLI y MCP
Smart AIPI ofrece dos paquetes npm para ayudar a los desarrolladores a trabajar con sus cuentas:
Instalar ambos
npm install -g smart-aipi @smart-aipi/mcp
Instalar por separado
npm install -g smart-aipi
npm install -g @smart-aipi/mcp
Autenticación
Todas las solicitudes a la API requieren una API key. La misma clave funciona con ambos métodos de autenticación:
Authorization: Bearer YOUR_API_KEY
x-api-key: YOUR_API_KEY
Guía de migración
La migración toma menos de un minuto. Nuestra API es 100% compatible con los endpoints de OpenAI y Anthropic.
Desde OpenAI
Obtén tu API key de Smart AIPI
Regístrate y crea una API key desde tu dashboard.
Cambia la base URL
Reemplaza https://api.openai.com/v1 por https://api.smartaipi.com/v1
Actualiza tu API key
Usa tu clave de Smart AIPI en lugar de tu clave de OpenAI. ¡Eso es todo!
Desde Anthropic
Obtén tu API key de Smart AIPI
Regístrate y crea una API key desde tu dashboard.
Cambia la base URL
Reemplaza https://api.anthropic.com por https://api.smartaipi.com
Actualiza tu API key
Usa tu clave de Smart AIPI en lugar de tu clave de Anthropic. Tus nombres de modelo de Claude existentes funcionan tal cual.
Tu código, SDK y apps existentes que usan Anthropic Messages API funcionarán sin ningún cambio de código. Los nombres de modelo de Claude (claude-opus-4-6, claude-sonnet-4-5-20250929, claude-haiku-4-5-20251001) se enrutan automáticamente a modelos GPT-5.4 de alto rendimiento. Cada respuesta incluye un x-actual-model header que muestra el modelo backend real para una transparencia total.
Finalizaciones de chat
Crea una chat completion para los mensajes y el modelo proporcionados. Este es el endpoint principal para interactuar con modelos de lenguaje.
Parámetros del cuerpo de la solicitud
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| model | cadena | Sí | ID del modelo que se usará (p. ej., "gpt-6-astra", "gpt-5.6-sol") |
| messages | formación | Sí | Array de objetos de mensaje con role y content |
| temperature | número | No | Temperatura de muestreo (0-2). Más alta = más aleatorio. Predeterminado: 1 |
| max_tokens | entero | No | Máximo de tokens que se generarán en la respuesta |
| top_p | número | No | Nucleus sampling. Considera tokens con probabilidad top_p. Predeterminado: 1 |
| frequency_penalty | número | No | Penaliza tokens según la frecuencia (-2 a 2). Predeterminado: 0 |
| presence_penalty | número | No | Penaliza tokens según la presencia (-2 a 2). Predeterminado: 0 |
| stop | string/array | No | Secuencias de parada. Hasta 4 secuencias donde se detiene la generación. |
| stream | booleano | No | Activa respuestas por streaming mediante SSE. Predeterminado: false |
Roles de mensaje
system- system - Establece el comportamiento/persona del asistenteuser- user - Mensajes del usuarioassistant- assistant - Respuestas anteriores del asistente
Ejemplos de código
from openai import OpenAI
client = OpenAI(
base_url="https://api.smartaipi.com/v1",
api_key="your-api-key"
)
response = client.chat.completions.create(
model="gpt-6-astra",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello!"}
],
temperature=0.7,
max_tokens=1000
)
print(response.choices[0].message.content)
Streaming
Activa streaming para recibir tokens a medida que se generan mediante Server-Sent Events (SSE). Esto ofrece una mejor experiencia de usuario para respuestas largas.
Establece "stream": true en tu solicitud para activar streaming.
Ejemplo de streaming
from openai import OpenAI
client = OpenAI(
base_url="https://api.smartaipi.com/v1",
api_key="your-api-key"
)
# Enable streaming
stream = client.chat.completions.create(
model="gpt-6-astra",
messages=[{"role": "user", "content": "Write a poem"}],
stream=True
)
# Process chunks as they arrive
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="")
Esfuerzo de razonamiento
Controla la profundidad del razonamiento con el parámetro reasoning_effort para modelos GPT-5.
Smart AIPI usa por defecto reasoning.effort = "high" para todas las solicitudes de Responses API.
Después de pruebas exhaustivas, descubrimos que high es el mejor esfuerzo de razonamiento para un uso práctico: proporciona uso de herramientas y análisis profundos y fiables sin el costo de latencia de xhigh. Puedes sobrescribir esto estableciendo explícitamente el esfuerzo de razonamiento en tu solicitud.
Smart AIPI usa por defecto store = false para todas las solicitudes de Responses API y WebSocket.
La API upstream requiere store: false para GPT-5.4 y modelos más recientes. Si estableces explícitamente store: true en tus solicitudes, recibirás un error "Store must be set to false". Elimínalo o configúralo en false.
Modelos compatibles
API de Responses
gpt-5.4, gpt-5.3, gpt-5.1, gpt-5 y todas las variantes de Codex
Solo Chat Completions
gpt-5.4-nano — la compatibilidad con razonamiento solo está disponible en /v1/chat/completions .
Niveles de esfuerzo de razonamiento
none- Sin razonamiento. Omite por completo el pensamiento.low- Razonamiento mínimo. Ideal para tareas simples.medium- Equilibrio entre velocidad y profundidad.high- Análisis profundo para problemas complejos. (Predeterminado de Smart AIPI)xhigh- Extra alto. Profundidad máxima de razonamiento para los problemas más difíciles.
Modo rápido (procesamiento prioritario)
Usa service_tier: "priority" para procesamiento prioritario con menor latencia. Esto es lo que usa el comando /fast en Codex CLI. No cambia la profundidad del razonamiento: obtienes la misma calidad, más rápido.
Precio: El procesamiento prioritario se factura a 1.5x la tarifa estándar. Por ejemplo, la salida de GPT-5.4 normalmente cuesta $3.75/1M tokens; con prioridad cuesta $5.625/1M tokens.
response = client.responses.create(
model="gpt-6-astra",
input="Refactor this function",
service_tier="priority" # priority processing, lower latency
)
API de Chat Completions
response = client.chat.completions.create(
model="gpt-6-astra",
messages=[{"role": "user", "content": "Analyze this code for bugs..."}],
reasoning_effort="high" # or "xhigh" for maximum depth
)
API de Responses
# Reasoning is set via the "reasoning" object
response = client.responses.create(
model="gpt-6-astra",
input=[{"role": "user", "content": "Refactor this function..."}],
reasoning={"effort": "high"} # defaults to "high" on Smart AIPI
)
Generación de imágenes
Genera imágenes a partir de prompts de texto usando nuestro endpoint de generación de imágenes.
/v1/images/variations ) aún no son compatibles. Las ediciones de imágenes están disponibles a través de /v1/images/edits.
Parámetros del cuerpo de la solicitud
| Parámetro | Tipo | Descripción |
|---|---|---|
| prompt | cadena | Descripción de texto de la imagen que se generará (obligatoria) |
| model | cadena | "gpt-image-2.5-flare" (frontier), "gpt-image-2.5-sunburst" o "gpt-image-2". Predeterminado: "gpt-image-2.5-flare" |
| n | entero | Número de imágenes que se generarán (1-10). Predeterminado: 1 |
| size | cadena | "1024x1024", "1024x1792" o "1792x1024". Predeterminado: "1024x1024" |
| quality | cadena | "standard" o "hd". Predeterminado: "standard" |
Modelos disponibles
gpt-image-2.5-flare- Modelo frontier, máxima calidad (predeterminado)gpt-image-2.5-sunburst- Edición de precisión y trabajo creativo premium (generación más lenta)gpt-image-latest- Alias de gpt-image-2.5-flaregpt-image-2- Modelo insignia de la generación anteriorgpt-image-1.5- Modelo insignia anterior (admite fondos transparentes)gpt-image-1- Generación de imágenes con calidad completagpt-image-1-mini- Imágenes más rápidas y pequeñas
Ejemplo
response = client.images.generate(
model="gpt-image-2.5-flare",
prompt="A futuristic city at sunset, cyberpunk style",
size="1024x1024",
n=1
)
# Response contains base64-encoded image
image_b64 = response.data[0].b64_json
# Save to file
import base64
with open("output.png", "wb") as f:
f.write(base64.b64decode(image_b64))
Edición de imágenes
Edita imágenes existentes usando un prompt de texto. Acepta tanto JSON (string base64) como multipart/form-data (subida de archivo), por lo que los SDK de OpenAI funcionan de inmediato.
Parámetros del cuerpo de la solicitud
| Parámetro | Tipo | Descripción |
|---|---|---|
| prompt | cadena | Descripción de texto de la edición deseada (obligatoria) |
| image | cadena | Imagen codificada en base64 para editar (obligatoria) |
| model | cadena | "gpt-image-2.5-flare" (predeterminado), "gpt-image-2.5-sunburst" o "gpt-image-2" |
| n | entero | Número de imágenes editadas que se generarán (1-10). Predeterminado: 1 |
| size | cadena | "1024x1024", "1024x1792" o "1792x1024". Predeterminado: "1024x1024" |
| quality | cadena | "low", "medium", "high" o "auto". Predeterminado: "medium" |
image as an array of base64 strings (JSON) or as repeated image / image[] parts (multipart). Add a mask field alongside image to restrict edits to specific regions (white = edit, black = preserve). Works identically to the official OpenAI SDK.
Ejemplo
import base64
response = client.images.edit(
model="gpt-image-2.5-flare",
image=open("input.png", "rb"),
prompt="Change the background to a sunset beach",
size="1024x1024",
n=1
)
# Save the edited image
edited_b64 = response.data[0].b64_json
with open("edited.png", "wb") as f:
f.write(base64.b64decode(edited_b64))
Realtime API con WebSocket
WebSockets son una API ampliamente compatible para la transferencia de datos en tiempo real y una excelente opción para conectarte a la Realtime API de Smart AIPI en aplicaciones server-to-server.
En una integración server-to-server, tu sistema backend se conecta por WebSocket directamente a la Realtime API. Usa un Tecla API estándar para autenticar la conexión, ya que el token solo está disponible en tu servidor backend seguro.
Conéctate por WebSocket
A continuación se muestran varios ejemplos de conexión por WebSocket. Además de usar la URL de WebSocket, tendrás que pasar un header de autenticación usando tu API key.
import WebSocket from "ws";
const url = "wss://api.smartaipi.com/v1/responses";
const ws = new WebSocket(url, {
headers: {
Authorization: "Bearer " + process.env.SMARTAIPI_API_KEY,
},
});
ws.on("open", function open() {
console.log("Connected to server.");
// Send a response.create event
ws.send(JSON.stringify({
type: "response.create",
response: {
model: "gpt-6-astra",
store: false,
input: [{ role: "user", content: "Hello!" }],
stream: true,
},
}));
});
ws.on("message", function incoming(message) {
const event = JSON.parse(message.toString());
console.log(event.type, event);
});
Envío y recepción de eventos
Las sesiones se gestionan usando eventos JSON enviados por el cliente y el servidor a través de la conexión WebSocket. Envuelve tu solicitud en un envelope de response.create :
| Evento | Dirección | Descripción |
|---|---|---|
| response.create | Cliente | Envía una solicitud (envuelve tu modelo, entrada y parámetros) |
| response.created | Servidor | Sesión aceptada, procesamiento iniciado |
| response.output_text.delta | Servidor | Fragmento de texto en streaming |
| response.completed | Servidor | Evento final con respuesta completa y uso |
| response.failed | Servidor | Evento final que indica un error |
"store": false en el envelope de respuesta. La conexión persiste a través de múltiples turnos: envía frames adicionales de response.create sin reconectar.
Listar modelos
Recupera una lista de todos los modelos disponibles. Usa este endpoint para descubrir dinámicamente qué modelos están disponibles para tu cuenta.
Formato de respuesta
{
"object": "list",
"data": [
{
"id": "gpt-6-astra",
"object": "model",
"created": 1700000000,
"owned_by": "smart-aipi"
},
{
"id": "gpt-5.3-codex",
"object": "model",
"created": 1700000000,
"owned_by": "smart-aipi"
},
// ... more models
]
}
Ejemplo
from openai import OpenAI
client = OpenAI(
base_url="https://api.smartaipi.com/v1",
api_key="your-api-key"
)
# List all available models
models = client.models.list()
for model in models.data:
print(model.id)
Modelos disponibles
Serie GPT
- gpt-6-astra Último
- gpt-5.6-sol
- gpt-5.6-terra
- gpt-5.6-luna
- gpt-5.5
- gpt-5.4-pro
- gpt-5.4
- gpt-5.4-mini
- gpt-5.4-nano solo completions
Serie Codex
- gpt-5.3-codex
- gpt-5.2-codex
- gpt-5.2
- gpt-5.1
Anthropic Mensajes API
Compatibilidad completa con Anthropic Messages API. Usa cualquier SDK de Anthropic, Claude Code o app que hable el protocolo de Anthropic; solo cambia la base URL.
Funciones compatibles
- ✓ Streaming (protocolo completo de eventos SSE de Anthropic)
- ✓ Uso de herramientas / function calling
- ✓ Mensajes del sistema (formatos string y array)
- ✓ Entradas de imagen (base64 y URL)
- ✓ Conteo de tokens (
/v1/messages/count_tokens) - ✓ Pensamiento extendido / esfuerzo de razonamiento
Ejemplos de código
from anthropic import Anthropic
client = Anthropic(
base_url="https://api.smartaipi.com",
api_key="your-api-key"
)
response = client.messages.create(
model="claude-sonnet-4-5-20250929",
max_tokens=1024,
messages=[
{"role": "user", "content": "Hello!"}
]
)
print(response.content[0].text)
Mapeo de modelos
Se aceptan nombres de modelo de Claude y se enrutan automáticamente a GPT-5.4 con esfuerzo de razonamiento por niveles. Cada respuesta incluye un x-actual-model header que muestra el modelo backend real.
| Modelo Claude | backend | Razonamiento | Ideal para |
|---|---|---|---|
| claude-opus-4-6 | gpt-5.4 | Alto | Razonamiento complejo, arquitectura |
| claude-sonnet-4-5-20250929 | gpt-5.4 | Medio | Programación diaria, calidad equilibrada |
| claude-haiku-4-5-20251001 | gpt-5.4 | Bajo | Respuestas rápidas, tareas simples |
Claude Code
Usa Claude Code con Smart AIPI como backend. Compatibilidad total con uso de herramientas, streaming y capacidades agentic.
Configuración automática
npx smart-aipi claude
Esto configura ~/.claude/settings.json y ~/.claude.json automáticamente. Si ya tienes Claude Code configurado con una cuenta de Anthropic, te mostrará la configuración manual en lugar de sobrescribirla.
Configuración manual
Agregar a ~/.claude/settings.json:
{
"env": {
"ANTHROPIC_BASE_URL": "https://api.smartaipi.com",
"ANTHROPIC_API_KEY": "sk-your-key",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "claude-haiku-4-5-20251001"
},
"model": "opus"
}
Luego agrega "hasCompletedOnboarding": true a ~/.claude.json para omitir el asistente de configuración.
Después de editar la configuración, reinicia Claude Code para que los cambios surtan efecto. Si ya tienes Claude Code conectado a una cuenta real de Anthropic, establecer estas env vars sobrescribirá esa conexión; usa un .claude/settings.json a nivel de proyecto para mantener ambas.
Qué hace cada configuración
"model": "opus"— Modelo principal. Usa claude-opus-4-6 (razonamiento alto) para todas las tareas principales.ANTHROPIC_DEFAULT_HAIKU_MODEL— Modelo en segundo plano. Usa claude-haiku-4-5 (razonamiento bajo) para tareas rápidas en segundo plano como la indexación de archivos.- Cambia entre modelos a mitad de sesión con
/model sonnet,/model opus, o/model haiku.
| Alias | Modelo Claude | backend | Razonamiento |
|---|---|---|---|
| opus | claude-opus-4-6 | gpt-5.4 | Alto |
| sonnet | claude-sonnet-4-5-20250929 | gpt-5.4 | Medio |
| haiku | claude-haiku-4-5-20251001 | gpt-5.4 | Bajo |
OpenCode
Usa Smart AIPI como tu backend de OpenCode mediante el SDK compatible con OpenAI.
Configuración
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"smart-aipi": {
"npm": "@ai-sdk/openai-compatible",
"name": "Smart AIPI",
"options": {
"baseURL": "https://api.smartaipi.com/v1",
"apiKey": "YOUR_API_KEY"
},
"models": {
"gpt-6-astra": {
"name": "GPT-6 Astra",
"reasoning": true,
"limit": { "context": 400000, "output": 128000 }
},
"gpt-5.3-codex": {
"name": "GPT-5.3 Codex",
"reasoning": true,
"limit": { "context": 400000, "output": 128000 }
},
"gpt-5.2-codex": {
"name": "GPT-5.2 Codex",
"reasoning": true,
"limit": { "context": 400000, "output": 128000 }
},
"gpt-5-codex": {
"name": "GPT-5 Codex",
"reasoning": true,
"limit": { "context": 400000, "output": 128000 }
}
}
}
},
"model": "smart-aipi/gpt-6-astra"
}
Códice CLI
Usa Smart AIPI con la herramienta Codex CLI de OpenAI. Hay que configurar tres archivos.
Configuración automática
npx smart-aipi codex
Esto configura automáticamente los tres archivos de abajo. Después de ejecutarlo, agrega model_reasoning_effort a tu configuración (ver paso 2).
Configuración manual
Configura estos tres archivos:
1. Tecla API — ~/.codex/auth.json
{
"auth_mode": "apikey",
"OPENAI_API_KEY": "sk-your-key"
}
2. Modelo y razonamiento — ~/.codex/config.toml
Incluye siempre model_reasoning_effort - obligatorio para modelos personalizados.
Sin eso, Codex usará por defecto ausencia de razonamiento y no funcionará correctamente. Usa "high" para obtener los mejores resultados.
model = "gpt-6-astra"
model_reasoning_effort = "high"
Niveles de razonamiento válidos: low, medium, high (recomendado), xhigh.
3. Variables de entorno — ~/.zshrc
# Smart AIPI
export OPENAI_API_KEY="sk-your-key"
export OPENAI_BASE_URL="https://api.smartaipi.com/v1"
Después de editar el perfil de tu shell, reinicia la terminal o ejecuta source ~/.zshrc para que los cambios surtan efecto.
Luego usa Codex normalmente:
codex "fix this bug"
Guía de velocidad de Codex WebSocket
El modo WebSocket suele ser más rápido para flujos de programación agentic con muchas llamadas a herramientas. En lugar de reconectarse repetidamente por HTTP y reenviar envelopes de solicitud completos, Codex mantiene una conexión activa y envía turnos incrementales, lo que reduce la sobrecarga de continuación.
Activa WebSockets en Codex
Usa el feature flag WebSocket v2 en ~/.codex/config.toml: ~/.codex/config.toml:
model = "gpt-6-astra"
model_reasoning_effort = "high"
[features]
responses_websockets_v2 = true
Equivalente en CLI:
codex --enable responses_websockets_v2
Las versiones más antiguas pueden usar el flag heredado:
[features]
responses_websockets = true
Comportamiento conocido de Homebrew
En algunas builds distribuidas con Homebrew, los turnos de WebSocket pueden quedarse bloqueados durante tareas de larga duración y luego volver silenciosamente a HTTP. Lo vimos especialmente en bucles complejos de llamadas a herramientas. Reconstruir desde el código open-source con las correcciones de abajo mejoró tanto la estabilidad como la velocidad.
Post-Merge: corrige el bug de WebSocket open-source
Después de fusionar tu rama, usa esta lista de verificación para asegurarte de que la corrección esté en tu binario local:
# 1) Pull merged main
git checkout main
git pull --ff-only
# 2) Confirm websocket flags exist
codex features list | rg responses_websockets
# 3) Build and install
cd codex-rs
cargo build --release
install -m 0755 target/release/codex ~/.local/bin/codex-beta
# 4) Run with websocket enabled
CODEX_RS_RESPONSES_WS=true \
OPENAI_BASE_URL=https://api.smartaipi.com/v1 \
~/.local/bin/codex-beta --enable responses_websockets_v2
Si necesitas aplicar el parche manualmente, verifica que estas correcciones a nivel de código estén presentes:
# A) Build websocket request with IntoClientRequest so required headers are set
let mut request = url.as_str().into_client_request()?;
request.headers_mut().extend(headers);
# B) Ensure TLS roots are enabled for tokio-tungstenite in Cargo.toml
tokio-tungstenite = { version = "...", features = ["rustls-tls-native-roots"] }
Cursor y Cline
Usa Smart AIPI con Cursor IDE o la extensión Cline para VS Code.
Cursor
- Abre la configuración de Cursor
- Ve a la pestaña
Modelspestaña - Haz clic en
+ Add Model - Establece Base URL:
https://api.smartaipi.com/v1 - Introduce tu API key
- Modelo:
gpt-6-astra
Cline (VS Code)
- Abre la configuración de Cline en VS Code
- Selecciona
OpenAI Compatible - Base URL:
https://api.smartaipi.com/v1 - Introduce tu API key
- Modelo:
gpt-6-astra
Charlar
Usa Smart AIPI Chat en chat.smartaipi.com. para flujos de trabajo de texto, imagen, video, código, búsqueda y voz.
Funciones
- ✓ Charlar — Conversaciones de texto de uso general con modelos de Smart AIPI.
- ✓ Imágenes — Genera y edita imágenes a partir de prompts.
- ✓ Video — Genera videos a partir de texto o entradas de imagen.
- ✓ Código — Asistencia y edición de código en el navegador.
- ✓ Búsqueda — Usa búsqueda web para obtener respuestas fundamentadas.
- ✓ Voz — Habla con el modelo mediante entrada y respuestas de voz.
Primeros pasos
- 1. Abre chat.smartaipi.com
- 2. Inicia sesión o crea una cuenta.
- 3. Empieza a chatear con texto, imágenes, video, código, búsqueda o voz.
Facturación: El uso se factura contra tus créditos de Smart AIPI.
Probador de API
Prueba la API directamente desde tu navegador: