Sistema de IA Local¶
Visión global del subsistema de inteligencia artificial de SmallCountry: modelos de lenguaje, reconocimiento de voz, síntesis de habla y agentes autónomos que corren íntegramente en hardware propio, sin enviar un solo dato a la nube.
Descripción general¶
La IA en SmallCountry responde al Principio 10 — Asistencia inteligente supervisada y al ADR-017: toda la inteligencia artificial corre en local, en el servidor Horus, sin depender de APIs externas. Tus datos, tus conversaciones y tus documentos nunca salen de tu red.
El sistema es degradable por diseño (Mecanismo 8 — IA Degradable). Si la GPU se satura, si Horus se apaga o si los modelos pesan demasiado, el sistema baja la calidad de las respuestas pero nunca deja de funcionar.
Pipeline de IA¶
flowchart LR
subgraph Entrada["🎤 Entrada"]
Voz["Voz<br/>micrófono · grabación"]
Texto["Texto<br/>chat · documentos"]
Evento["Eventos<br/>sensores · alertas"]
end
subgraph Procesamiento["⚙️ Procesamiento"]
Whisper["Whisper<br/>STT · faster-whisper<br/>transcripción voz→texto"]
Ollama["Ollama<br/>LLM · modelos locales<br/>llama3.1 · qwen2.5"]
Qdrant["Qdrant<br/>RAG · búsqueda vectorial<br/>documentos propios"]
Piper["Piper<br/>TTS · texto→voz<br/>síntesis en castellano"]
end
subgraph Agentes["🤖 Agentes"]
Hermes["Hermes Agent<br/>orquestador principal<br/>skills · herramientas"]
OpenWebUI["Open WebUI<br/>chat privado<br/>subida de documentos"]
Sherlog["Sherlog<br/>análisis de logs<br/>lenguaje natural"]
Continue["Continue.dev<br/>asistente de código<br/>code-server"]
end
subgraph Salida["📤 Salida"]
Respuesta["Respuesta<br/>texto · voz estructurada"]
Accion["Acción<br/>API call · webhook"]
Almacen["Almacenamiento<br/>Joplin · Nextcloud"]
end
Entrada --> Procesamiento --> Agentes --> Salida
style Entrada fill:#c8e6c9,stroke:#2e7d32,color:#000
style Procesamiento fill:#bbdefb,stroke:#1565c0,color:#000
style Agentes fill:#f9a8d4,stroke:#c2185b,color:#000
style Salida fill:#ffe082,stroke:#f57f17,color:#000
Flujo de una consulta con voz¶
sequenceDiagram
actor Persona as 👤 Persona
participant Micro as 🎤 Micrófono (Android / Ubuntu)
participant Whisper as 📝 Whisper (Horus)
participant Ollama as 🧠 Ollama + Qdrant (Horus)
participant Hermes as 🤖 Hermes Agent
participant Piper as 🔊 Piper (Horus)
participant Accion as ⚡ Servicio (API / webhook)
Persona->>Micro: "¿Cuánta miel produjo la colmena 3 este mes?"
Micro->>Whisper: Audio WAV (16kHz mono)
Whisper->>Hermes: Texto transcrito
Hermes->>Ollama: Prompt + contexto + tools
Ollama->>Qdrant: Búsqueda semántica en documentos
Qdrant->>Ollama: Fragmentos relevantes
Ollama->>Hermes: Respuesta estructurada + tool call
Hermes->>Accion: API call a farmOS (datos de producción)
Accion->>Hermes: Datos de miel (colmena 3, mayo 2026)
Hermes->>Ollama: Formular respuesta en lenguaje natural
Ollama->>Hermes: "La colmena 3 produjo 8.4 kg de miel este mes"
Hermes->>Piper: Texto para sintetizar
Piper->>Persona: Audio de respuesta en castellano
Componentes¶
| Componente | Función | Ficha |
|---|---|---|
| Ollama | Servidor de modelos de lenguaje (LLM). Corre modelos como llama3.1, qwen2.5, deepseek | Ficha |
| Qdrant | Base de datos vectorial para RAG (Retrieval Augmented Generation). Indexa documentos propios | Ficha |
| Whisper (modelo de transcripción de voz de OpenAI) | Reconocimiento de voz STT (conversión de voz a texto). faster-whisper optimizado para CPU/GPU. Transcribe en castellano | Ficha |
| Piper (sintetizador de voz neuronal) | Síntesis de voz TTS (conversión de texto a voz). Modelos en castellano con calidad natural | Ficha |
| Hermes Agent | Agente orquestador. Conecta STT, LLM, TTS y herramientas externas. Skills modulares | Ficha |
| Open WebUI | Interfaz de chat privada. Similar a ChatGPT pero corriendo en local | Ficha |
| Continue.dev | Asistente de código dentro de code-server. Autocompletado, explicación, refactorización | Ficha |
| Sherlog | Analizador de logs con lenguaje natural. "¿Por qué falló el backup de anoche?" | Ficha |
Modelos disponibles¶
| Modelo | Tamaño | RAM requerida | Caso de uso |
|---|---|---|---|
llama3.1:8b |
4.7 GB | 8 GB | Asistente general, chat diario |
qwen2.5:7b |
4.4 GB | 8 GB | Análisis de documentos, RAG |
deepseek-coder:6.7b |
3.8 GB | 6 GB | Asistencia de código (Continue.dev) |
nomic-embed-text |
274 MB | 1 GB | Embeddings para Qdrant (RAG) |
whisper-large-v3 |
3.1 GB | 6 GB | Transcripción de voz en castellano |
piper-es |
50 MB | 512 MB | Síntesis de voz en castellano |
Hardware¶
| Componente | Especificación | Propósito |
|---|---|---|
| GPU | NVIDIA RTX 4060 8 GB | Inferencia de LLM y Whisper en GPU |
| RAM | 64 GB DDR5 | Carga de múltiples modelos simultáneos |
| CPU | Intel i7-13700H | Inferencia de CPU para modelos pequeños y Piper |
| SSD | 1 TB NVMe | Almacenamiento de modelos (~40 GB) y caché de Qdrant |
| VRAM | 8 GB GDDR6 | Cabe un modelo 7B-8B cuantizado + embeddings |
Con esta configuración, Horus puede ejecutar simultáneamente un LLM de 8B parámetros, Whisper para transcripción continua y Piper para síntesis de voz, con latencias de inferencia por debajo de 2 segundos para respuestas de chat y 5 segundos para transcripción de audio de 30 segundos.
Modo degradado¶
Si Horus no está disponible (apagón, mantenimiento, fallo de GPU), la IA se degrada siguiendo el Mecanismo 8 — IA Degradable:
| Escenario | Degradación | Qué sigue funcionando |
|---|---|---|
| Sin GPU (driver caído) | Inferencia por CPU en Horus (5-10x más lenta) | Todo, pero más lento |
| Horus apagado | Sin IA local | Los servicios de usuario (Nextcloud, Immich) no dependen de IA |
| Sin Qdrant | RAG desactivado | Chat genérico sin contexto de documentos propios |
| Sin Whisper | Sin entrada por voz | Chat por texto en Open WebUI sigue funcionando |
| Sin Piper | Sin respuesta por voz | Respuestas solo en texto |
Ningún servicio Tier B o superior depende de la IA para funcionar. La IA es un aumentador, no un requisito.
Para el arquitecto
Configuración de Ollama¶
Modelos cargados por defecto¶
ollama list
# llama3.1:8b (siempre en VRAM)
# qwen2.5:7b (bajo demanda, 30min TTL)
# nomic-embed-text (siempre en VRAM para Qdrant)
Flujo Whisper → Piper¶
Fichas relacionadas¶
- Ollama + Qdrant — LLM local con RAG
- Hermes Agent — Agente orquestador
- Open WebUI — Chat privado
- Whisper + Piper — Voz a texto y texto a voz
- Continue.dev — Asistente de código
- Sherlog — Análisis de logs