AI Chat
@modularcore/ai-chat es el core headless de chat con IA: streaming compatible con OpenAI,
fallback entre modelos, seguimiento de uso de tokens, function calling con confirmación
human-in-the-loop, e historial local o contra tu propio backend — con adaptadores finos para
React, Svelte, Vue 3, Angular y Web Components sin framework.
BYOK (Bring Your Own Key)
Sección titulada «BYOK (Bring Your Own Key)»El core nunca lee ni hardcodea una API key desde el entorno. Tu aplicación pasa apiKey (y
opcionalmente baseURL) en ChatConfig. Esto permite apuntar a OpenRouter (el proveedor por
defecto), a OpenAI directamente, o a cualquier otro endpoint /chat/completions compatible con
OpenAI — incluido tu propio proxy en servidor, de modo que la clave nunca llega al navegador.
Qué incluye el paquete
Sección titulada «Qué incluye el paquete»core/client.ts— cliente ligero basado enfetch, compatible con OpenAI (requestChatCompletionStream).core/stream.ts— parser real de SSE sobre elReadableStream<Uint8Array>que devuelvefetch.core/chat.ts—Chat, el orquestador headless (streaming, bucle de tool-calls, historial).core/fallback.ts— prueba una lista ordenada de modelos, haciendo fallback si uno falla.core/tokens.ts— parsea los payloadsusagede cada proveedor.core/tools.ts— registro de function calling + despacho human-in-the-loop.core/history/*— historial de conversación conectable (almacenamiento local o tu propio backend).ui/markdown.ts— renderizador Markdown → HTML sin dependencias que escapa todo el texto no confiable antes de añadir cualquier marcado, por lo que su salida es segura para asignar ainnerHTML/{@html}.adapters/react,adapters/svelte,adapters/web— bindings finos sobreChatpara cada framework (el adaptador de Svelte usa runas de Svelte 5).adapters/vue,adapters/angular— bindings por componente (Composition API / signals) con limpieza de ciclo de vida; no comparten estado de conversación de forma global.
Laravel / Blade
Sección titulada «Laravel / Blade»snippets/laravel/ incluye un punto de montaje Blade y una referencia de proxy OpenAI-compatible
en servidor. Mantén la clave del proveedor en la configuración de Laravel, autentica y limita la
ruta, y conserva el allowlist de modelos; nunca inyectes una clave de proveedor en una plantilla
Blade.
Uso básico (Svelte 5)
Sección titulada «Uso básico (Svelte 5)»import { createChat } from '@modularcore/ai-chat/svelte';
const chat = createChat({ apiKey: import.meta.env.VITE_OPENROUTER_API_KEY, // o proxy a través de tu propio backend models: ['openai/gpt-4o-mini'],});
await chat.send('Hola!');Para una demo pública, nunca envíes una clave real al cliente: haz proxy de las peticiones a través de un endpoint en servidor que inyecte la clave (el propio Playground de AI Chat de este sitio hace exactamente esto).
Más documentación
Sección titulada «Más documentación»docs/backend-history-contract.md(dentro depackages/ai-chat/) — el contrato que debe implementar tu backend si usascore/history/backend.tsen lugar del almacenamiento local.
Docs v1.0.0 · ModularCore Hub v0.9.1