Aller au contenu principal

Chapitre 3 : Construire des plateformes LLM

Architecture de la plateforme​

Répartition des coûts​

class CostAllocator:
def __init__(self, pricing: dict):
self.pricing = pricing
self.usage = {}

def track_usage(self, team_id: str, model: str, tokens: int):
"""Suivre l'utilisation par équipe."""
if team_id not in self.usage:
self.usage[team_id] = {}
if model not in self.usage[team_id]:
self.usage[team_id][model] = 0

self.usage[team_id][model] += tokens

def calculate_cost(self, team_id: str) -> dict:
"""Calculer le coût pour une équipe."""
team_usage = self.usage.get(team_id, {})
costs = {}
total = 0

for model, tokens in team_usage.items():
cost = (tokens / 1000) * self.pricing[model]
costs[model] = cost
total += cost

return {"breakdown": costs, "total": total}

def generate_report(self) -> dict:
"""Générer un rapport de coût mensuel."""
report = {}
for team_id in self.usage:
report[team_id] = self.calculate_cost(team_id)
return report

Cadre de gouvernance​

AspectPolitiqueMise en œuvre
Contrôle d'accèsAccès basé sur les rôlesIAM, clés API
Limites d'utilisationQuotas par équipeLimitation de débit, budgets
Accès aux modèlesModèles approuvés uniquementListe blanche de modèles
Gestion des donnéesRestrictions PIIFiltrage des entrées/sorties
AuditToutes les interactions enregistréesJournalisation centralisée

Suivant : Quiz Module 14