Documentation Index
Fetch the complete documentation index at: https://wb-21fd5541-docs-1917.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 Serverless 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 manière 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"Attempt {attempt + 1} failed, retrying in {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érer les codes d’erreur spécifiques
def handle_inference_error(error):
error_str = str(error)
if "401" in error_str:
# Authentification invalide
raise ValueError("Check your API key and project configuration")
elif "402" in error_str:
# Crédits insuffisants
raise ValueError("Insufficient credits")
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