Aller au contenu principal

Chapitre 3 : Construire des applications avec les LLM

Modèles d'architecture​

  1. Complétion simple : Appels d'API directs
  2. RAG : Récupérer → Augmenter → Générer
  3. Agents : Planifier → Exécuter → Observer
  4. Chaînes : Composer plusieurs appels LLM

Gestion des erreurs​

import time
from openai import RateLimitError, APIError

def call_with_retry(func, max_retries=3):
for attempt in range(max_retries):
try:
return func()
except RateLimitError:
wait = 2 ** attempt
time.sleep(wait)
except APIError as e:
if attempt == max_retries - 1:
raise
return None

Mise en cache​

import hashlib
from functools import lru_cache

@lru_cache(maxsize=1000)
def cached_completion(prompt_hash):
return client.chat.completions.create(...)

def get_completion(prompt):
hash_key = hashlib.md5(prompt.encode()).hexdigest()
return cached_completion(hash_key)

Gestion des coûts​

# Suivre l'utilisation des jetons
total_tokens = 0
for response in responses:
total_tokens += response.usage.total_tokens

# Estimer le coût (exemple GPT-4)
cost = (total_tokens / 1000) * 0.03 # Par 1K jetons