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 cero — Tokens, 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 de inferencia se configuran directamente desde el menú de Orquestación dentro del chat. Cada grupo de opciones cuenta con un Smart Toggle (por defecto en Global):

  • Modo Global (por defecto): Modificar el valor actualiza la sesión activa y establece el valor predeterminado para todos los chats futuros. Es estrictamente no retroactivo, por lo que los chats previos ya iniciados mantienen sus configuraciones intactas.
  • Modo Solo este chat: Modifica el parámetro únicamente para la conversación activa, sin alterar el valor predeterminado global.
Ajuste Clave / Persistencia Por defecto
Instrucción de sistema synthhires:systemInstruction (y snapshot por chat) You are a helpful AI assistant. Today is {local_date}, local time is {local_time}.
Streaming synthhires:streamResponse (y snapshot por chat) true
Límite de contexto synthhires:contextLimit (y snapshot por chat) all
Temperatura synthhires:globalParams (y snapshot por chat) 0.7
Top-P synthhires:globalParams (y snapshot por chat) 1.0
Penaltis de presencia y frecuencia synthhires:globalParams (y snapshot por chat) 0.0
Longitud de salida synthhires:globalParams (y snapshot por chat) vacío (por defecto del modelo)
Modelos habilitados synthhires:enabledModels GPT-6 Astra, Claude Opus 5.5, Gemini 3.8 Flash, Grok 4.7, DeepSeek V4 Pro

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.