fix(stt): joindre LiteLLM en IP directe (192.168.10.1:4000) (#6)

L'indirection litellm-ext (Service sans sélecteur + Endpoints manuel) ne routait pas
('All connection attempts failed'). open-webui joint LiteLLM en IP directe — on copie
ce pattern éprouvé et on supprime litellm-external.yaml.


Claude-Session: https://claude.ai/code/session_013FmcxGsyXZXogiAHQLjnZT

Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
ALI YESILKAYA 2026-06-17 13:19:51 +02:00 committed by GitHub
parent 35f37bd293
commit 47936b0088
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 14 additions and 36 deletions

View file

@ -14,7 +14,7 @@ Assistant vocal type *Jarvis* pour le homelab Funk, en **architecture client-ser
┌─ POSTE ──────────┐ ┌─ CLUSTER k8s (ns ai) ──────────────┐
│ client `stt` │ HTTP │ STT-server (Deployment) │
│ • micro + Whisper│ ─────▶ │ POST /v1/ask → LiteLLM │
│ • Piper (TTS) │ ◀───── │ (litellm-ext → s01:4000)
│ • Piper (TTS) │ ◀───── │ (→ s01 192.168.10.1:4000)
│ • HUD web │ reply │ Ingress: stt.lab.local │
└───────────────────┘ └──────────────┬──────────────────────┘
@ -37,8 +37,8 @@ Prérequis poste : micro, Piper + voix dans `~/.local/share/piper/`, `aplay` (al
`.github/workflows/build-stt-server.yml` (sur push touchant `stt/server/`).
2. **ArgoCD** : `k8s/apps-of-apps/apps/stt.yaml` → déploie `k8s/apps/stt/` **depuis `main`**.
Tant que ce n'est pas mergé sur `main`, le cluster ne le prend pas.
3. Le serveur joint LiteLLM (s01, hors cluster) via le Service `litellm-ext`
(Endpoints manuel → `192.168.10.1:4000`).
3. Le serveur joint LiteLLM (s01, hors cluster) en **IP directe** `192.168.10.1:4000`
(même pattern qu'open-webui — pas de Service/Endpoints intermédiaire).
4. **Image privée** : le Deployment référence un `imagePullSecret` `ghcr-pull`.
À créer une fois dans le ns `ai` (même pratique que `ghostfolio-secret`, non versionné) :
```bash

View file

@ -14,7 +14,7 @@ STT et route l'inférence vers LiteLLM (s01) → Qwen3 (g01) / Claude.
| Var | Défaut | Rôle |
|---|---|---|
| `STT_LITELLM_URL` | `http://litellm-ext:4000/v1/chat/completions` | endpoint LiteLLM (via Service Endpoints) |
| `STT_LITELLM_URL` | `http://192.168.10.1:4000/v1/chat/completions` | endpoint LiteLLM (IP directe s01, cf. open-webui) |
| `STT_LITELLM_KEY` | `lm-studio` | clé LiteLLM (valeur exacte attendue) |
| `STT_MODEL` | `hermes-default` | alias LiteLLM (bascule Qwen/Claude via `hermes-switch`) |
| `STT_SYSTEM_PROMPT` | prompt vocal FR concis | persona |
@ -34,7 +34,7 @@ curl -s localhost:8000/v1/ask -H 'content-type: application/json' -d '{"text":"b
- Image construite/poussée par `.github/workflows/build-stt-server.yml``ghcr.io/alkatrazz24/funk-stt-server`.
- Manifests : `k8s/apps/stt/` ; Application ArgoCD : `k8s/apps-of-apps/apps/stt.yaml` (depuis `main`).
- Accès LiteLLM (hors cluster) : Service + Endpoints `litellm-ext``192.168.10.1:4000`.
- Accès LiteLLM (hors cluster) : IP directe `192.168.10.1:4000` (même pattern qu'open-webui).
## À venir

View file

@ -6,9 +6,9 @@ import os
class Settings:
# LiteLLM (s01) — joint via un Service ExternalName/Endpoints dans le cluster.
# LiteLLM (s01) — joint en IP directe depuis le cluster (cf. open-webui).
litellm_url: str = os.getenv(
"STT_LITELLM_URL", "http://litellm-ext:4000/v1/chat/completions"
"STT_LITELLM_URL", "http://192.168.10.1:4000/v1/chat/completions"
)
litellm_key: str = os.getenv("STT_LITELLM_KEY", "lm-studio")
model: str = os.getenv("STT_MODEL", "hermes-default")