mirror of
https://github.com/Alkatrazz24/Funk-lab.git
synced 2026-07-08 05:34:43 +02:00
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:
parent
0b117916be
commit
0c263faac0
3 changed files with 28 additions and 15 deletions
|
|
@ -3,7 +3,8 @@
|
|||
**STT** est l'interface vocale et graphique de Funk : un assistant type *Jarvis / Iron Man*
|
||||
qui écoute, parle et affiche un HUD animé. **Architecture client-serveur** : un client `stt`
|
||||
sur le poste (voix + HUD) qui interroge un **STT-server in-cluster** (orchestration AI).
|
||||
Objectif ultérieur : « agir sur le homelab » via les outils de Hermes (phase 7).
|
||||
Asa est désormais **agentique** : le STT-server fait du **function calling** (contexte `asa`) — elle
|
||||
sait (doc + état live), cherche (web SearXNG) et **agit** (Hermes via `hermes-exec`, avec confirmation).
|
||||
|
||||
> **Nom de code** : `STT`. À l'origine « Speech-To-Text », mais le projet couvre toute la
|
||||
> chaîne voix → cerveau → voix + interface + mémoire. Renommable plus tard sans impact
|
||||
|
|
@ -16,7 +17,12 @@ Objectif ultérieur : « agir sur le homelab » via les outils de Hermes (phase
|
|||
> portrait réactif, transcript à bulles, drawer Réglages **câblé au backend** : reset / mode
|
||||
> cerveau / mot de réveil à chaud). Auto-start : `stt --install-service` (systemd --user).
|
||||
> App de bureau : `stt --install-desktop` (fenêtre type Discord) ; auto-update : `stt --update`.
|
||||
> Reste : test audio bout-en-bout (phase 1), portraits réels + test sur cible, outils Hermes (7).
|
||||
> ✅ **2026-06-21** — transcription partielle live + **veille/réveil vocal** (« Asa » / « Asa stop »).
|
||||
> ✅ **2026-06-22** — **Asa agentique** : contexte `asa` par défaut (function calling local), outils
|
||||
> doc + **état live enrichi** + **web (SearXNG)** + **actions Hermes** (`admin_action`, confirmation).
|
||||
> Vérifié en prod. Voir `docs/stt-presentation.md` (+ schémas) et `docs/asa-commandes.md`.
|
||||
> ✅ **2026-06-23** — **TTS enfichable** (Piper|Kokoro) + `stt --voices` / `--install-voice` / `--install-kokoro`.
|
||||
> Reste : portraits d'avatar réels (le HUD montre le repli « あ »).
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -45,7 +51,7 @@ Maillon réellement manquant : **l'interface graphique HUD** + le packaging + la
|
|||
| Interface | **HUD web sur-mesure** côté client (canvas/WebGL) |
|
||||
| STT / TTS | **Local sur le poste** (faster-whisper CPU + Piper) — le serveur ne touche pas à l'audio |
|
||||
| Packaging | Client : **commande `stt` via pipx** (`#subdirectory=stt/client`). Serveur : **conteneur** (ghcr) déployé par ArgoCD |
|
||||
| Cerveau | **Côté serveur** : route vers LiteLLM `:4000` (Qwen3 / Claude). Outils Hermes = phase ultérieure |
|
||||
| Cerveau | **Côté serveur** : route vers LiteLLM `:4000` (Qwen3 / Claude) + **boucle d'outils** (function calling : doc, état live, web, actions Hermes) |
|
||||
| Client → serveur | Client **serveur-only** (pas de repli Claude). URL serveur **paramétrable** |
|
||||
| Mémoire | **Côté serveur** (futur) : Qdrant s01 + distillée GitHub. Client : cache local SQLite |
|
||||
|
||||
|
|
@ -77,9 +83,9 @@ Le STT-server appelle **LiteLLM `:4000`** (OpenAI-compatible), joint depuis le c
|
|||
**IP directe** `192.168.10.1:4000` (même pattern qu'open-webui). LiteLLM
|
||||
route lui-même vers Qwen3 (g01) ou Claude selon l'alias `hermes-default` / `hermes-switch`.
|
||||
|
||||
> **« Agir sur Funk »** (outils de l'agent Hermes via le gateway `:8080`) n'est **pas** dans le
|
||||
> MVP : l'API `:8080` n'est pas spécifiée, et depuis un pod le SSH vers Hermes est impraticable.
|
||||
> MVP = inférence/chat. L'intégration Hermes est une étape ultérieure.
|
||||
> **« Agir sur Funk »** est désormais **en place** (2026-06-22) : pas via le gateway Hermes `:8080`
|
||||
> (jamais spécifié) mais via **`hermes-exec`** (storage-01 `:9096`, jeton) appelé par l'outil
|
||||
> `admin_action` du contexte `asa`, avec **confirmation vocale**. Détails plus bas.
|
||||
|
||||
**Choix du modèle** : le client envoie un `model` (alias LiteLLM) **par requête** à
|
||||
`/v1/ask` ; le serveur le valide contre `STT_ALLOWED_MODELS` et le passe à LiteLLM. Pas de
|
||||
|
|
|
|||
|
|
@ -1,8 +1,12 @@
|
|||
# État réel du cluster Funk — snapshot vérifié
|
||||
|
||||
> Relevé **2026-06-21** directement sur les machines (SSH s01/g01 + `kubectl`). Ce document
|
||||
> Relevé **2026-06-23** directement sur les machines (SSH s01/g01 + `kubectl`). Ce document
|
||||
> reflète l'état **observé**, pas l'état *souhaité* de l'IaC — en cas d'écart, les écarts connus
|
||||
> sont signalés (⚠️). Pour la procédure de relevé, voir la fin du fichier.
|
||||
>
|
||||
> 🔁 **Depuis le 21/06** : ajout de **SearXNG** (recherche web in-cluster, ns `ai`) ; le STT‑server
|
||||
> est devenu **agentique** (contexte `asa` par défaut : function calling — doc, état live, web,
|
||||
> actions Hermes). Détails : `admin/ia/stt.md`.
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -82,7 +86,7 @@
|
|||
|
||||
| Namespace | Workloads |
|
||||
|---|---|
|
||||
| `ai` | ghostfolio, ghostfolio-redis, n8n, open-webui, **stt-server** |
|
||||
| `ai` | ghostfolio, ghostfolio-redis, n8n, open-webui, **stt-server**, **searxng** |
|
||||
| `argocd` | application-controller, applicationset, notifications, redis, repo-server, server |
|
||||
| `infra` | **traefik** (LB `192.168.10.200`), **registry** (registry Docker in-cluster) |
|
||||
| `monitoring` | kube-prometheus-stack (Prometheus, Alertmanager, Grafana **13.0.1**, kube-state-metrics, operator, node-exporters) |
|
||||
|
|
@ -97,15 +101,15 @@
|
|||
> Il possède aussi sa base PostgreSQL `sacrifice` sur storage-01.
|
||||
|
||||
**ArgoCD Applications** (toutes `Synced` / `Healthy`) :
|
||||
`root` · `ghostfolio` · `n8n` · `open-webui` · `stt` · `monitoring` · `kube-prometheus-stack` ·
|
||||
`nfs-provisioner` · `nfs-subdir-external-provisioner`.
|
||||
`root` · `ghostfolio` · `n8n` · `open-webui` · `stt` · `searxng` · `monitoring` ·
|
||||
`kube-prometheus-stack` · `nfs-provisioner` · `nfs-subdir-external-provisioner`.
|
||||
|
||||
**Exposition HTTP** :
|
||||
|
||||
| Type | Hôtes |
|
||||
|---|---|
|
||||
| `Ingress` standard | `argocd.lab.local`, `grafana.lab.local`, `prometheus.lab.local`, `alertmanager.lab.local`, `sacrifice.lab.local` |
|
||||
| `IngressRoute` (CRD Traefik) | `ai/open-webui`, `ai/n8n`, `ai/ghostfolio`, `ai/stt-server`, `infra/traefik-dashboard` |
|
||||
| `IngressRoute` (CRD Traefik) | `ai/open-webui`, `ai/n8n`, `ai/ghostfolio`, `ai/stt-server`, `ai/searxng`, `infra/traefik-dashboard` |
|
||||
|
||||
> Les services du namespace `ai` (openwebui, n8n, ghostfolio, stt) passent par des **IngressRoute
|
||||
> Traefik** (CRD), pas par des `Ingress` standards.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue