Ir al contenido

La búsqueda solo está disponible en las versiones de producción. Intenta construir y previsualizar el sitio para probarlo localmente.

Modelos y API keys

La página de Modelos (/space/models) es el centro de control del catálogo de modelos y tus claves BYOK. Tres pestañas: Catálogo de Modelos, API Keys y Proveedores, y Ajustes Globales.

¿Nuevo en el lado de IA? Lee primero Conceptos de IA desde ceroTokens, La ventana de contexto, Parámetros de sampling y Razonamiento, que controlan las perillas de esta página.

Esta página es donde se dirigen las mecánicas de IA subyacentes:

  • La ventana de contexto (visible en el panel de detalle) es cuántos tokens puede leer un modelo en una sola petición. El precio es por token (input/output/caché). Una ventana mayor te deja meter más historial + memoria + documentos recuperados, pero cuesta más — por eso el catálogo muestra ambas cosas, y el ajuste contextLimit controla cuánto se envía realmente.
  • Las perillas de sampling (temperatura, top-p, top-k, penalizaciones en Ajustes globales) deciden el azar/creatividad de la salida — la diferencia entre una respuesta seca y una creativa.
  • La capacidad de reasoning (derivada por modelo, deriveReasoningCapability) te dice si un modelo piensa antes de responder, y getThinkingControl mapea tu nivel de thinking al parámetro de esfuerzo de razonamiento del proveedor. Los modelos de reasoning gastan tokens extra pensando — más rápidos en problemas duros, más caros en latencia y coste de tokens.

El modelo mental completo está en Conceptos de IA desde cero.

El catálogo está sincronizado con models.dev (src/lib/models-registry.ts) — un índice vivo de modelos y proveedores con precios, ventanas de contexto y fechas de lanzamiento, servido vía /api/models/catalog con paginación (limit / offset), filtro de proveedor, búsqueda de texto completo (q), filtros de reasoning/visión y ordenación (featured, name, context, price, release).

  • Sidebar de proveedores — filtro por proveedor con conteos de modelos y conteos de reasoning por proveedor.
  • Lista de modelos — búsqueda entre miles de modelos, alternar disponibilidad (usable en chat = tienes clave para ese proveedor) e insignias de reasoning/visión.
  • Panel de detalle — specs completas: ventana de contexto, precio por millón de tokens (input/output/caché), fecha de lanzamiento, capacidad de reasoning (deriveReasoningCapability) y control de thinking (getThinkingControl).
  • Scroll infinito — paginación “Cargar N más” con deduplicación.

BYOK funciona con cualquier proveedor de src/lib/models.ts (PROVIDERS). La lista completa: OpenAI, Anthropic, Google Gemini, Groq, xAI (Grok), DeepSeek, Mistral, OpenRouter, Perplexity, Cerebras, Cohere, Azure, Mimo, Kimi (Moonshot), Z.AI, Qwen, más los motores locales Ollama y LM Studio y cualquier endpoint compatible con OpenAI. Cada proveedor requiere su propia API key excepto las integraciones gestionadas por la plataforma.

Principio de precios: SynthHires no revende acceso a modelos ni empaqueta tokens. La relación de facturación es entre tú y el proveedor; la plataforma es la superficie de orquestación. Ese es el contrato BYOK.

detectProviderFromKey (en settings-panel.tsx) adivina el proveedor a partir del prefijo de la clave, y keyInputsFor renderiza el input correcto para cada proveedor (API key vs configuración de recurso Azure). Se proporcionan URLs de claves externas por proveedor (plataforma OpenAI, consola Anthropic, Google AI Studio, consola Groq, etc.).

Todas las claves se guardan en el vault local cifrado:

  • Almacenamiento: synthhires-credentials (vault) + synthhires-credentials:mirror (espejo a prueba de crashes) en localStorage, más synthhires-tokens para tokens de servicios.
  • Cifrado: AES-256-GCM. La clave se deriva de un salt del dispositivo (getOrCreateVaultSalt) y opcionalmente de un secreto del servidor (VAULT_KDF_SECRET) para blobs v2 endurecidos; los blobs v1 legacy siguen siendo legibles.
  • Sobres: los blobs v2 llevan prefijo v2:; los intentos de descifrado caen entre versiones y secretos dev conocidos, y se auto-curan re-cifrando en el siguiente guardado si se usó un secreto obsoleto.
  • Cloud sync (opcional): opt-in por proveedor (synthhires:vault:cloud-sync-opt-in) empuja la clave a /api/vault (vault_entries en servidor). Solo migran los proveedores con opt-in; las claves nunca salen del dispositivo sin consentimiento explícito.

Para cada request de chat, el cliente construye un sobre de handoff de un solo uso (buildVaultHandoff): la clave en texto plano se envuelve con el JWK público E2EE del servidor (/api/handoff-pubkey), se sella con expiración, y se envía a /api/chat. El servidor la desempaqueta solo durante esa request — tu clave nunca se almacena ni se registra en el servidor en texto plano.

Los parámetros globales de inferencia se persisten en el cliente y aplican a todas las conversaciones:

Ajuste Clave Por defecto
Instrucción de sistema synthhires:systemInstruction You are a helpful AI assistant. Today is {local_date}, local time is {local_time}.
Streaming synthhires:streamResponse true
Límite de contexto synthhires:contextLimit all
Temperature synthhires:globalParams 0.7
Max tokens synthhires:globalParams vacío (por defecto del proveedor)
Top-P synthhires:globalParams 1
Top-K synthhires:globalParams 0
Penalti de presencia / frecuencia synthhires:globalParams 0
Modelos habilitados synthhires:enabledModels GPT-4o, Claude Sonnet 4, Gemini 2.5 Pro, Gemini 2.0 Flash, DeepSeek V4 Pro

“Restablecer todo” restaura los valores por defecto con doble confirmación. Los overrides por conversación (modelo, proveedor, nivel de thinking) siguen teniendo precedencia sobre los globales.

src/lib/thinking.ts deriva la capacidad de reasoning de un modelo (nunca / opcional / siempre) y calcula el parámetro de control de thinking correcto por proveedor — así un nivel de thinking high se mapea a la perilla de esfuerzo de razonamiento correcta estés en OpenAI, Anthropic, Gemini o DeepSeek.

Conceptualmente esto es abstracción de esfuerzo de razonamiento: cada proveedor llama a esta perilla de forma distinta (el reasoning_effort de OpenAI, el thinking de Gemini, el deep-think de DeepSeek), así que la plataforma normaliza tu elección off/low/medium/high al valor que espera cada proveedor — sin que te importe qué modelo o empresa hay al otro lado.