Saltearse al contenido

AI — Model Gateway

Nuvem AI provee un gateway unificado para LLMs (OpenAI, Anthropic, Mistral, Gemini), una base de datos vectorial y memoria persistente para agentes.

Model Gateway

Chat completions

Ventana de terminal
POST /v1/ai/chat
Authorization: Bearer <api_key>
{
"provider": "anthropic",
"model": "claude-sonnet-4-5",
"messages": [
{ "role": "user", "content": "Hola, ¿cómo estás?" }
],
"stream": false
}

Streaming

Ventana de terminal
POST /v1/ai/chat
{
"provider": "openai",
"model": "gpt-4o",
"messages": [{ "role": "user", "content": "Escribí un haiku" }],
"stream": true
}

La respuesta es un stream de eventos SSE (Server-Sent Events).

Proveedores soportados

ProviderModelos
openaigpt-4o, gpt-4o-mini, gpt-4-turbo
anthropicclaude-opus-4, claude-sonnet-4-5, claude-haiku-4
mistralmistral-large, mistral-small
geminigemini-1.5-pro, gemini-1.5-flash

BYOK (Bring Your Own Key)

Podés usar tus propias API keys de cada proveedor:

Ventana de terminal
POST /v1/ai/providers
Authorization: Bearer <api_key>
{
"provider": "openai",
"apiKey": "sk-...",
"enabled": true
}

Vector Database

Ventana de terminal
# Insertar vectores
POST /v1/db/vectors/upsert
{
"namespace": "productos",
"vectors": [
{
"id": "prod_001",
"values": [0.1, 0.2, ...],
"metadata": { "name": "Yerba Mate", "price": 1500 }
}
]
}
# Búsqueda semántica
POST /v1/db/vectors/query
{
"namespace": "productos",
"vector": [0.1, 0.2, ...],
"topK": 5,
"filter": { "price": { "$lt": 2000 } }
}

Agent Memory

Ventana de terminal
# Guardar memoria
POST /v1/ai/memory
{
"agentId": "agent_abc",
"sessionId": "sess_xyz",
"content": "El usuario prefiere respuestas en español"
}
# Buscar memorias semánticas
POST /v1/ai/memory/search
{
"agentId": "agent_abc",
"query": "preferencias del usuario",
"topK": 3
}

SDK

import { createClient } from '@nuvem/js';
const nuvem = createClient({ apiKey: process.env.NUVEM_API_KEY! });
// Chat
const response = await nuvem.ai.chat({
provider: 'anthropic',
model: 'claude-sonnet-4-5',
messages: [{ role: 'user', content: '¿Cuál es la capital de Argentina?' }],
});
console.log(response.content);
// Vector search
const results = await nuvem.ai.vectors.query({
namespace: 'productos',
vector: embedding,
topK: 5,
});

Errores comunes

CódigoMensajeCausa
provider_not_configuredProveedor no configuradoFalta API key del proveedor
model_not_foundModelo inválidoNombre de modelo incorrecto
rate_limit_exceededLímite de requests del proveedorEsperá un momento y reintentá
context_too_longContexto excede el límite del modeloReducí el historial de mensajes