Documentation Index
Fetch the complete documentation index at: https://wb-21fd5541-john-wbdocs-2044-rename-serverless-products.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Suivez ces bonnes pratiques pour gérer efficacement les erreurs de W&B Inference et garantir la fiabilité de vos applications.
1. Implémentez toujours une gestion des erreurs
Encapsulez les appels d’API dans des blocs try-except :
import openai
try:
response = client.chat.completions.create(
model="meta-llama/Llama-3.1-8B-Instruct",
messages=messages
)
except Exception as e:
print(f"Error: {e}")
# Gérer l'erreur de façon appropriée
2. Utilisez une logique de nouvelle tentative avec backoff exponentiel
import time
from typing import Optional
def call_inference_with_retry(
client,
messages,
model: str,
max_retries: int = 3,
base_delay: float = 1.0
) -> Optional[str]:
for attempt in range(max_retries):
try:
response = client.chat.completions.create(
model=model,
messages=messages
)
return response.choices[0].message.content
except Exception as e:
if attempt == max_retries - 1:
raise
# Calculer le délai avec un backoff exponentiel
delay = base_delay * (2 ** attempt)
print(f"Tentative {attempt + 1} échouée, nouvelle tentative dans {delay}s...")
time.sleep(delay)
return None
3. Surveillez votre utilisation
- Suivez l’utilisation des crédits sur la page Billing de W&B
- Configurez des alertes avant d’atteindre les limites
- Enregistrez l’utilisation de l’API dans votre application
4. Gérez les codes d’erreur spécifiques
def handle_inference_error(error):
error_str = str(error)
if "401" in error_str:
# Authentification invalide
raise ValueError("Vérifiez votre clé API et la configuration du projet")
elif "402" in error_str:
# Crédits insuffisants
raise ValueError("Crédits insuffisants")
elif "429" in error_str:
# Limite de débit atteinte
return "retry"
elif "500" in error_str or "503" in error_str:
# Erreur serveur
return "retry"
else:
# Erreur inconnue
raise
5. Définissez des délais d’expiration adaptés
Configurez des délais d’expiration raisonnables pour votre cas d’utilisation :
# Pour les réponses plus longues
client = openai.OpenAI(
base_url='https://api.inference.wandb.ai/v1',
api_key="your-api-key",
timeout=60.0 # délai d'expiration de 60 secondes
)
- Journalisez les erreurs avec un horodatage pour faciliter le débogage
- Utilisez des opérations asynchrones pour mieux gérer la concurrence
- Implémentez des disjoncteurs pour les systèmes de production
- Mettez les réponses en cache lorsque c’est pertinent afin de réduire les appels à l’API
Inférence