Desarrollo de un Chat GPT local 100% privado
Introducción al proyecto
En este episodio se desarrolla un proyecto de JavaScript puro (sin frameworks ni dependencias pesadas), consistente en crear un Chat GPT local. La premisa principal es que toda la inteligencia artificial se ejecute directamente en el navegador del usuario, logrando una solución que es 100% privada, gratuita y sin necesidad de backend.
Tecnologías clave implementadas
• WebGPU: Utilizada para la aceleración por hardware, aprovechando la potencia de la GPU del usuario para ejecutar los modelos de forma eficiente.
• WebWorkers: Permiten ejecutar la carga y el procesamiento de la IA en un hilo secundario, evitando que la página se congele y mejorando drásticamente el rendimiento.
• WebLLM: La dependencia principal que permite ejecutar LLMs (Large Language Models) en el navegador con soporte para streaming de respuestas.
• ES Modules: Uso del estándar moderno de módulos de JavaScript nativo para la carga de scripts.
Conceptos técnicos abordados
"JavaScript ya sabes que es monohilo, que solo funciona todo en un thread principal, pero los WebWorkers lo que te permite es delegar trabajo a otro hilo."
• Optimización: Uso de Dynamic Viewport High (DVH) para interfaces responsivas en móviles.
• DOM Dinámico: Implementación de etiquetas <template> para renderizar mensajes de manera eficiente sin manipulación excesiva del DOM.
• Rendimiento: Gestión de performance mediante profiling y extracción de procesos pesados a threads secundarios.
• UX: Implementación de auto-scroll con scroll-behavior: smooth y gestión de estados de carga (disabled en botones).