Aller au contenu

LiteLLM

LiteLLM est un proxy open-source qui unifie l'accès à plusieurs APIs de LLM derrière une interface compatible OpenAI. Il est déployé sur le cluster de production pour centraliser et contrôler l'utilisation des modèles d'IA générative Scaleway par les applications.


Contexte et raison d'être

Scaleway ne fournit pas de mécanisme natif pour :

  • Restreindre l'accès aux APIs par application — toute application ayant la clé API Scaleway peut appeler n'importe quel modèle
  • Distinguer l'usage par application ou par environnement — impossible d'attribuer la consommation à un projet précis

LiteLLM répond à ces deux problèmes en jouant le rôle de proxy : chaque application reçoit sa propre clé API LiteLLM, avec les modèles autorisés explicitement définis. LiteLLM traçe l'usage par clé et transmet les requêtes à Scaleway avec la clé maître.

Architecture

Application (clé API LiteLLM propre à l'app)
    ↓ API compatible OpenAI
LiteLLM — cluster service, namespace litellm
    ↓ clé API maître Scaleway
Scaleway Generative APIs (modèles LLM)

Déploiement Terraform

Run Terraform Rôle
infrastructure/main-infra/scw-service/terraform/080.litellm_installation Installation de LiteLLM sur le cluster
infrastructure/main-infra/scw-service/terraform/081.litellm_configuration Configuration des modèles et des clés API par application

Mettre à jour la liste des modèles disponibles

La liste des modèles Scaleway disponibles est consultable ici : https://www.scaleway.com/fr/tarifs/model-as-a-service/

Elle est définie dans scw-init-config/001.config_infrastructure/terraform.tfvars sous la clé gen_apis_models_definition.

Après modification, appliquer le run 081.litellm_configuration.


Créer une clé API pour une application

Éditer scw-init-config/002.config_applications et définir :

  • generative_api_access à true
  • generative_api_models avec les modèles souhaités (issus de 001.config)
"app_name" = {
  project_name          = "app_name"
  generative_api_access = true
  generative_api_models = ["gpt-oss-120b", "mistral-small-3.2-24b-instruct-2506"]
}

Puis appliquer 081.litellm_configuration.

Cela crée automatiquement une entrée Vault litellm_api_key dans chaque environnement applicatif, à référencer dans les secrets du chart Helm de l'application.


Interface d'administration

L'UI LiteLLM est accessible à l'adresse : https://litellm.svc.ademe-scw.fr/ui/login/

La clé de connexion (master key) est stockée dans le secret Kubernetes litellm-masterkey-secret (namespace litellm).


TODO

  • Implémenter les budgets et quotas par application (ressource Terraform déjà présente sous forme commentée — la complexité réside dans la définition de la structure de données par utilisateur)