- Seleccion de modelo: JARVIS cambia su cerebro en caliente (elegir_modelo). - Ventanas en Wayland: backend para Sway e Hyprland (ventanas-wayland.sh). - ROADMAP.md y CONTRIBUTING.md: tareas acotadas y como empezar, para animar commits (mas gestores, mas acciones, probar otros modelos, el RAG). - docs/rag.md: tabla explicita de que se publica y que no del RAG; nota de que un clon recien hecho ya tiene RAG util (man pages + glosario) sin datos privados. - README enlaza el roadmap y menciona la eleccion de modelo.
87 lines
3.1 KiB
Markdown
87 lines
3.1 KiB
Markdown
# Contribuir
|
|
|
|
JARVIS es software libre (GPL-3.0) y se agradecen los commits. Esta guía dice
|
|
cómo está montado, cómo probarlo y cómo añadir lo más común. Las ideas acotadas
|
|
están en [ROADMAP.md](ROADMAP.md).
|
|
|
|
## Cómo está montado
|
|
|
|
```
|
|
nucleo/jarvis.py el bucle: oír → pensar → hacer → hablar
|
|
nucleo/oido/ whisper.cpp (STT) y la captura del micrófono
|
|
nucleo/cerebro/ Ollama, tool-calling, el RAG y la elección de modelo
|
|
nucleo/boca/ Piper / voz clonada (TTS)
|
|
nucleo/manos/ las acciones, el diario, el sudo, la fonética
|
|
nucleo/cara/ el panel web (servidor WebSocket + HUD en cara/hud/)
|
|
nucleo/saber/ el RAG: indexa, busca, y enriquece/ para mejorarlo
|
|
config/ scripts: modelo, voz, whisper, ventanas
|
|
```
|
|
|
|
Nada de esto necesita compilar: es Python, bash y una página web. Se edita y se
|
|
prueba en el sitio.
|
|
|
|
## Probarlo
|
|
|
|
```bash
|
|
./install.sh # entorno, modelo de Ollama, lanzador de escritorio
|
|
./nucleo/arranca.sh # el asistente y el panel en 127.0.0.1
|
|
```
|
|
|
|
El panel se puede abrir **sin arrancar nada**, para trabajar el diseño:
|
|
`nucleo/cara/hud/index.html` en un navegador se llena solo con datos de ejemplo.
|
|
|
|
Hay dos suites de comprobaciones (`nucleo/pruebas/`) y un eval del RAG
|
|
(`nucleo/saber/enriquece/evalua.py`, mide `hit@k`). Si tocas el RAG, corre el
|
|
eval y pon los números en el commit.
|
|
|
|
## Añadir una acción
|
|
|
|
Una acción es una entrada en `nucleo/datos/acciones.json`:
|
|
|
|
```json
|
|
{
|
|
"id": "brillo_sube",
|
|
"grupo": "sistema",
|
|
"frases": ["sube el brillo", "más brillo", "más luz"],
|
|
"acuse": "Voy, señor.",
|
|
"comando": "brightnessctl set +10%",
|
|
"host": true,
|
|
"respuesta": "Brillo al {campo1}, señor.",
|
|
"confirmar": false,
|
|
"captura": false
|
|
}
|
|
```
|
|
|
|
- `frases`: cómo se dice, con variantes. Se emparejan ANTES de llamar al modelo,
|
|
así que una acción del catálogo es instantánea.
|
|
- `comando`: shell. `{campoN}` en `respuesta` es el enésimo campo de la salida.
|
|
- `confirmar: true` para lo que borra o cambia; `captura: true` si necesita un
|
|
argumento hablado ("busca el fichero **X**").
|
|
|
|
Si el comando depende de una herramienta que puede no estar, que degrade con
|
|
gracia (mira `config/ventanas.sh`).
|
|
|
|
## Probar con otro modelo
|
|
|
|
```bash
|
|
JARVIS_MODELO=qwen3.5:9b ./nucleo/arranca.sh
|
|
```
|
|
|
|
O, en marcha, dile a JARVIS "usa un modelo más potente" (usa la herramienta
|
|
`elegir_modelo`). Para medir si un modelo hace bien el tool-calling, mira el
|
|
patrón del eval del RAG y adáptalo.
|
|
|
|
## Un backend de ventanas nuevo (Wayland u otro)
|
|
|
|
`config/ventanas-wayland.sh` es el ejemplo: detecta el compositor y traduce los
|
|
verbos (maximiza, izquierda, centro...) a sus órdenes. Para KDE, GNOME Wayland u
|
|
otro, se copia el patrón. Actúa sobre la ventana ACTIVA (en Wayland no se mueven
|
|
ventanas ajenas). Prueba cada orden en tu compositor antes del commit.
|
|
|
|
## Estilo
|
|
|
|
- Registro técnico y conciso, en castellano. Los comentarios explican el
|
|
**porqué**, no el qué.
|
|
- Los commits describen la decisión, no solo el cambio.
|
|
- Sin datos personales en el repo: los apuntes indexados, el diario y la voz de
|
|
referencia son del usuario (ver [PRIVACIDAD.md](PRIVACIDAD.md)).
|