For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Navigation principale
Theme

Optimisation des coûts

Comprenez comment GPT-Live et la Realtime API mesurent l’utilisation des sessions vocales et maîtrisez vos coûts.

Choisissez votre API pour comprendre comment elle mesure l’utilisation et découvrir comment maîtriser les coûts de votre application vocale.

Utilisation et coûts de GPT-Live

GPT-Live sépare la conversation vocale du backend qui assure le raisonnement et exécute les outils. Estimez les deux coûts séparément. Le coût de la session vocale dépend de sa durée, tandis que celui du backend dépend des modèles et des outils utilisés.

Coût des sessions vocales

GPT-Live facture les sessions vocales à la seconde, au tarif en vigueur pour le modèle. La durée de la session n’est pas arrondie à la minute supérieure.

La durée de la session active comprend les moments où l’utilisateur parle, où l’assistant parle, où tous deux gardent le silence et où le backend travaille.

Pour vos estimations, comptez toute la durée de la session active, du démarrage à la fermeture. Utilisez la durée indiquée par l’API plutôt que de chronométrer uniquement l’audio diffusé. Couper le microphone ne ferme pas la session. Une fois la conversation terminée, fermez la session et récupérez son relevé d’utilisation final.

Consultez les tarifs de l’API pour connaître les prix des modèles et des outils utilisés par le backend.

Frais d’initialisation WebRTC

Lorsqu’une requête POST /v1/live/sessions crée une session WebRTC, 15 secondes de session vocale sont facturées pendant l’initialisation. Une fois la session démarrée, ce montant est déduit des frais calculés sur sa durée. Pour estimer son coût, n’ajoutez pas 15 secondes à la durée de la session en cours.

Par exemple, les 90 secondes de la session décrite ci-dessous comprennent déjà les 15 secondes facturées à l’initialisation. La durée facturée est donc de 90 secondes et non de 105. Tenez compte des frais de création de session lorsque vous évaluez le coût des reconnexions ou des applications qui créent des sessions avant que l’utilisateur soit prêt à parler.

Coûts du backend

Les appels du backend sont facturés séparément de la session vocale, comme dans les applications sans interface vocale. Comptabilisez les tokens d’entrée et de sortie du modèle, les tokens d’entrée mis en cache si le modèle le permet, ainsi que les frais éventuels liés aux images ou aux outils. Si votre application fait appel à d’autres services, incluez également leur coût dans votre estimation.

Vous pouvez optimiser ces traitements indépendamment de l’interface vocale. Consultez le guide d’optimisation des coûts pour réduire le nombre de requêtes et la consommation de tokens. Pour les modèles du backend compatibles avec la mise en cache des prompts, placez les instructions réutilisables, les définitions d’outils et les autres contenus stables au début du prompt.

Les choix que vous faites pour le backend peuvent aussi modifier la durée de la conversation. Comparez les coûts totaux si une optimisation prolonge l’attente de l’utilisateur ou influe sur la capacité de l’assistant à mener la tâche à bien de façon fiable.

Estimation du coût d’une conversation

Pour une conversation comportant une seule session vocale :

Coût total = (secondes de session vocale facturables ÷ 60 × tarif vocal à la minute) + coûts du backend

Par exemple, avec un tarif vocal indicatif de 0,05 $ par minute, une session vocale de 90 secondes coûte 0,075 $. Si les frais liés au modèle et aux outils du backend s’élèvent à 0,02 $, la conversation coûte 0,095 $ :

Poste Calcul Coût
Session vocale 90 secondes ÷ 60 × 0,05 $ 0,075 $
Traitements du backend Coût total du modèle et des outils 0,02 $
Total de la conversation 0,075 $ + 0,02 $ 0,095 $

Les tarifs et le coût du backend ci-dessus sont donnés à titre d’exemple. Utilisez le tarif vocal en vigueur, les données d’utilisation mesurées sur votre backend et les tarifs applicables aux modèles et aux outils. Si la tâche s’étend sur plusieurs sessions vocales, additionnez leurs durées et comptabilisez les traitements effectués par le backend entre les sessions.

Stratégies d’optimisation

Aidez l’utilisateur à terminer sa tâche en limitant les échanges et les temps d’attente inutiles. Conservez les confirmations et les vérifications nécessaires à la tâche.

Fournissez le contexte pertinent avant la session

Avant de démarrer la session vocale, rassemblez les informations que votre application est déjà autorisée à utiliser. Par exemple, un assistant chargé du suivi d’une commande peut disposer dès le départ de son numéro et de son statut actuel. L’utilisateur n’a alors besoin ni de répéter ces informations ni d’attendre une nouvelle recherche.

Gardez ce contexte à jour et limitez-le aux informations pertinentes pour la tâche. Donnez au modèle vocal les informations nécessaires à la conversation et conservez les dossiers détaillés et les workflows dans le backend. Consultez la configuration des sessions et le guide sur la délégation et les outils.

Réduisez le temps d’attente lié aux outils

Réduire l’attente peut améliorer l’expérience utilisateur et diminuer le coût des sessions vocales. Supposons par exemple que votre backend utilise gpt-5.6-luna en mode Rapide et exécute en parallèle les appels d’outils indépendants. Si ces optimisations permettent à l’utilisateur de terminer sa tâche et de fermer la session vocale une minute plus tôt, vous économisez 0,05 $ sur les frais de la session vocale. Le coût total diminue si le surcoût du backend est inférieur à cette économie.

