Ir al contenido principal

Entradas

Mostrando entradas de octubre, 2025

Sistema de Templates en JavaScript: Separa Lógica de Presentación

Sistema de Templates en JavaScript: Separa Lógica de Presentación como un Profesional ¿Tu código JavaScript mezcla lógica de negocio con HTML? ¿Cambiar el diseño significa modificar múltiples funciones? Descubre el poder de los templates para crear código mantenible y flexible. ❌ El Problema: HTML Incrustado en Lógica Antes tenía HTML mezclado con mi lógica JavaScript, creando un caos de mantenimiento: // ❌ HTML incrustado en la lógica - difícil de mantener async lista(page = 1, filtro = '') { const response = await fetch(`${this.server}/api/productos?page=${page}`); const data = await response.json(); // HTML directamente en el método tbody.innerHTML = data.items.map(item => ` <tr data-line_id="${item.producto}"> <td>${item.producto}</td> <td>${item.descripcion}</td> <td>${item.unidadMedida}</td> ...

Arquitectura Escalable con Clases en JavaScript

Arquitectura Escalable con Clases en JavaScript: De Código Spaghetti a Estructura Profesional ¿Tu proyecto JavaScript está creciendo y el código se vuelve inmanejable? Te presento el patrón ModeloBase que transformó mi código de spaghetti desorganizado a arquitectura limpia y escalable. ❌ El Caos del Código Duplicado Antes tenía clases repetitivas para cada entidad de mi aplicación: // ❌ Código duplicado para Producto class Producto { constructor() { this.recurso = 'productos'; this.server = this.getServer(); } async lista(page = 1, filtro = '') { // 50 líneas de código repetitivo... } getServer() { return location.origin; } } // ❌ Mismo código duplicado para Cliente class Cliente { constructor() { this.recurso = 'clientes'; this.server = this.getServer(); } async lista(page = 1, filtro = '') { // 50...

Domina la Delegación de Eventos en JavaScript

Domina la Delegación de Eventos en JavaScript: Solución Definitiva para Eventos Duplicados ¿Alguna vez has tenido eventos que se disparan múltiples veces? ¿Tu paginación funciona en la primera página pero no en las siguientes? Te muestro la solución profesional que implementé en mi último proyecto. ❌ El Problema: Eventos que se Duplican Esto me pasaba con mi sistema de paginación. Cada vez que cambiaba de página, los eventos se acumulaban: // ❌ ESTO ESTABA MAL - se ejecutaba CADA VEZ que generaba paginación async lista(page = 1, filtro = '') { // ... código para obtener datos ... const html = UI.genePaginacion({/*...*/}); paginacion.innerHTML = html; // ¡Este event listener se agregaba CADA VEZ! paginacion.addEventListener('click', (e) => { if (e.target.tagName === 'A') { const page = parseInt(e.target.getAttribute('data-page')); ...

Cómo funciona un modelo de lenguaje (LLM): una guía didáctica

Cómo funciona un modelo de lenguaje (LLM): una guía didáctica Guía técnica y didáctica sobre los fundamentos de los modelos de lenguaje: tokenización, arquitecturas y pesos entrenados. Introducción Los modelos de lenguaje como GPT, LLaMA o Gemma se basan en principios matemáticos y estructurales relativamente sencillos. En esta guía se explica de forma clara cómo se construye un modelo de lenguaje desde sus fundamentos: tokenización, red neuronal y pesos entrenados. 1. Qué es un modelo de lenguaje Un modelo de lenguaje (LLM, Large Language Model) es un sistema que predice la siguiente palabra o token en una secuencia de texto. Durante su entrenamiento, el modelo aprende las relaciones estadísticas entre millones de fragmentos de texto. Cuando se utiliza, no "recuerda frases" ni "entiende conceptos" como un humano; calcula qué token es más probable según el contexto. 2. Los tres componentes principales de un LLM ...

Análisis Experimental: Granite 4.0 H Micro vs Llama 3.2 3B

