Skip to main content

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
)

Conseils supplémentaires

  • 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