Vous pouvez aussi lancer une recherche spéculative à partir de fragments de transcription avant de recevoir un événement de délégation. Lorsque vous mesurez les coûts du backend, comptabilisez aussi les traitements spéculatifs dont le résultat n’a pas servi.

Consultez la section Réduisez la latence du backend pour optimiser le modèle, les connexions, le streaming et les outils. À l’aide des évaluations d’agents vocaux, vérifiez le délai avant que l’utilisateur entende une réponse utile et mesurez le taux de réussite des tâches.

Fermez la session pendant les tâches de longue durée

L’interface vocale et le backend géré par votre application peuvent fonctionner indépendamment. Avec la délégation côté client, le processus de traitement du backend peut continuer à s’exécuter que la session vocale soit ouverte ou fermée. Enregistrez l’état de la tâche et le contexte de la conversation avant de fermer la session vocale.

Pour configurer le délai d’inactivité, définir ce qui déclenche le redémarrage et restaurer le contexte, consultez la section Fermez les sessions inactives et reprenez la conversation.

Dans le cas d’un agent ambiant, fermez la session vocale pendant que le backend exécute une tâche de longue durée, par exemple une tâche de programmation en mode objectif. Proposez un bouton Reprendre la conversation pour ouvrir une nouvelle session vocale au retour de l’utilisateur. Vous pouvez aussi utiliser un événement de fin de tâche émis par le backend pour démarrer une nouvelle session et avertir l’utilisateur que le résultat est prêt.

Pour reprendre la conversation, démarrez une nouvelle session en plaçant le contexte enregistré et le résultat vérifié de la tâche dans input. Par exemple, envoyez cet événement de démarrage sur une nouvelle connexion WebSocket :

{
  "type": "session.start",
  "session": {
    "model": "gpt-live-1",
    "instructions": "Help the user review completed work and delegate follow-up tasks.",
    "input": [
      {
        "type": "message",
        "role": "developer",
        "content": [
          {
            "type": "input_text",
            "text": "Saved task: add CSV export. Result: code is ready for review."
          }
        ]
      }
    ],
    "delegation": { "type": "client" }
  }
}

Attendez l’événement session.started avant de transmettre l’audio en continu. La section Initialisez une session avec une conversation antérieure décrit le format d’historique pris en charge.

Si la session précédente a été enregistrée avec store: true, vous pouvez également forker cette session. Quelle que soit la méthode utilisée, conservez dans votre application l’état vérifié de la tâche exécutée par le backend.

Fermer la session permet d’économiser 0,05 $ par minute d’inactivité. Mettez cette économie en regard des frais de reconnexion et de l’interruption que subit l’utilisateur.

Choisissez le modèle adapté au backend

Commencez par sélectionner les modèles qui répondent aux exigences de précision et de fiabilité de la tâche. Comparez ensuite le coût total de la conversation en tenant compte de la durée de la session vocale, de l’utilisation du modèle, des appels d’outils et des nouvelles tentatives. Le guide de sélection des modèles explique comment arbitrer entre ces critères.

Un modèle de backend plus grand peut revenir moins cher au total s’il termine la tâche plus vite et que les économies sur la session vocale dépassent le surcoût des tokens. Un modèle moins cher peut revenir plus cher au total s’il prend plus de temps, répète des appels d’outils ou échoue.

Comparez le coût par tâche réussie, le taux de réussite et le temps nécessaire pour terminer la tâche. Incluez dans le total les tentatives infructueuses et les nouvelles tentatives pour éviter de favoriser une configuration moins chère simplement parce qu’elle accomplit moins de travail. Pour préparer votre comparaison, consultez l’exemple du Cookbook sur l’évaluation des agents vocaux.

Suivi de l’utilisation réelle

Pour chaque session, enregistrez séparément la durée de la session vocale et les données d’utilisation du backend. GPT-Live indique la durée cumulée de la session vocale en secondes :

{
  "type": "session.usage.updated",
  "event_id": "event_usage_1",
  "usage": { "seconds": 12 },
  "context_window": { "usage_ratio": 0.42 }
}

Chaque mise à jour remplace le relevé de durée précédent. N’additionnez pas ces relevés. Après avoir envoyé session.close, continuez à recevoir les événements jusqu’à session.closed, puis enregistrez une seule fois la valeur finale de usage.seconds fournie par cet événement. Suivez la procédure de fermeture propre pour que votre application récupère les données d’utilisation finales avant de se déconnecter.

Pour la délégation via Responses, récupérez le champ usage de la réponse du backend dans les événements response.completed imbriqués dans response.event. Utilisez l’identifiant de chaque réponse du backend pour ne la compter qu’une fois. Conservez le détail des tokens d’entrée, de sortie et mis en cache afin d’appliquer les tarifs du modèle. Si votre application exécute des traitements indépendants sur le backend, recueillez aussi les données d’utilisation des requêtes correspondantes.

Comparez les coûts totaux estimés et réels sur un échantillon représentatif de conversations. Comptabilisez séparément les appels de modèle réservés aux évaluations et ceux de l’application. Examinez les coûts en tenant compte du taux de réussite des tâches.