Análisis Técnico Comparativo Completo: Granite 4.0 H Micro vs Llama 3.2 3B Este análisis técnico compara dos modelos de lenguaje de ~3B parámetros cuantizados a 4 bits: Granite 4.0 H Micro (Q4_K_M) de IBM y Llama 3.2 3B (Q4_0) de Meta. Aunque similares en tamaño, revelan diferencias arquitectónicas y filosóficas significativas que impactan su rendimiento en casos de uso específicos. 1. Arquitectura y Capacidad de Parámetros Granite 4.0 H Micro (Q4_K_M) "H Micro": Arquitectura híbrida de tamaño micro (probablemente 1-3B parámetros) Origen: Familia Granite de IBM, orientación enterprise Cuantización: Q4_K_M (K-quants mixta de 4 bits en formato GGUF) Filosofía: Precisión y consistencia sobre velocidad Llama 3.2 3B (Q4_0) Parámetros: Explícitamente 3 mil millones de parámetros Origen: Serie compacta Llama 3.2 de Meta Cuantización: Q4_0 (cuantización uniforme de 4...

Instalar Sim.ai en Docker

Tutorial: Instalar Sim.ai (Sim Studio) usando Docker Este tutorial explica paso a paso cómo desplegar Sim Studio de forma local con Docker y Docker Compose , sin necesidad de usar APIs externas. El HTML está sin estilos, listo para publicarlo en Blogger u otra plataforma. Requisitos Docker y Docker Compose instalados y funcionando. Git instalado. (Opcional) Ollama para usar modelos locales. 1. Crear carpeta de instalación mkdir -p /home/docker/simstudio cd /home/docker/simstudio 2. Clonar el repositorio oficial Como la imagen simstudioai/sim no está en Docker Hub, se debe clonar el repositorio oficial desde GitHub: sudo git clone --depth 1 https://github.com/simstudioai/sim.git cd sim 3. Cambiar el puerto si el 3000 está ocupado Editá el archivo docker-compose.prod.yml y reemplazá la línea: ports: - "3000:3000" por, por ejemplo: ports: - "3100:3000" Así accederás a http://localhost:3100 en lugar del 3000. 4. Cambiar el...

Instalar y ejecutar el modelo IBM Granite 4.0 H-Micro (Q4_K_M) con Docker

Instalar y ejecutar el modelo IBM Granite 4.0 H-Micro (Q4_K_M) con Docker en Ubuntu 1. Actualizar el sistema Primero asegurarse de tener el sistema actualizado. sudo apt update && sudo apt upgrade -y 2. Instalar Docker Si aún no está instalado, ejecutar los siguientes comandos: sudo apt install -y ca-certificates curl gnupg sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \ https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io Verificar la instalación: docker --version 3. Descargar el modelo Granite El modelo se encuentra en Docker Hub bajo el nombre: ai/granite-4.0-h-micro:3B-Q4_K_M Ejecutar el siguient...

Videovigilancia: captura, detección y análisis con IA.

Arquitectura y componentes técnicos para un sistema de videovigilancia inteligente con IA Resumen Este documento describe una arquitectura práctica en tres etapas para un sistema de videovigilancia inteligente: captura de video, detección y extracción de datos, y análisis con inteligencia artificial. El objetivo es proporcionar una guía técnica orientada a desarrolladores que implementen soluciones de vigilancia que no requieran supervisión humana continua. 1. Captura de video La etapa de captura consiste en obtener frames desde cámaras IP, dispositivos USB o ficheros pregrabados. La salida de esta capa es un flujo de imágenes listo para ser procesado por modelos de visión. Bibliotecas recomendadas Librería Descripción Uso principal OpenCV Biblioteca estándar para visión por computadora. Captura desde cámaras locales o ...

Entrenamiento de Modelos de Lenguaje: Entendiendo Fine-Tuning y LoRA

Entrenamiento de Modelos de Lenguaje: Entendiendo Fine-Tuning y LoRA Introducción Entrenar una inteligencia artificial no siempre significa empezar desde cero. Hoy, la mayoría de los proyectos parte de modelos base preentrenados —como LLaMA, Mistral o Gemma— y los adapta a tareas o dominios específicos. Esta fase de adaptación es donde entran en juego dos conceptos fundamentales: fine-tuning y LoRA . ¿Qué es el Fine-Tuning? El fine-tuning es un proceso de entrenamiento adicional aplicado a un modelo ya preentrenado. Su objetivo es ajustar los pesos internos para que el modelo aprenda un nuevo comportamiento o conocimiento. Por ejemplo, un modelo general puede transformarse en uno especializado en medicina, derecho o atención al cliente. Para lograrlo, se necesita un conjunto de datos bien estructurado (instrucciones y respuestas) y una cantidad considerable de recursos computacionales. El resultado final es...

Tutorial: Servidor IA con Sanic

Tutorial: Servidor IA con Sanic (normalizador) Guía completa para crear, ejecutar y desplegar un microservicio IA construido con Sanic y Google Generative AI. Código listo para copiar/pegar. 1. Crear entorno y proyecto mkdir normalizador cd normalizador python3 -m venv venv source venv/bin/activate # En Windows: venv\Scripts\activate 2. Instalar dependencias pip install sanic google-generativeai python-dateutil # Opcional (para Swagger / sanic-ext): pip install "sanic[ext]" 3. Estructura de carpetas Crear la siguiente estructura: normalizador/ ├── venv/ ├── app/ │ ├── __init__.py │ ├── app.py │ ├── config.py │ ├── services.py │ ├── normalizador_funcion.py │ ├── google_keys.json └── requirements.txt (opcional) 4. Código principal: app/app.py from sanic import Sanic, response from sanic.request import Request from sanic.response import json, text from app.services import analyze_question_with_ai, generate_rag_response, get_gemm...

Sistema de Videovigilancia Inteligente

Sistema de Videovigilancia con IA Documento Técnico de Requisitos Sistema de Videovigilancia Inteligente con IA Detección inteligente de comportamientos anómalos en tiempo real 1. Objetivo General Desarrollar un sistema de videovigilancia capaz de detectar movimiento, comportamientos anómalos y posibles intenciones de robo en tiempo real, utilizando cámaras y modelos de inteligencia artificial (IA) integrados en una arquitectura escalable y ética. 2. Alcance del Sistema 👤 Detección Humana Identificación de movimiento humano en escena. 🎯 Análisis de Comportamiento Identificación de patrones sospechosos. ⚠️ Alertas Tempranas Ge...