docs: réconcilie la doc cluster avec l'état réel (SearXNG + Asa agentique) (#57)

Relevé live 2026-06-23 → mise à jour des écarts depuis le 21/06 :

- admin/ops/etat-cluster.md : SearXNG ajouté (ns ai deploy/svc/IngressRoute,
  Application ArgoCD), date + note « STT devenu agentique ».
- CLAUDE.md : date d'état → 23/06 ; bullet STT réécrit (Asa agentique : contexte
  asa par défaut, function calling, état live enrichi GPU, web_search, admin_action,
  TTS Piper|Kokoro) ; nouveau bullet SearXNG ; apps-of-apps + apps + namespaces
  incluent searxng.
- admin/ia/stt.md : corrige les mentions « agir via Hermes = à venir » (désormais
  FAIT via admin_action/hermes-exec) ; bandeau daté complété (21→23/06).

(Re-ingestion RAG à faire après merge.)

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
ALI YESILKAYA 2026-06-23 00:17:11 +02:00 committed by GitHub
parent 0b117916be
commit 0c263faac0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 28 additions and 15 deletions

View file

@ -6,7 +6,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
**Funk** — homelab IA composé d'un cluster Kubernetes (Talos) pour les services applicatifs, d'un hôte d'inférence LLM dédié (gpu-01 / llama-server ROCm), et d'un agent autonome (Hermes Agent) sur storage-01. Stack IaC complète : Ansible + talhelper + ArgoCD.
**État actuel (2026-06-21)** :
**État actuel (2026-06-23)** :
- ✅ Hermes Agent opérationnel — multi-profils (funk-ai/system/monitor/brain)
- ✅ Qdrant réparé (2026-06-17) — fin du crash-loop (segment `funk-docs` corrompu, voir `admin/incidents.md`). La collection RAG `funk-docs` a depuis été **reconstruite** (436 chunks, 🟢 green, embeddings nomic-embed-text dim 768) — `rag-query` opérationnel
- ✅ Monitoring complet — Prometheus + Grafana + AlertManager → webhook Hermes + n8n
@ -17,7 +17,8 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
- ✅ postfix_relay — SMTP sortant via Gmail SMTP + App Password (aliyesilkaya93@gmail.com)
- ✅ Open WebUI opérationnel — `openwebui.lab.local`, namespace `ai`, backend LiteLLM
- ✅ n8n opérationnel — `n8n.lab.local`, namespace `ai`, 3 workflows actifs (alertes, rapport horaire, Hermes Doc Worker)
- ✅ STT (assistant vocal « Jarvis ») — STT-server in-cluster (`stt.lab.local`, namespace `ai`) + client `stt` (pipx) : HUD avancé (design Claude Design), auto-start systemd `--user`, app de bureau + auto-update ; mémoire long-terme Qdrant `stt-memory`. **Nouveau (2026-06-21)** : **portail de services** dans le HUD (tuiles + pages détail + santé live Prometheus/Alertmanager), **contextes** présélectionnables (funk/ghostfolio/grafana/alerting/cluster) avec **données live injectées** + **visualiseur** (« voir ce qu'on envoie à Asa »), **intents vocaux** (« ouvre X », « état du cluster », « combien sur mon ghostfolio »), ASR enfichable **Parakeet (onnx)**, et **actions via Hermes** (contexte « agent » → `hermes-exec``hermes -z --yolo`, opt-in + confirmation + jeton). Voir `admin/ia/stt.md` et `progress/2026-06-21.md`
- ✅ STT / **Asa** (assistant vocal « Jarvis ») — STT-server in-cluster (`stt.lab.local`, namespace `ai`) + client `stt` (pipx) : HUD avancé, transcription partielle live, **veille/réveil vocal** (« Asa » / « Asa stop »), auto-start systemd `--user`, mémoire long-terme Qdrant `stt-memory`. **Asa est agentique (2026-06-22)** : contexte **`asa` par défaut** = **boucle d'outils (function calling, Qwen3-8B local)** où le modèle choisit ses outils — `search_docs` (RAG), `host_health`/`cluster_status`/`prometheus_query` (état **live** enrichi : CPU/RAM/disque/temp/uptime + **GPU** via rocm_scraper), **`web_search`** (SearXNG), et **`admin_action`** (agir via `hermes-exec`, **confirmation vocale** obligatoire + jeton). Contextes présélectionnables conservés (funk/ghostfolio/grafana/alerting/cluster) + visualiseur + intents vocaux. **TTS enfichable** (`piper`|`kokoro`) : `stt --voices` / `--install-voice` / `--install-kokoro`. Voir `admin/ia/stt.md` et `docs/stt-presentation.md`
- ✅ SearXNG opérationnel — `searxng.lab.local`, namespace `ai`, **méta-moteur de recherche web self-host** (privé, in-cluster) consommé par l'outil `web_search` d'Asa (API JSON). Manifests `k8s/apps/searxng/`
- ✅ Ghostfolio opérationnel — `ghostfolio.lab.local`, namespace `ai`, suivi de portefeuille (PostgreSQL s01 + Redis in-cluster)
- ✅ hermes-auto-improve — analyse quotidienne de `admin/` par Hermes à 22h (n8n → trigger :9095), PR sur `hermes/daily-work`
- ⏳ WOL compute nodes non configuré (BIOS) — allumage manuel requis
@ -159,13 +160,15 @@ k8s/
│ ├── n8n.yaml
│ ├── open-webui.yaml
│ ├── stt.yaml
│ ├── searxng.yaml
│ ├── ghostfolio.yaml
│ ├── monitoring.yaml
│ └── nfs-provisioner.yaml
├── apps/ # Manifests raw k8s par application
│ ├── n8n/ # namespace: ai
│ ├── open-webui/ # namespace: ai
│ ├── stt/ # namespace: ai — STT-server (assistant vocal, stt.lab.local)
│ ├── stt/ # namespace: ai — STT-server (assistant vocal Asa, stt.lab.local)
│ ├── searxng/ # namespace: ai — méta-moteur recherche web (outil web_search d'Asa)
│ ├── ghostfolio/ # namespace: ai — suivi de portefeuille (ghostfolio.lab.local)
│ └── {external-services}/ # ExternalName/Endpoints pointant vers storage-01 ou gpu-01
└── infra/ # Helm releases (HelmRelease + values.yaml)
@ -181,7 +184,7 @@ k8s/
2. Créer `k8s/apps-of-apps/apps/<nom>.yaml` (ArgoCD Application CRD) — copier `n8n.yaml` comme modèle
3. `git commit` + `git push` → ArgoCD prend en charge automatiquement
Namespaces actifs : `argocd`, `infra` (Traefik, MetalLB, NFS-provisioner, registry in-cluster), `monitoring` (Prometheus/Grafana), `ai` (n8n, open-webui, stt, ghostfolio), `sacrifice` (jeu FPS — déployé hors de ce repo et hors ArgoCD, cf. `admin/ops/etat-cluster.md`).
Namespaces actifs : `argocd`, `infra` (Traefik, MetalLB, NFS-provisioner, registry in-cluster), `monitoring` (Prometheus/Grafana), `ai` (n8n, open-webui, stt, searxng, ghostfolio), `sacrifice` (jeu FPS — déployé hors de ce repo et hors ArgoCD, cf. `admin/ops/etat-cluster.md`).
> Les services du namespace `ai` sont exposés via des **IngressRoute Traefik** (CRD), pas des `Ingress` standards.