Passer au contenu principal

Vue d’ensemble

LemonData met en place des limites de débit afin de garantir une utilisation équitable et la stabilité de la plateforme. Les limites varient selon le niveau de compte.

Niveaux de limites de débit

NiveauRequêtes/minDescription
Utilisateur1,000Niveau par défaut pour tous les comptes
Partenaire3,000Pour les partenaires d’intégration
VIP10,000Utilisateurs à fort volume
Les limites de débit sont susceptibles d’être modifiées. Contactez [email protected] pour des limites personnalisées.

Réponse de limite de débit

Lorsque vous dépassez la limite de débit, l’API renvoie un code de statut 429 avec un header Retry-After indiquant combien de temps attendre avant de réessayer.

Limite de débit dépassée

Lorsque vous dépassez la limite, vous recevrez une réponse 429 :
{
  "error": {
    "message": "Rate limit exceeded. Please retry later.",
    "type": "rate_limit_exceeded",
    "code": "rate_limit_exceeded"
  }
}
La réponse inclut un header Retry-After :
Retry-After: 60  # Seconds to wait before retrying

Gestion des limites de débit

Backoff exponentiel

Implémentez un backoff exponentiel pour les nouvelles tentatives automatiques :
import time
from openai import OpenAI, RateLimitError

client = OpenAI(
    api_key="sk-your-api-key",
    base_url="https://api.lemondata.cc/v1"
)

def make_request_with_backoff(messages, max_retries=5):
    for attempt in range(max_retries):
        try:
            return client.chat.completions.create(
                model="gpt-4o",
                messages=messages
            )
        except RateLimitError as e:
            if attempt == max_retries - 1:
                raise

            wait_time = 2 ** attempt  # 1, 2, 4, 8, 16 seconds
            print(f"Rate limited. Waiting {wait_time}s...")
            time.sleep(wait_time)

Mise en file d’attente des requêtes

Pour les applications à fort volume, implémentez une file d’attente des requêtes :
import asyncio
from collections import deque

class RateLimitedClient:
    def __init__(self, requests_per_minute=60):
        self.rpm = requests_per_minute
        self.interval = 60 / requests_per_minute
        self.last_request = 0

    async def request(self, messages):
        # Wait if needed to respect rate limit
        now = asyncio.get_event_loop().time()
        wait_time = max(0, self.last_request + self.interval - now)
        if wait_time > 0:
            await asyncio.sleep(wait_time)

        self.last_request = asyncio.get_event_loop().time()
        return await self.client.chat.completions.create(
            model="gpt-4o",
            messages=messages
        )

Traitement par lots

Pour les opérations en masse, effectuez le traitement par lots avec des délais :
def process_batch(items, batch_size=50, delay=1):
    results = []
    for i in range(0, len(items), batch_size):
        batch = items[i:i + batch_size]
        for item in batch:
            result = client.chat.completions.create(
                model="gpt-4o",
                messages=[{"role": "user", "content": item}]
            )
            results.append(result)
        time.sleep(delay)  # Pause between batches
    return results

Bonnes pratiques

Suivez les headers de limite de débit pour rester de manière proactive sous les limites.
Mettez les réponses en cache pour les requêtes identiques afin de réduire les appels API.
Les modèles plus rapides (comme gpt-5-mini) permettent un débit plus élevé.
Si vous avez besoin de limites plus élevées, contactez [email protected].

Mettre à niveau votre niveau

Pour demander une mise à niveau de niveau :
  1. Connectez-vous à votre Dashboard
  2. Allez dans Settings → Account
  3. Contactez le support avec votre cas d’usage
Ou envoyez un email à [email protected] avec :
  • L’email de votre compte
  • Le volume de requêtes attendu
  • Une description du cas d’usage