af98b47018
docs(cluster): aligne la doc sur l'état réel + re-ingest RAG + fix ubatch embed ( #44 )
...
* fix(rag): ubatch=2048 pour llama-embed + retry rag-ingest + nettoie defaults rag
L'instance llama-embed (:1238) tournait avec l'ubatch llama.cpp par défaut (512).
En mode --embeddings + pooling, toute l'entrée doit tenir dans un seul ubatch →
tout chunk > 512 tokens échouait en HTTP 500 « input too large to process.
increase the physical batch size ». ~46 chunks du RAG (CHUNK_MAX=2000 chars ≈
700 tokens) n'étaient pas indexés.
- llama_server : ajoute llama_embed_ubatch_size (2048 = ctx) + flags
--batch-size/--ubatch-size dans le template llama-embed.service.
- rag-ingest : retry (5×, backoff) sur erreurs transitoires 5xx/réseau de l'embed.
- rag/defaults : aligne embed_url/embed_model sur nomic :1238 (étaient des vars
mortes pointant encore qwen3-8b :1234 — trompeuses).
Résultat : ré-ingestion 436/436 chunks, 0 erreur.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* docs(cluster): aligne la doc sur l'état réel (relevé 2026-06-21) + snapshot
Passe de vérification terrain (SSH s01/g01 + kubectl) pour corriger les écarts
doc↔réalité, et ajout d'un document de référence vérifié.
- admin/ops/etat-cluster.md (nouveau) : snapshot daté — machines, services+ports
par hôte, workloads k8s, namespaces, IngressRoute, bases PG, modèles LiteLLM,
RAG/Qdrant, + procédure pour régénérer le relevé.
- OS AlmaLinux 9.7 → 9.8 (s01/g01) ; précise k8s v1.33.1 (CLAUDE/README/install/talos).
- RAG funk-docs : retire le warning périmé « supprimée 2026-06-17 / à re-ingérer » →
reconstruite (436 chunks, nomic-embed-text :1238 dim 768, CPU). Maj rag.md,
incidents.md, stt.md.
- Namespace sacrifice (hors-repo, hors ArgoCD) + bases PG grafana/sacrifice +
services ai via IngressRoute + registry in-cluster (CLAUDE.md, k9s.md).
- Services de résilience (llm-heartbeat, llama-watchdog/embed) et instances CPU
manuelles :1236/:1237 (souvent éteintes) documentés.
- Journal progress/2026-06-21.md : section relevé + RAG.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 23:29:05 +02:00
a7b5c44e82
docs(rag): chunk dense « nœuds + OS » pour fermer le trou de grounding (cas Q3) ( #33 )
...
Hermès répondait « la doc ne le précise pas » à « combien de nœuds K8s + OS »
alors que talos.md § Architecture contenait l'info — mais en TABLE : nomic embed
mal une table face à une question en langage naturel (pas de « 3 »/« trois », OS
implicite), donc le chunk ne remontait pas dans le top-k.
Fix = phrase en prose dense en tête de la section (compte explicite + OS + rôles +
les 2 hôtes AlmaLinux hors cluster). Le chunk passe #1 (score 0.743 vs ~0.69 avant).
Validé après re-ingest :
- « combien de nœuds K8s + OS » → « 3 nœuds, tous sous Talos Linux v1.13.0 » (docs=6)
- « combien de machines + OS » → réponse nuancée (3 Talos + 2 AlmaLinux hors cluster)
Leçon RAG : préfixer toute table dense d'une phrase en prose pour l'ancrage des
questions naturelles « combien / quel ».
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 21:41:13 +02:00
470c69881c
chore(gpu-01): retire les serveurs llama CPU system/monitor/dev (inutilisés) ( #31 )
...
Trois instances llama-server CPU manuelles (hors Ansible) tournaient sur gpu-01
sans servir : déjà orphelines de LiteLLM (alias absents de config.yaml, d'où le
bruit "Invalid model name"). Suppression complète :
gpu-01 (opérationnel, déjà fait) :
- systemctl disable --now + rm des units llama-server-{system,monitor,dev}
- ports firewall 1235/1236/1237 fermés
Repo :
- monitoring : scrape jobs (values.yaml) + alertes LlamaServer{System,Monitor}Down
(alerts-ai.yaml) retirés → plus de "target down"/alertes fantômes ; panneaux de
statut dashboard-infrastructure recyclés (system→llama-embed, monitor supprimé).
- docs admin/ + hermes-skills (souls funk-ai/brain, SKILL agent-delegation) mises à
jour : inventaire modèles, profils Hermès system/monitor sans backend (à repointer
sur qwen3-8b), litellm, ops, monitoring.
Les profils Hermès system/monitor existent toujours mais sans backend dédié.
Dashboards Grafana dashboard-ai (panneaux graphiques CPU) laissés tels quels
(cosmétique, séries vides, aucune alerte).
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 13:25:50 +02:00
22d40023e1
docs(n8n): rapports portefeuille — news en FR + piège apostrophe JS + édition via API
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-16 13:24:21 +02:00
047785be1a
docs(n8n): rapports portefeuille (hebdo+quotidien) auth durable + news + recommandations
...
Auth via jeton de securite (auto-renouvelle, plus d'expiration JWT). News par
action via Yahoo RSS dans le noeud Code. Analyse approfondie + recommandations.
Caveat: Qwen 8B peut se tromper sur les chiffres -> se fier au tableau exact.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-15 23:44:27 +02:00
69818c29a8
docs(n8n): workflow Rapport Portefeuille Hebdo (Ghostfolio + Qwen)
...
Cron dimanche 18h -> API Ghostfolio (perf+holdings) -> Qwen commente -> email.
Filtre le cash, poids relatifs aux actions. Auth JWT en dur (exp 2026-12-12).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-15 23:31:35 +02:00
e61f1c76fc
docs(n8n): fix parsing webhook alertes (0 alerte/unknown) + filtre anti-bruit
...
Le noeud Format Alertes lisait body.alerts/body.status au lieu de body.body.* ->
tous les mails affichaient 0 alerte/unknown meme en cas de vraie alerte.
Correctif applique au workflow (live) + filtre Watchdog/InfoInhibitor/severity none.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-15 21:37:13 +02:00
b615e9e0fd
docs(ghostfolio): sslmode=disable + caveat grant schema public
...
Corrige la procédure : sslmode=disable (PG s01 sans SSL, seed Prisma 7.x échoue
en TLS sinon) et documente le GRANT ALL ON SCHEMA public requis pour les bases
possédées par postgres.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-15 14:20:05 +02:00
4f1c03df08
feat(ghostfolio): suivi de portefeuille sur k8s (PG s01 + Redis)
...
Nouvel app ArgoCD ghostfolio (namespace ai) : suivi/analyse de portefeuille
boursier. Base PostgreSQL dédiée sur storage-01, Redis in-cluster pour le cache.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-15 14:04:19 +02:00
40fd7f0868
docs: synchroniser la doc avec l'état réel du cluster (revue Ansible + incident Qdrant)
...
- ops/ansible.md : tableau complet des rôles par playbook (15 storage-01, 6 gpu-01),
caveat hermes_agent, note lm_studio inutilisé
- ia/hermes-auto-improve.md : NOUVEAU — doc du worker déployé (trigger :9095,
modes du script, endpoints, PR squash, pièges connus)
- k8s/n8n.md : workflow 3 "Hermes Doc Worker" documenté (22h, /trigger/all,
boucle de polling), clé API → vault
- incidents.md : Qdrant crash-loop depuis 2026-06-05 (segment funk-docs corrompu,
invisible dans --state=failed) + procédure de réparation
- ia/rag.md : bandeau RAG HS
- CLAUDE.md : état 2026-06-10, rôle hermes_auto_improve, 3 workflows n8n,
vault complet (n8n_api_key, Gmail au lieu de Brevo), section auto-improve
- README.md : lien admin/ops/cluster.md corrigé, arborescence complète
(tools/, admin/, progress/, skills), roadmap à jour
- PROGRESS.md : entrée 2026-05-29 (migration NVMe) qui existait sans être référencée
- ansible : suppression effective des templates daily timer (cleanup b9be63c )
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-10 15:11:53 +02:00
alkatrazz
ac5938f0ce
docs(n8n): documenter section énergie GPU dans rapport horaire
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-02 23:05:42 +02:00
alkatrazz
eca28a8dc1
docs(k8s): ajouter documentation k9s
...
Installation poste perso + storage-01, configuration namespace par défaut,
raccourcis navigation, cas d'usage fréquents, dépannage.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-30 23:07:32 +02:00
alkatrazz
12f219c83b
docs: documenter Open WebUI, n8n et mettre à jour l'état du projet
...
- CLAUDE.md : état au 2026-05-29 — Open WebUI + n8n ✅ , LiteLLM sur
0.0.0.0, postfix Gmail SMTP, suppression ⏳ workloads IA
- admin/k8s/open-webui.md : architecture, déploiement, credentials,
dépannage, différence avec Hermes TUI
- admin/k8s/n8n.md : architecture, 2 workflows documentés (alertes +
rapport horaire), 8 idées de workflows futurs, opérations courantes,
dépannage
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-29 18:10:46 +02:00
alkatrazz
3a013834aa
fix(webhook): réponse HTTP 200 immédiate + ask-agent asynchrone
...
BrokenPipeError corrigé : send_response(200) envoyé avant subprocess.
ask-agent lancé en threading.Thread daemon — AlertManager n'attend plus.
NO_COLOR=1 + TERM=dumb pour éviter les codes ANSI dans les logs.
docs: alertmanager-webhook.md — architecture, flux, test, dépannage
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-14 21:58:39 +02:00
alkatrazz
5bcf95b82e
docs: réorganisation complète de admin/ en 4 domaines thématiques
...
Structure avant : 20 fichiers à plat dans admin/ — difficile à naviguer.
Structure après : 4 sous-répertoires thématiques + index clair.
Réorganisation :
admin/ops/ → cluster.md, ansible.md, systeme.md
admin/infra/ → reseau.md, nfs.md, dnsmasq.md, ssh.md
admin/k8s/ → talos.md, argocd.md, monitoring.md
admin/ia/ → llama_server.md, rocm.md, litellm.md, hermes.md
Suppressions :
- ask-agent.md : contenu fusionné dans ia/hermes.md (section ask-agent)
- lm_studio.md : obsolète (LM Studio remplacé par llama-server)
Mises à jour contenu :
- ia/hermes.md : fusion complète avec ask-agent.md (profils, skills,
SOUL.md, ask-agent CLI, dépannage) — doc unifiée sans redondance
- ops/cluster.md : section GitOps réduite à 2 lignes + lien argocd.md
- incidents.md : tableau de résumé en tête + 4 nouveaux incidents
(Grafana OOMKilled, AlertManager null receiver, llama-server 501,
nftables règle après drop)
- README.md : réécrit — navigation rapide + index par domaine
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-14 00:47:58 +02:00