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:
+24
-11
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user