flexway
FRENParler à un expert

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

  1. ExposerUne surface compatible OpenAI devant vos fournisseurs et vos modèles
  2. BudgéterJetons et euros par tenant, plafond souple puis plafond dur
  3. RouterVers un modèle moins cher, ou interne pour une requête sensible
  4. 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.

Ouvrir ce modèle dans l'éditeur

Configuration

L'exemple ai-cost, tel qu'il est livré avec Flexway v1.6.3.

examples/ai-cost/flexway.yaml
# 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 tenantLivré · v0.1.0
Routage par politique entre fournisseurs et modèlesLivré · v0.1.0
Requêtes sensibles épinglées, souveraineté et repli par politiqueLivré · v0.1.0
Audit de métadonnées, jamais d'inviteLivré · v0.1.0
Backends par genre (OpenAI, relais, gRPC), mesure locale ou amontLivré · v1.5.0
Cache sémantique, par opérationPrévu

Pour aller plus loin

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.