feat: jean-router — routing dynamique Jean + Ollama
- jean-router interroge /api/presets pour lister dynamiquement les presets Jean
- Support Ollama via /api/tags pour les modèles vision
- Switch automatique de preset quand nécessaire
- Expose /v1/models avec tous les modèles disponibles
- Route les requêtes vers Jean ou Ollama selon le modèle demandé
- Nouveaux presets Jean automatiquement visibles dans OpenWebUI
Architecture:
open-webui → LiteLLM:4000 → jean-router:3014
├→ jean-proxy:3012 → Jean (.11:8080)
└→ wol-proxy:3011 → Ollama (.11:11434)
This commit is contained in:
+13
-99
@@ -1,112 +1,26 @@
|
||||
# ═══════════════════════════════════════════════════════════
|
||||
# LiteLLM Proxy — Routing pour Effi
|
||||
# LiteLLM Proxy — Routing pour Effi via jean-router
|
||||
# Endpoint OpenAI-compatible sur :4000 (host network)
|
||||
#
|
||||
# Backend unique : JeanOrchestrator (port 8080 sur PC gaming .11)
|
||||
# via jean-proxy :3012 + WOL auto si PC eteint.
|
||||
#
|
||||
# L'orchestrateur gere automatiquement le switch entre :
|
||||
# - Qwen3.6-35B MoE I-Nano (defaut, 11.7 Go, 100k ctx, ~70 tok/s)
|
||||
# - Qwen3.6-27B IQ4_XS (code/analyse, 14.6 Go, 55k ctx, ~60 tok/s)
|
||||
#
|
||||
# Tous les modeles passent par le meme proxy :3012.
|
||||
# L'orchestrateur detecte le modele demande et charge le bon LLM.
|
||||
# Retour automatique au MoE apres 15 min sans 27B.
|
||||
#
|
||||
# jean-router (:3014) gère dynamiquement :
|
||||
# - Liste des presets Jean (avec switch automatique)
|
||||
# - Liste des modèles Ollama
|
||||
# - Routing vers le bon backend
|
||||
#
|
||||
# LiteLLM sert uniquement de proxy OpenAI unifié pour OpenWebUI.
|
||||
# ═══════════════════════════════════════════════════════════
|
||||
|
||||
model_list:
|
||||
# ═════════════════════════════════════════════════════════
|
||||
# Profil 1 — Raisonnement ON (défaut, pour tâches complexes)
|
||||
# Le modele reflechit (jusqu'a 2048 tokens de reasoning_content)
|
||||
# avant de produire sa reponse. Bon pour code, analyse, RAG, rapports.
|
||||
# ═════════════════════════════════════════════════════════
|
||||
- model_name: qwen3.6-reason
|
||||
- model_name: jean
|
||||
litellm_params:
|
||||
model: openai/qwen3.6-reason
|
||||
api_base: http://localhost:3012/v1
|
||||
model: openai/*
|
||||
api_base: http://localhost:3014/v1
|
||||
api_key: "null"
|
||||
timeout: 600
|
||||
extra_body:
|
||||
chat_template_kwargs:
|
||||
enable_thinking: true
|
||||
|
||||
- model_name: qwen3.6-27b
|
||||
litellm_params:
|
||||
model: openai/qwen3.6-27b
|
||||
api_base: http://localhost:3012/v1
|
||||
api_key: "null"
|
||||
timeout: 600
|
||||
extra_body:
|
||||
chat_template_kwargs:
|
||||
enable_thinking: true
|
||||
|
||||
# ═════════════════════════════════════════════════════════
|
||||
# Profil 2 — Raisonnement OFF (chat rapide, ~5x moins de latence)
|
||||
# Reponse immediate (TTFT <1s) sans phase de reflexion.
|
||||
# Ideal pour : chat interactif, redaction de mail, extraction
|
||||
# structuree simple, Q/R directes.
|
||||
# ═════════════════════════════════════════════════════════
|
||||
- model_name: qwen3.6-fast
|
||||
litellm_params:
|
||||
model: openai/qwen3.6-fast
|
||||
api_base: http://localhost:3012/v1
|
||||
api_key: "null"
|
||||
timeout: 600
|
||||
extra_body:
|
||||
chat_template_kwargs:
|
||||
enable_thinking: false
|
||||
|
||||
# Alias court "qwen3.6" = fast par defaut (usage chat le plus courant)
|
||||
- model_name: qwen3.6
|
||||
litellm_params:
|
||||
model: openai/qwen3.6
|
||||
api_base: http://localhost:3012/v1
|
||||
api_key: "null"
|
||||
timeout: 600
|
||||
extra_body:
|
||||
chat_template_kwargs:
|
||||
enable_thinking: false
|
||||
|
||||
# ═════════════════════════════════════════════════════════
|
||||
# Profil 3 — Qwen3.6-35B MoE APEX I-Nano (chat Hermes, usage quotidien)
|
||||
# Modele MoE : 35B total / 3B actifs, 11.7 Go, cache KV 5x plus petit
|
||||
# que le 27B -> contexte 100k possible. Cohabite avec ComfyUI.
|
||||
# Route via le meme proxy :3012 que le 27B (orchestrateur fait le switch).
|
||||
# ═════════════════════════════════════════════════════════
|
||||
- model_name: qwen3.6-moe
|
||||
litellm_params:
|
||||
model: openai/qwen3.6-moe
|
||||
api_base: http://localhost:3012/v1
|
||||
api_key: "null"
|
||||
timeout: 600
|
||||
extra_body:
|
||||
chat_template_kwargs:
|
||||
enable_thinking: false
|
||||
|
||||
- model_name: qwen3.6-moe-reason
|
||||
litellm_params:
|
||||
model: openai/qwen3.6-moe-reason
|
||||
api_base: http://localhost:3012/v1
|
||||
api_key: "null"
|
||||
timeout: 600
|
||||
extra_body:
|
||||
chat_template_kwargs:
|
||||
enable_thinking: true
|
||||
|
||||
# ═════════════════════════════════════════════════════════
|
||||
# Backend Ollama — COMMENTE (contention VRAM, voir entete)
|
||||
# Pour reactiver si dispo (autre machine / GPU dedie), decommenter
|
||||
# et s'assurer que le GPU peut charger les deux modeles.
|
||||
# ═════════════════════════════════════════════════════════
|
||||
# - model_name: llama3.1-8b
|
||||
# litellm_params:
|
||||
# model: ollama/llama3.1:8b
|
||||
# api_base: http://localhost:3011
|
||||
# timeout: 600
|
||||
|
||||
litellm_settings:
|
||||
drop_params: false # ne pas dropper: on veut passer chat_template_kwargs a Jean
|
||||
drop_params: false
|
||||
telemetry: false
|
||||
|
||||
general_settings:
|
||||
master_key: sk-effi-litellm-master
|
||||
master_key: sk-effi-litellm-master
|
||||
|
||||
Reference in New Issue
Block a user