Un asistente personal inteligente inspirado en Jarvis, construido bajo una filosofía Local First para funcionar incluso cuando internet no existe.
- Descripción del Proyecto
- Filosofía Local First
- Arquitectura
- Características
- Tecnologías Utilizadas
- Requisitos del Sistema
- Instalación
- Configuración
- Uso
- Estructura del Proyecto
- Roadmap
- Contribución
- Licencia
- Créditos
Jenkkins es un asistente personal inteligente inspirado en Jarvis, el sistema de inteligencia artificial de Iron Man, pero diseñado bajo una filosofía completamente diferente: Local First.
El proyecto toma su nombre del legendario gnomo ingeniero de World of Warcraft, representando la capacidad de construir soluciones ingeniosas utilizando los recursos disponibles.
Su objetivo es convertirse en un asistente capaz de interactuar mediante:
- Texto
- Voz
- Gestos
- Eventos del entorno
- Automatizaciones
- Dispositivos conectados
A diferencia de muchos asistentes modernos que dependen permanentemente de servicios en la nube, Jenkkins intenta resolver cada solicitud utilizando recursos locales antes de recurrir a internet.
Esto proporciona:
- Mayor privacidad
- Menor latencia
- Funcionamiento offline
- Independencia de proveedores externos
- Mayor resiliencia
La visión a largo plazo es construir un ecosistema de automatización personal capaz de operar tanto dentro de una red local como desde cualquier lugar del mundo.
El principio fundamental de Jenkkins es simple:
Si internet desaparece, el asistente debe seguir funcionando.
Por esta razón la arquitectura se diseñó para priorizar siempre los recursos locales antes de utilizar servicios externos.
Orden de prioridad:
- Procesamiento local
- Red local
- VPS privado
- Servicios en la nube
Este enfoque permite mantener funcionalidades críticas incluso en entornos con conectividad limitada o inexistente.
Jenkkins utiliza una arquitectura basada en Function Calling.
La inteligencia artificial no ejecuta acciones directamente.
Su responsabilidad consiste en:
- Comprender la intención del usuario.
- Determinar qué herramienta utilizar.
- Generar una llamada estructurada.
- Delegar la ejecución a Python.
- Procesar el resultado y responder naturalmente.
Usuario
│
▼
FastAPI
│
▼
Motor IA
(Ollama / Gemini)
│
▼
Function Calling
│
▼
Herramientas Python
│
├── Hora
├── Volumen
├── Brillo
├── Aplicaciones
├── Clima
├── Domótica
└── Wake-on-LAN
Jenkkins separa claramente la inteligencia de la ejecución.
Responsable de:
- Comprensión del lenguaje natural
- Razonamiento
- Selección de herramientas
Responsables de:
- Ejecutar acciones reales
- Interactuar con el sistema operativo
- Gestionar hardware
- Automatizar procesos
- Arquitectura Local First
- Function Calling
- Integración con Ollama
- Integración con Gemini Flash
- Backend FastAPI
- Dockerización completa
- Control del sistema operativo
- Gestión de aplicaciones
- Automatizaciones
- Sistema de memoria local
- Caché inteligente
- Voz completamente offline
- Wake Word personalizado
- Detección de gestos
- Domótica
- Aplicación Android
- Raspberry Pi como nodo Edge
- Sincronización mediante VPS
- Python 3.11+
- FastAPI
- Uvicorn
- Pydantic
- Ollama
- Llama 3.1 8B Instruct
- Google Gemini Flash
- Docker
- Docker Compose
- Git
- SQLite
- Vosk
- Piper TTS
- OpenCV
- MediaPipe
- Linux (recomendado Pop!_OS)
- Python 3.11+
- Docker
- Git
- CPU Intel i7 o superior
- 16 GB RAM
- GPU Intel Iris Xe o superior
git clone https://github.com/usuario/jenkkins.git
cd jenkkinspython3 -m venv venv
source venv/bin/activatepip install -r requirements.txtdocker compose up -ddocker exec -it ollama ollama pull llama3.1:8bCrear archivo:
.envEjemplo:
GOOGLE_API_KEY=tu_api_key
OLLAMA_HOST=http://localhost:11434Nunca subir este archivo al repositorio.
Iniciar servidor:
uvicorn app.main:app --reloadAcceder a:
http://localhost:8000
Documentación automática:
http://localhost:8000/docs
jenkkins/
│
├── app/
│ ├── api/
│ ├── core/
│ ├── models/
│ ├── services/
│ └── tools/
│
├── docker/
│
├── docs/
│
├── tests/
│
├── .env.example
├── requirements.txt
├── docker-compose.yml
└── README.md
- FastAPI
- Docker
- Ollama
- Gemini Flash
- Sistema de herramientas
- Hora
- Brillo
- Volumen
- Apertura de aplicaciones
- Clima
- Vosk
- Piper
- Wake Word
- MediaPipe
- Reconocimiento de gestos
- Eventos visuales
- Raspberry Pi
- Domótica
- Wake-on-LAN
- VPS
- Aplicación Android
- Acceso remoto
Las contribuciones son bienvenidas.
Antes de realizar cambios importantes:
- Abrir un Issue.
- Discutir la propuesta.
- Crear una rama específica.
- Enviar Pull Request.
Todas las contribuciones serán reconocidas.
La participación en el proyecto no transfiere derechos de propiedad intelectual sobre Jenkkins.
Jenkkins es actualmente un proyecto de código abierto para fines educativos, de investigación y colaboración.
Se permite:
- Uso personal
- Estudio
- Modificación
- Contribución
No se permite:
- Uso comercial
- Reventa
- Redistribución comercial
sin autorización expresa de los autores.
Los autores se reservan todos los derechos de explotación comercial presentes y futuros del proyecto.
Proyecto creado y mantenido por sus autores y colaboradores.
Inspiraciones principales:
- Jarvis (Iron Man)
- Automatización Local First
- Software Libre
- Comunidad Open Source
- World of Warcraft
"La mejor tecnología es la que sigue funcionando cuando todo lo demás falla."
— Filosofía de Jenkkins