Maîtriser la facture d'IA
Tenir la facture d'IA, tenant par tenant.
Les quotas sont en jetons et en euros, par tenant, avec un plafond souple qui avertit ou route vers un modèle moins cher, puis un plafond dur. La consommation par tenant se lit dans la console, sans que l'invite soit jamais journalisée.
Le trajet
- ExposerUne surface compatible OpenAI devant vos fournisseurs et vos modèles
- BudgéterJetons et euros par tenant, plafond souple puis plafond dur
- RouterVers un modèle moins cher, ou interne pour une requête sensible
- RestituerConsommation par tenant dans la console, audit sans invite
La dépense s'arrête à la passerelle, avant le fournisseur : un dépassement devient une réponse claire, pas une ligne de facture.
Configuration
L'exemple ai-cost, tel qu'il est livré avec Flexway v1.6.3.
# What inference costs, and what happens when a backend fails: prices declared per backend, a
# monthly budget in euros per tenant beside the token budget, a soft cap that warns and moves the
# call to a cheaper backend, and fallbacks tried in order before any byte reaches the client - never
# an external one for a sensitive request.
version: 1
auth:
issuers:
- name: customers
discovery: https://login.example.net/.well-known/openid-configuration
audience: api
tenant_claim: org
ai:
security:
- oidc: { scopes: [inference] }
sensitive_header: X-Sensitive
default_backend: eu-large
sensitive_backend: on-prem
backends:
eu-large:
url: https://api.provider.example/v1
api_key: "file:/etc/flexway/secrets/provider-key"
default_model: mistral-large
external: true
price: { input_per_mtok: 2.00, output_per_mtok: 6.00 } # euros per million tokens
fallback: [eu-small, on-prem] # in order, on connection failure, 5xx, timeout
eu-small:
url: https://api.provider.example/v1
api_key: "file:/etc/flexway/secrets/provider-key"
default_model: mistral-small
external: true
price: { input_per_mtok: 0.10, output_per_mtok: 0.30 }
fallback: [on-prem]
on-prem:
url: http://vllm.inference.svc:8000/v1
default_model: mistral-7b-instruct
price: { input_per_mtok: 0, output_per_mtok: 0 } # 0 is a price: internal
budget:
store: "${COUNTERS_URL}"
monthly_tokens: 40000000 # both budgets hold: the first reached decides
monthly_eur: 50 # per tenant, over the calendar month
soft: { at: 0.8, backend: eu-small } # past 80 %: Flexway-Budget: soft, moved to eu-small
overrides:
- { match: { tenant: acme }, monthly_eur: 500 }Fonctionnalités
Ce qui est livré dans la version publiée v1.6.3, et ce qui vient ; une fonctionnalité n'est jamais présentée comme livrée avant sa version.
| Fonctionnalité | Statut |
|---|---|
| Surface compatible OpenAI /v1/* | Livré · v0.1.0 |
| Budget et débit par tenant | Livré · v0.1.0 |
| Routage par politique entre fournisseurs et modèles | Livré · v0.1.0 |
| Requêtes sensibles épinglées, souveraineté et repli par politique | Livré · v0.1.0 |
| Audit de métadonnées, jamais d'invite | Livré · v0.1.0 |
| Backends par genre (OpenAI, relais, gRPC), mesure locale ou amont | Livré · v1.5.0 |
| Cache sémantique, par opération | Prévu |
Pour aller plus loin
- Ouvrir ce modèle dans l'éditeurVotre architecture, son flexway.yaml et ses décisions simulées, dans le navigateur.
- Chiffrer votre budget d'IAUn mois de trente jours pour un tenant : le jour du seuil souple, celui du plafond, et le bloc ai.budget écrit avec vos valeurs.
- Le guidePas à pas, dans la documentation de la version publiée
- IABudgets en jetons et en euros, repli, souveraineté
- ExploitationOpenTelemetry, console, propositions en pull request
Parlons de votre passerelle
Flexwiz est une jeune entreprise : vous parlez directement avec la personne qui la fonde. Dites-nous ce que vous voulez faire passer par Flexway. Nous parlons de votre infrastructure et de vos exigences de souveraineté numérique.
La prise de rendez-vous en ligne arrive bientôt ; d'ici là, un e-mail suffit.