fix(litellm): open-webui via OpenAI API (pas Ollama) + 3 profils Qwen3.6

LiteLLM expose l'API OpenAI /v1/* pas l'API Ollama /api/*. open-webui
doit etre branche via la section 'OpenAI API' (env OPENAI_API_BASE_URL +
OPENAI_API_KEY), pas via 'Ollama'. L'override ajoute ces vars a open-webui,
force-recreate pour propager. Confirme en prod: HTTP 200 sur :4000/v1/models
depuis le conteneur open-webui. Les 4 modeles Qwen3.6 remontent dans le chat.
This commit is contained in:
Folzo
2026-06-27 16:51:51 +02:00
parent 7a8dc34212
commit 1b4764e9fa
2 changed files with 45 additions and 27 deletions
+24 -11
View File
@@ -1,20 +1,33 @@
# ═══════════════════════════════════════════════════════════
# OVERRIDE litellm — Ajoute LiteLLM + jean-proxy a la stack Effi
# ‎
# Usage :
# docker compose -f docker-compose.yml -f docker-compose.litellm.yml up -d litellm jean-proxy
# ‎
# IMPORTANT : n ajoute QUE les services litellm + jean-proxy.
# Les services existants (open-webui, wol-proxy, hermes, qdrant, ...)
# ne sont PAS modifies, donc PAS de redemarrage involontaire.
# ‎
# Une fois LiteLLM valide (curl :4000/v1/models), on pourra repointer
# open-webui en passant OLLAMA_BASE_URL=http://litellm:4000 — mais c est
# une etape de validation utilisateur, pas automatique.
# + configure open-webui pour parler a LiteLLM en mode OpenAI API
#
# Usage (depuis /home/effi/effi sur serveur Effi) :
# docker compose -f docker-compose.yml -f docker-compose.litellm.yml up -d --build
#
# IMPORTANT : cet override modifie open-webui (ajoute OPENAI_API_BASE_URL +
# OPENAI_API_KEY + remet OLLAMA_BASE_URL sur le wol-proxy originel :3011).
# open-webui sera recree a la prochaine 'up --force-recreate' pour propager.
# LiteLLM expose l'API OpenAI (/v1/*), pas l'API Ollama (/api/*) — donc
# open-webui DOIT etre configure via la section "OpenAI API" (admin UI)
# et non via la section "Ollama".
# ═══════════════════════════════════════════════════════════
services:
# ─────────────────────────────────────────────────────────
# open-webui — repointe vers LiteLLM via connexion OpenAI API
# L'ancien backend Ollama (wol-proxy :3011) reste configuré pour
# retrocomparabilité mais le LLM Jhon/Ollama n'est plus accessible
# la nuit (contention VRAM). Le routing par modele se fait cote LiteLLM.
# ─────────────────────────────────────────────────────────
open-webui:
environment:
- OLLAMA_BASE_URL=http://host.docker.internal:3011
- OPENAI_API_BASE_URL=http://host.docker.internal:4000/v1
- OPENAI_API_KEY=sk-effi-litellm-master
- ENABLE_OPENAI_API=True
# ─────────────────────────────────────────────────────────
# 1. jean-proxy — Reverse-proxy vers Jean (.11:8080) + WOL
# Clone du wol-proxy, meme MAC cible, port cible = 8080
+21 -16
View File
@@ -107,25 +107,30 @@ curl -s -X POST http://localhost:4000/v1/chat/completions \
-d '{"model":"llama3.1","messages":[{"role":"user","content":"Bonjour"}],"max_tokens":30}'
```
### Commutation de open-webui vers LiteLLM (étape utilisateur)
### Commutation de open-webui vers LiteLLM — réalisée
Une fois les tests validés :
⚠️ LiteLLM expose l'**API OpenAI** (`/v1/*`), **pas** l'API Ollama (`/api/*`).
open-webui ne peut donc pas brancher LiteLLM sur sa section "Ollama" (≠ protocole).
1. Éditer `/home/effi/effi/docker-compose.yml` (seulement cette ligne) :
```yaml
OLLAMA_BASE_URL=http://host.docker.internal:4000 # LiteLLM au lieu de :3011
```
2. Ajouter la master key LiteLLM dans `/home/effi/effi/.env` :
```
LITELLM_MASTER_KEY=sk-effi-litellm-master
```
3. Redémarrer open-webui uniquement :
```bash
docker compose -f docker-compose.yml -f docker-compose.litellm.yml up -d open-webui
```
4. Dans open-webui : Admin → Settings → Connections → l'URL est déjà `http://host.docker.internal:4000`. Vérifier que les deux modèles apparaissent dans le dropdown.
L'override `docker-compose.litellm.yml` configure donc open-webui via la section **OpenAI API** :
- `OPENAI_API_BASE_URL=http://host.docker.internal:4000/v1`
- `OPENAI_API_KEY=sk-effi-litellm-master`
- `ENABLE_OPENAI_API=True`
- `OLLAMA_BASE_URL=http://host.docker.internal:3011` (conservé pour rétrocompat — mais le PC gaming OOM si Jean tourne, donc ce backend ne remonte pas de modèles)
ℹ️ Cette étape est volontairement laissée manuelle — c'est l'unique impact sur le service en prod (1 redémarrage open-webui). Hermes, wol-proxy, qdrant etc. ne sont pas touchés.
Appliqué via :
```bash
docker compose -f docker-compose.yml -f docker-compose.litellm.yml up -d --force-recreate open-webui
```
Dans l'UI open-webui : **Admin → Settings → Connections → "OpenAI API"**. L'URL est pré-remplie (`http://host.docker.internal:4000/v1`) et la clé `sk-effi-litellm-master`. Les 4 modèles Qwen3.6 (`qwen3.6-reason`, `qwen3.6-27b`, `qwen3.6-fast`, `qwen3.6`) apparaissent dans le dropdown du chat.
### Modèles exposés (profil Qwen3.6 — vramp oblige)
| Modèle dans open-webui | Raisonnement | Quand l'utiliser | Latence TTFT |
|---|---|---|---|
| `qwen3.6-fast` / `qwen3.6` | OFF | Chat, mail, extraction simple | ~0.4-1 s |
| `qwen3.6-reason` / `qwen3.6-27b` | ON | Code, analyse, rapports, RAG, tâches complexes | 10-40 s |
### En cas de rollback