Menu

J'ai coupé la facture de l'API LLM de 70% : AirAi Real Battle Notes pour le routage + cache

0. Context : Comment les factures ont-elles explosé en coûts ?

Je travaille sur plusieurs projets parallèles (side projects). Au début, je devais soit payer le forfait officiel de 20 $ par mois, soit essayer de passer par une carte de crédit internationale, mais les demandes étaient rejetées. Lors du bilan de fin de mois, j’ai découvert deux choses déplaisantes :

  1. 80 % des demandes étaient des tâches simples telles que la résumé, la classification et le formatage ; utiliser le modèle le plus coûteux était purement un gaspillage ;

  1. Le forfait est un coût fixe : il entraîne des pertes lorsque les appels sont rares, et il n’est pas suffisant lorsque les appels sont fréquents.

J'ai donc opté pour AirAi : j'ai utilisé ma propre clé API, avec un paiement à la quantité consommée, et j'ai orienté le client vers son interface compatible avec OpenAI.

Il y a aussi une petite anecdote à ce sujet. J’ai toujours manqué de cartes de crédit internationales décentes, et chaque fois que je tentais de payer en utilisant une carte directement connectée aux services officiels, j’étais rejeté. Pendant un certain temps, j’ai utilisé la carte d’un membre de ma famille, mais cela a déclenché des mesures de contrôle de risque et mon compte a été bloqué. Il a fallu près de deux semaines pour que le problème soit résolu après que j’ai déposé une réclamation. Depuis, j’ai décidé de ne pas utiliser que des canaux qui ne dépendent pas de cartes internationales. Le portail que j’ai finalement choisi ne prend en charge que l’USDT, ce qui est pour quelqu’un comme moi qui n’a pas de carte internationale le niveau d’accès le plus bas : on peut y charger de l’argent et l’utiliser immédiatement, il n’y a pas de frais mensuels, et il n’est pas nécessaire de passer par une procédure de vérification d’identité (KYC). Le plus important, c’est le prix : d’après mes calculs, le coût unitaire est environ un tiers de celui des paiements directs via les services officiels, et c’est vraiment la raison pour laquelle j’ai choisi ce portail.

1. Changement de gateway en une seule ligne : Pointez vers n'importe quel gateway compatible.

Presque tous les clients qui prennent en charge des endpoints personnalisés (Claude Code, Cursor, Open WebUI, LibreChat, Cline…) peuvent changer de gateway en utilisant une seule variable d'environnement, sans avoir à modifier le code. Il suffit de pointer les deux variables suivantes vers votre propre gateway :

export OPENAI_BASE_URL="https://api.airai.cc/v1"
export ANTHROPIC_BASE_URL="https://api.airai.cc/v1"

Le choix du gateway est une autre question ; cet article se concentre uniquement sur la méthode de mise en œuvre.

2. Pratique du code : Routage + Cache.

Il ne suffit pas de simplement changer la source de lumière ; ce qui permet vraiment d’économiser de l’argent, c’est de “faire faire au bon modèle le travail approprié + de mettre en cache les demandes répétées”. Voici le squelette que j’utilise dans ma production (compatible avec l’OpenAI SDK) : base_url et api_key sont lus à partir des variables d’environnement, et ne sont pas fixés dans le code :

import openai, hashlib, os

client = openai.OpenAI(
    base_url=os.getenv("OPENAI_BASE_URL"),
    api_key=os.getenv("OPENAI_API_KEY"),
)

# Routing: small model for light tasks, flagship only for complex reasoning
CHEAP  = "gpt-5.6-luna"   # classification / summarization / formatting
STRONG = "gpt-5.6-sol"    # only called for complex reasoning

_cache: dict[str, str] = {}   # swap for Redis in production

def ask(prompt: str) -> str:
    model = STRONG if len(prompt) > 400 else CHEAP
    key = hashlib.md5(prompt.encode()).hexdigest()
    if key in _cache:                      # cache hit, 0 cost
        return _cache[key]
    resp = client.chat.completions.create(
        model=model,
        messages=[{"role": "user", "content": prompt}],
    )
    answer = resp.choices[0].message.content
    _cache[key] = answer
    return answer

CHEAP / STRONG Réglez cela en fonction de votre budget et des résultats souhaités. Le nom du modèle doit correspondre aux documents de votre gateway. N'oubliez pas d'utiliser l'interface Batch pour les tâches hors ligne, cela peut généralement vous permettre d'économiser encore la moitié des coûts.

3. Comparaison des coûts (illustrative)

Avant et après la transformationIllustrationDonnées (les chiffres réels doivent correspondre à vos factures) :

Projet

Abonnement officiel / Connexion directe

AirAi + Cache de routage

Mode de facturation

Tarif mensuel fixe / Prix officiel

Facturation à l'utilisation

Modèle léger

Modèle phare (plus coûteux)

Petits modèles (plus économiques)

Demandes répétées

Récalculation du prix à prix plein

Aucun coût pour les mises en cache réussies

Coût de l’expérience utilisateur

Référence : 100 %

Environ 10–30 % (en fonction du nombre de demandes)

4. Honnêteté (parler franchement)

  • Ce n’est pas toujours plus avantageux pour tout le monde :L’abonnement fixe peut être plus rentable lorsque le nombre de demandes mensuelles est très faible ; le paiement à la demande présente un avantage uniquement lorsque le nombre de demandes est élevé. Calculez d’abord votre propre volume de demandes.

  • Retard et stabilité :L’ajout d’un autre gateway entraîne un léger retard, ainsi que des problèmes de timeout et de dégradation des performances sur les chemins clés.

  • Sécurité des clés :Placez les clés dans des variables d’environnement, et ne les stockez pas de manière fixe dans le front-end ou dans des repositories publics.

5. Résumé

L'essence de réduire les coûts des modèles LLM peut être résumée en une phrase : faire en sorte que les modèles moins chers effectuent la plupart des tâches, que les modèles plus coûteux ne soient utilisés que lorsque c'est nécessaire, et éliminer tout gaspillage de ressources (token). changer "faire appel à N fournisseurs" en "modifier une seule ligne de code" (base_url"). Les routages et la mise en cache sont deux outils gratuits ; commençons par les mettre en place.


Cela vous a-t-il aidé ?

Support techniqueAssistance en ligne
侧栏
Haut de page
简体中文ZH-CNDefault繁體中文ZH-TWEnglishEN日本語JA한국어KOภาษาไทยTHTiếng ViệtVIBahasa IndonesiaIDEspañolESFrançaisFRDeutschDEРусскийRUPortuguêsPTItalianoITالعربيةAR