← La droguerie

Les proxys API

UNE LIGNE À CHANGER. C'EST TOUT.

Changez l'URL de base de votre SDK. Chaque bloc image est optimisé en vol, le reste de la requête passe tel quel. Votre code ne bouge pas ; votre facture, si.

Votre appvotre codeL'Économeimages allégéesL'IAClaude / OpenAI…

DROP-IN, DEUX FORMATS

Format Anthropic

from anthropic import Anthropic

client = Anthropic(
  base_url="https://votre-domaine/api/proxy"
)
# vos appels ne changent pas

Format OpenAI (Mistral, Gemini, local…)

from openai import OpenAI

client = OpenAI(
  base_url="https://votre-domaine/api/proxy/v1"
)
# vos appels ne changent pas

VOTRE CONFIG, PRÉPARÉE PAR LA MAISON

Dites-nous quelle IA vous appelez et où vit votre proxy — la maison écrit les variables d'environnement, le code et le test, avec les bonnes valeurs. Plus rien à adapter.

Votre IA :

1 · Les variables de votre proxy

PROXY_UPSTREAM_URL=https://api.anthropic.com

2 · Votre code (une ligne change)

from anthropic import Anthropic

client = Anthropic(
  base_url="https://votre-domaine.vercel.app/api/proxy"
)
# vos appels ne changent pas

3 · La preuve (le reçu x-vto)

curl -s -D - https://votre-domaine.vercel.app/api/proxy/v1/messages \
  -H "x-api-key: $ANTHROPIC_API_KEY" ... | grep x-vto

Votre clé API ne passe que par VOTRE proxy — jamais par la droguerie.

L'ÉCONOMIE, ANNONCÉE

En-tête de réponse

x-vto-tokens-saved sur chaque réponse : combien de tokens l'image a fait économiser, mesuré.

Fidélité pilotée

Le plancher s'ajuste à l'intention du prompt : survol 0.85, exactitude 0.98. Au doute, l'image entière.

Zéro perte silencieuse

Format inhabituel ou échec d'analyse : l'original passe tel quel. Jamais de requête cassée.

DEUX RABAIS QUE VOUS NE VOYEZ PAS PASSER

Alléger l'image est notre métier. Mais deux économies vivent ailleurs — dans la mémoire du fournisseur et dans ses propres réglages. Le proxy sait les demander pour vous.

−74,4 % simulés

Ordonnance n° 1 — la mémoire du fournisseur

Le cache, posé pour vous

Dans une conversation, la même image repart à chaque tour — et vous la repayez à chaque tour. Le prompt cachingd'Anthropic la fait relire au tarif du souvenir. Ajoutez l'en-tête x-vto-cache: auto : le proxy pose le marqueur au bon endroit, dans les règles (quatre points de reprise au maximum, minimum cachable respecté modèle par modèle). Le verdict revient dans x-vto-cache-status.

# opt-in strict : sans l'en-tête, rien n'est injecté
client.messages.create(
  ...,
  extra_headers={"x-vto-cache": "auto"}
)
  • conversation de 10 tours, image re-envoyée44 751 tk
  • le proxy seul (image allégée)−31,6 %
  • le proxy + x-vto-cache: auto−74,4 %
  • du 4ᵉ au 10ᵉ tour~700 tk / tour

Honnêteté : ces chiffres sont une simulation (bench/cache_simulation.mjs), conduite aux règles documentées d'Anthropic — aucun appel réel, donc aucune facture à l'appui. Au passage, un vrai bug a été corrigé : un cache_control que VOUS posiez sur un bloc image était perdu à la réécriture. Il ne l'est plus. La maison ne casse jamais votre cache : elle réécrit vos images à l'octet près, toujours à l'identique.

Gemini : −46 % → −68 %

Ordonnance n° 2 — les réglages de la maison d'en face

Le bon bouton, image par image

Chez OpenAI, une image en detail: low coûte 256 tokens, forfait. Notre proxy le pose lui-même quand votre prompt demande un survol et que la fidélité jugée le permet — la décision est prise par image, toujours la même pour la même image (votre cache de préfixe tient).

Chez Gemini 3, réduire les pixels n'économise rien : le compteur est plat (1 120 tokens quelle que soit l'image). Le seul levier est media_resolution, et notre routeur sait dire, image par image, quel niveau tient ≥ 95 % de fidélité jugée : sur le corpus, −46,2 % → −68,0 % d'un seul paramètre.

  • OpenAI · detail: lowposé par le proxy
  • Gemini · media_resolutionà poser via l'API native
  • texte, code, facturesjamais dégradés

Honnêteté : carte de fidélité établie sur 138 jugements (juge indépendant) de vues simulées— pas encore de facture réelle à montrer. Et l'endpoint Gemini compatible OpenAI ne prend pas encore media_resolution: tant qu'il ne le prend pas, le proxy ne le promet pas dans ses compteurs — posez-le via l'API native, la carte est publiée dans bench/REGLAGES_NATIFS.md.

DEUX ENDPOINTS, PRÊTS

POST /api/proxy/v1/messages          (format Anthropic)
POST /api/proxy/v1/chat/completions  (format OpenAI)
Voir les mesures →

Continuer la visite