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
| Aspect | Politique | Mise en œuvre |
|---|---|---|
| Contrôle d'accès | Accès basé sur les rôles | IAM, clés API |
| Limites d'utilisation | Quotas par équipe | Limitation de débit, budgets |
| Accès aux modèles | Modèles approuvés uniquement | Liste blanche de modèles |
| Gestion des données | Restrictions PII | Filtrage des entrées/sorties |
| Audit | Toutes les interactions enregistrées | Journalisation centralisée |
Suivant : Quiz Module 14