Funk-lab/ansible/roles/litellm/templates/config.yaml.j2
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

42 lines
1.5 KiB
Django/Jinja

model_list:
# Alias Hermes — changer uniquement ce bloc pour switcher le modèle de Hermes
# sans toucher à la configuration de Hermes lui-même
- model_name: hermes-default
litellm_params:
model: openai/qwen3-8b
api_base: {{ litellm_local_llm_base_url }}
api_key: {{ litellm_local_llm_api_key }}
# Pour passer Hermes sur Claude : remplacer les 3 lignes ci-dessus par :
# model: anthropic/claude-sonnet-4-6
# api_key: os.environ/ANTHROPIC_API_KEY
# Modèles accessibles directement par nom
- model_name: qwen3-8b
litellm_params:
model: openai/qwen3-8b
api_base: {{ litellm_local_llm_base_url }}
api_key: {{ litellm_local_llm_api_key }}
- model_name: claude-sonnet-4-6
litellm_params:
model: anthropic/claude-sonnet-4-6
api_key: os.environ/ANTHROPIC_API_KEY
- model_name: claude-opus-4-7
litellm_params:
model: anthropic/claude-opus-4-7
api_key: os.environ/ANTHROPIC_API_KEY
litellm_settings:
drop_params: true
# 600s = 10 min : une connexion keep-alive périmée vers llama-server (après un
# restart de ce dernier) fait alors hanger LiteLLM 10 min avant d'abandonner →
# 502 en cascade pour tous les consommateurs. 60s borne ce hang.
request_timeout: 60
# Rejoue une requête échouée (timeout/erreur réseau) : sur la 2ᵉ tentative la
# connexion morte du pool est évincée → la requête repart sur une connexion neuve.
num_retries: 2
general_settings:
master_key: {{ litellm_master_key }}