Funk-lab/ansible/roles/litellm
ALI YESILKAYA d6ec83af9d
fix(litellm): request_timeout 600→60s + num_retries 2 (anti-connexion périmée) (#22)
Cause du burst de 502 « cold-start » : après un restart de llama-server, LiteLLM
garde des connexions keep-alive mortes dans son pool → la requête suivante hang
jusqu'au timeout. Or request_timeout valait 600s → hang jusqu'à 10 min, sans log
(LiteLLM attendait encore). Fix :
- request_timeout 60s : borne le hang d'une connexion morte
- num_retries 2 : rejoue → évince le socket périmé, repart sur une connexion neuve

Doc : section dédiée dans admin/incidents-llm-gpu.md (mécanisme + application +
reste à faire = watchdog qui bounce llama-server ET litellm).

Application : ansible-playbook -i inventory.yml playbooks/storage-01.yml --tags litellm
(redémarre LiteLLM → applique le fix ET purge le pool d'un coup).

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 16:00:29 +02:00
..
defaults fix(litellm): exposer port 4000 au cluster k8s 2026-05-29 16:15:37 +02:00
files fix(funk-cluster): grep -c bug + uncordon automatique au démarrage 2026-05-14 17:57:12 +02:00
handlers feat: initial commit — Ansible roles storage-01/gpu-01 opérationnels 2026-05-12 17:17:03 +02:00
tasks feat: initial commit — Ansible roles storage-01/gpu-01 opérationnels 2026-05-12 17:17:03 +02:00
templates fix(litellm): request_timeout 600→60s + num_retries 2 (anti-connexion périmée) (#22) 2026-06-19 16:00:29 +02:00
README.md docs(ansible): README par rôle (19) + gaps IaC découverts à l'audit 2026-06-10 15:21:24 +02:00

litellm

Proxy LLM multi-modèles sur storage-01 (:4000) — point d'entrée unique pour Hermes, n8n, Open WebUI et ask-agent. Route vers llama-server (gpu-01) ou l'API Anthropic.

Ce que fait le rôle

  • venv /opt/litellm/venv avec litellm[proxy], user système litellm
  • Config /etc/litellm/config.yaml : alias hermes-default, qwen3-8b, system, monitor, claude…
  • Service systemd + scripts utilitaires :
    • /usr/local/bin/ask-agent — délégation inter-agents (texte → profil system/monitor/brain)
    • /usr/local/bin/hermes-switch — bascule l'alias hermes-default entre qwen (local) et claude (API), puis restart litellm
    • /usr/local/bin/funk-cluster — orchestration start/stop/status du homelab

Variables principales

Variable Défaut
litellm_host / litellm_port 0.0.0.0 / 4000
litellm_master_key lm-studio (clé API attendue par les clients)
litellm_local_llm_base_url http://192.168.10.20:1234/v1
litellm_anthropic_api_key {{ vault_anthropic_api_key }}

Caveat

  • L'alias hermes-default est ce que Hermes consomme — changer le modèle derrière l'alias ne nécessite pas de reconfigurer Hermes
  • hermes-switch modifie /etc/litellm/config.yaml en dehors d'Ansible : un --tags litellm réécrit la config et peut écraser un switch manuel vers claude