> cat ./posts/fintrack-arquitectura-local-first-y-auditoria-autonoma

FinTrack: Arquitectura Local-First y Auditoría Autónoma

La adopción masiva de servicios SaaS ha convertido el software de gestión en una red de extracción de datos. Frente a esto, el desarrollo Local-First emerge como una solución robusta donde el usuario retiene la soberanía de su información, procesando los datos de forma privada y sin dependencias externas.

FinTrack materializa este concepto: un sistema de gestión automatizado que integra modelos de lenguaje compactos sobre hardware restringido.

Arquitectura de Software y Persistencia

El sistema emplea un patrón de diseño desacoplado enfocado en el rendimiento y la latencia cero para infraestructuras domésticas (como una Raspberry Pi o hardware reciclado).

  • Frontend y Backend Unificados: Utiliza Astro configurado en modo Server-Side Rendering (SSR) mediante Node. Esta capa despacha HTML renderizado en tiempo real, operando como un servidor ultraligero que evita la sobrecarga de una Single Page Application (SPA).
  • Persistencia Síncrona: Se descartan los motores relacionales en red a favor de SQLite. A través del driver nativo better-sqlite3, las transacciones se ejecutan directamente sobre el archivo fintrack.db en microsegundos, eliminando el overhead de latencia TCP/IP.

El Agente de IA: Maximizando Hardware Limitado

La auditoría financiera está a cargo de Moneypenny, un agente inteligente local impulsado por Ollama. El reto principal es la gestión de VRAM en GPUs de generaciones previas (ej. GTX 1650 de 4GB).

  • Mitigación del Offloading: Ejecutar modelos intermedios (9B) satura el bus PCIe, hundiendo el rendimiento a ~5 tokens/seg. La arquitectura lo resuelve implementando Gemma 2 2B. Gracias a la destilación de conocimiento, este modelo retiene alta capacidad analítica consumiendo solo ~1.6 GB de VRAM, logrando tasas de 30 a 50 tokens/seg.
  • Prompt Loop Estricto: Los modelos ligeros fallan frecuentemente en las llamadas a funciones nativas (Function Calling / Error 400). FinTrack aplica un bucle de intercepción donde el modelo es instruido para retornar exclusivamente JSON crudo. El backend valida la salida, ejecuta la acción en el SO y reinyecta el resultado como contexto dinámico.

Estrategia de Despliegue y Resiliencia

Para garantizar una operación ininterrumpida y segura en un entorno doméstico, se definen tres pilares:

ComponenteFunción Operativasystemd

Encapsula FinTrack como un servicio nativo en Linux, asegurando políticas de auto-reinicio ante fallos de segmentación.

Exposición Local

El servidor escucha en 0.0.0.0, mapeando el dashboard a cualquier dispositivo en la LAN/WiFi sin exponer puertos a internet.

Resiliencia Híbrida

Mediante una Cuenta de Servicio de Google, se programan exportaciones encriptadas de SQLite hacia Drive, garantizando la recuperación ante fallas físicas del hardware.

Repositorio GitHub