Ce guide présente un ensemble complet de bonnes pratiques pour vous aider à passer du prototype à la production. Que vous soyez spécialiste du machine learning ou que vous découvriez le domaine, il devrait vous fournir les outils nécessaires pour exploiter efficacement la plateforme en production : de la sécurisation de l’accès à notre API à la conception d’une architecture robuste capable de gérer un trafic élevé. Appuyez-vous sur ce guide pour préparer un déploiement aussi fluide et efficace que possible de votre application.
Pour approfondir les bonnes pratiques de mise en production, regardez notre présentation du Developer Day :
Configuration de votre organisation
Après vous être connecté à votre compte OpenAI, vous pouvez retrouver le nom et l’identifiant de votre organisation dans les paramètres de l’organisation. Le nom de l’organisation est le libellé affiché dans les interfaces utilisateur. L’identifiant de l’organisation est un identifiant unique que vous pouvez utiliser dans les requêtes API.
Les utilisateurs membres de plusieurs organisations peuvent transmettre un en-tête pour préciser quelle organisation utiliser pour une requête API. La consommation associée à ces requêtes est décomptée du quota de l’organisation indiquée. Si aucun en-tête n’est fourni, l’organisation par défaut est facturée. Vous pouvez modifier votre organisation par défaut dans vos paramètres utilisateur.
Vous pouvez inviter de nouveaux membres dans votre organisation depuis la page Équipe. Les membres peuvent avoir le rôle de lecteur ou de propriétaire.
Les lecteurs :
- Peuvent effectuer des requêtes API.
- Peuvent consulter les informations de base de l’organisation.
- Peuvent créer, mettre à jour et supprimer des ressources (comme les Assistants) dans l’organisation, sauf indication contraire.
Les propriétaires :
- Disposent de toutes les autorisations des lecteurs.
- Peuvent modifier les informations de facturation.
- Peuvent gérer les membres de l’organisation.
Gestion des limites de facturation
Une fois vos informations de facturation renseignées, OpenAI définit une limite d’utilisation autorisée pour votre organisation. Votre quota augmente automatiquement à mesure que votre utilisation de la plateforme progresse et que vous passez d’un palier d’utilisation à un autre. Vous pouvez consulter votre limite d’utilisation actuelle sur la page Limites dans les paramètres de votre compte.
Configurez des alertes de dépenses sur la page Limites pour recevoir des notifications lorsque la consommation dépasse un certain montant en dollars. Pour imposer un plafond mensuel, définissez une limite de dépenses stricte. Ces limites bloquent le trafic API concerné lorsque les dépenses suivies atteignent le plafond. Consultez donc le guide des limites de dépenses avant d’en activer une en production.
Clés API
L’API OpenAI utilise des clés API pour l’authentification. Rendez-vous sur votre page Clés API pour récupérer la clé à utiliser dans vos requêtes.
Cette méthode de contrôle d’accès est relativement simple, mais vous devez veiller à bien protéger ces clés. Évitez d’exposer vos clés API dans votre code ou dans des dépôts publics ; stockez-les dans un emplacement sécurisé. Mettez-les à la disposition de votre application au moyen de variables d’environnement ou d’un service de gestion des secrets, afin de ne pas avoir à les coder en dur dans votre base de code. Pour en savoir plus, consultez nos bonnes pratiques de sécurité des clés API.
Nous vous recommandons vivement de définir une date d’expiration lors de la création d’une clé API de projet et de mettre en place un processus de rotation régulière des clés. Avant qu’une clé n’expire, créez une clé de remplacement, mettez à jour vos applications pour qu’elles l’utilisent, puis révoquez l’ancienne clé après avoir vérifié que la nouvelle fonctionne.
Les administrateurs peuvent imposer une durée de validité maximale aux clés API au niveau de l’organisation ou du projet dans les paramètres de la plateforme. Les nouvelles clés doivent expirer dans le délai configuré, ce qui les empêche de rester valides indéfiniment. Les limites des projets ne peuvent pas dépasser celle de l’organisation.
La section Gouvernance des clés API des paramètres de la plateforme permet aux administrateurs d’organisations et de projets de restreindre les types de clés API pouvant être créées. Les administrateurs peuvent autoriser uniquement les clés de comptes de service, autoriser uniquement les clés de projet appartenant à des utilisateurs ou désactiver toute création de clés API. Les restrictions définies au niveau de l’organisation prévalent toujours : les paramètres du projet peuvent ajouter des restrictions, mais ne peuvent pas assouplir celles de l’organisation. Ces contrôles s’appliquent uniquement à la création de nouvelles clés ; les clés API existantes ne sont pas affectées.
Vous pouvez consulter la consommation associée aux clés API sur la page Utilisation une fois le suivi activé. Si vous utilisez une clé API générée avant le 20 décembre 2023, le suivi n’est pas activé par défaut. Vous pouvez l’activer pour les utilisations futures depuis le tableau de bord de gestion des clés API. Le suivi est activé pour toutes les clés API générées après le 20 décembre 2023. Toute consommation antérieure non suivie apparaît sous le libellé Untracked dans le tableau de bord.
Projets de préproduction
À mesure que votre application se développe, vous pouvez envisager de créer des projets distincts pour vos environnements de préproduction et de production. Vous pouvez créer ces projets dans le tableau de bord pour isoler vos travaux de développement et vos tests, et ainsi éviter de perturber accidentellement votre application en service. Vous pouvez également restreindre l’accès des utilisateurs à votre projet de production et définir des limites de débit et de dépenses propres à chaque projet.
Mise à l’échelle de l’architecture de votre solution
Lorsque vous concevez une application ou un service destiné à la production qui utilise notre API, il est important de prévoir sa mise à l’échelle pour répondre aux besoins liés au trafic. Quel que soit le fournisseur de services cloud choisi, vous devrez prendre en compte quelques aspects essentiels :
- Mise à l’échelle horizontale : vous pouvez envisager une mise à l’échelle horizontale de votre application pour traiter les requêtes provenant de plusieurs sources. Cela peut passer par le déploiement de serveurs ou de conteneurs supplémentaires afin de répartir la charge. Si vous choisissez cette approche, assurez-vous que votre architecture est conçue pour gérer plusieurs nœuds et que des mécanismes permettent d’équilibrer la charge entre eux.
- Mise à l’échelle verticale : une autre option consiste à augmenter les ressources disponibles sur un seul nœud. Cela implique de renforcer les capacités de votre serveur pour absorber la charge supplémentaire. Si vous choisissez cette approche, assurez-vous que votre application est conçue pour tirer parti de ces ressources supplémentaires.
- Mise en cache : en stockant les données fréquemment consultées, vous pouvez réduire les temps de réponse sans multiplier les appels à notre API. Votre application devra être conçue pour utiliser les données en cache chaque fois que possible et invalider le cache lorsque de nouvelles informations sont ajoutées. Vous pouvez, par exemple, stocker les données dans une base de données, un système de fichiers ou un cache en mémoire, selon ce qui convient le mieux à votre application.
- Équilibrage de charge : enfin, envisagez des techniques d’équilibrage de charge pour répartir uniformément les requêtes entre vos serveurs disponibles. Vous pouvez, par exemple, placer un équilibreur de charge devant vos serveurs ou utiliser le DNS round-robin. L’équilibrage de charge contribue à améliorer les performances et à réduire les goulets d’étranglement.
Gestion des limites de débit
Lorsque vous utilisez notre API, il est important de comprendre les limites de débit et d’en tenir compte dans votre conception.
Réduction de la latence
Consultez la version la plus récente de notre guide sur l’optimisation de la latence.
La latence est le temps nécessaire pour traiter une requête et renvoyer une réponse. Dans cette section, nous examinerons certains facteurs qui influencent la latence de nos modèles de génération de texte et proposerons des pistes pour la réduire.
La latence d’une requête de complétion dépend principalement de deux facteurs : le modèle et le nombre de tokens générés. Voici le cycle de vie d’une requête de complétion :
L’essentiel de la latence provient généralement de l’étape de génération des tokens.
Pour comprendre : les tokens du prompt ajoutent peu de latence aux appels de complétion. La génération des tokens de complétion prend beaucoup plus de temps, car ils sont générés un par un. Plus le texte généré est long, plus la latence s’accumule, chaque token nécessitant un temps de génération.
Facteurs courants de latence et techniques possibles pour la réduire
Maintenant que nous avons abordé les bases de la latence, examinons les différents facteurs qui peuvent l’influencer, classés globalement par ordre d’impact décroissant.
Modèle
Notre API propose différents modèles dont la complexité et la polyvalence varient. Les modèles les plus performants, comme gpt-6-astra, peuvent générer des complétions plus complexes et plus variées, mais mettent aussi plus de temps à traiter votre requête.
Des modèles comme gpt-5.6-terra et gpt-5.6-luna peuvent générer des réponses plus rapidement et à moindre coût, tandis que gpt-6-astra constitue un choix par défaut plus performant lorsque vous souhaitez disposer de capacités supplémentaires pour les tâches complexes. Vous pouvez choisir le modèle le mieux adapté à votre cas d’usage et au compromis recherché entre vitesse, coût et qualité.
Nombre de tokens de complétion
Demander des complétions comportant un grand nombre de tokens peut augmenter la latence :
- Réduisez le nombre maximal de tokens : pour des requêtes générant un nombre similaire de tokens, celles dont le paramètre
max_tokensest plus bas présentent une latence moindre. - Ajoutez des séquences d’arrêt : pour éviter de générer des tokens inutiles, ajoutez une séquence d’arrêt. Vous pouvez, par exemple, utiliser une séquence d’arrêt pour générer une liste contenant un nombre précis d’éléments. En utilisant
11.comme séquence d’arrêt, vous pouvez générer une liste de 10 éléments seulement, puisque la complétion s’arrête lorsque11.est atteint. Consultez notre article d’aide sur les séquences d’arrêt pour en savoir plus sur cette méthode. - Générez moins de complétions : réduisez les valeurs de
net debest_oflorsque c’est possible. Le paramètrencorrespond au nombre de complétions à générer pour chaque prompt, etbest_ofsert à retenir le résultat présentant la probabilité logarithmique par token la plus élevée.
Si n et best_of valent tous deux 1 (la valeur par défaut), le nombre de tokens générés sera au plus égal à max_tokens.
Si n (le nombre de complétions renvoyées) ou best_of (le nombre de complétions générées parmi lesquelles choisir) ont une valeur > 1, chaque requête crée plusieurs sorties. Dans ce cas, vous pouvez considérer que le nombre de tokens générés est égal à [ max_tokens * max (n, best_of) ]
Streaming
Définir stream: true dans une requête permet au modèle de commencer à renvoyer les tokens dès qu’ils sont disponibles, sans attendre la génération de la séquence complète. Cela ne change pas le délai nécessaire pour obtenir tous les tokens, mais réduit le délai de réception du premier token dans une application où l’on souhaite afficher la progression ou interrompre la génération. Le streaming peut ainsi améliorer l’expérience utilisateur ; il est donc utile de l’essayer.
Traitement par lots
Selon votre cas d’usage, le traitement par lots peut être utile. Si vous envoyez plusieurs requêtes au même point de terminaison, vous pouvez regrouper les prompts pour les envoyer dans une seule requête. Cela réduit le nombre de requêtes à effectuer. Le paramètre prompt peut contenir jusqu’à 20 prompts distincts. Nous vous conseillons de tester cette méthode pour déterminer si elle vous apporte un gain. Dans certains cas, elle peut augmenter le nombre de tokens générés et donc allonger le temps de réponse.
Gestion des coûts
Pour suivre vos coûts, vous pouvez définir un seuil de notification dans votre compte afin de recevoir une alerte par e-mail lorsque vous dépassez un certain niveau de consommation. Utilisez le tableau de bord de suivi de l’utilisation pour consulter votre consommation de tokens sur la période de facturation en cours et les périodes précédentes.
Génération de texte
L’un des défis du passage du prototype à la production est de prévoir le budget nécessaire au fonctionnement de votre application. OpenAI propose une tarification à l’usage, avec des prix pour 1 000 tokens (soit environ 750 mots). Pour estimer vos coûts, vous devrez prévoir votre consommation de tokens. Tenez compte de facteurs tels que le volume de trafic, la fréquence des interactions des utilisateurs avec votre application et la quantité de données à traiter.
Pour réfléchir à la réduction des coûts, une approche utile consiste à les considérer comme une fonction du nombre de tokens et du coût par token. Cette approche permet d’agir de deux façons. Vous pouvez d’abord réduire le coût par token en utilisant des modèles plus petits pour certaines tâches. Vous pouvez aussi chercher à réduire le nombre de tokens nécessaires, par exemple en utilisant des prompts plus courts, en procédant à l’affinage des modèles ou en mettant en cache les requêtes courantes des utilisateurs pour éviter de les traiter à répétition.
Vous pouvez essayer notre outil de tokenisation interactif pour vous aider à estimer vos coûts. L’API et le Playground renvoient également le nombre de tokens dans leurs réponses. Une fois votre application fonctionnelle avec notre modèle le plus performant, vous pouvez vérifier si d’autres modèles produisent les mêmes résultats avec une latence et des coûts inférieurs. Pour en savoir plus, consultez notre article d’aide sur la consommation de tokens.
Stratégie MLOps
Lors du passage de votre prototype à la production, vous pouvez envisager d’élaborer une stratégie MLOps. Le MLOps (gestion opérationnelle de l’apprentissage automatique) consiste à gérer de bout en bout le cycle de vie de vos modèles d’apprentissage automatique, y compris ceux que vous affinez éventuellement à l’aide de notre API. Prenez en compte les aspects suivants lors de la conception de votre stratégie MLOps :
- Gestion des données et des modèles : gérer les données utilisées pour entraîner ou affiner votre modèle et suivre les versions et les modifications.
- Surveillance du modèle : suivre les performances de votre modèle dans le temps et détecter les éventuels problèmes ou dégradations.
- Réentraînement du modèle : veiller à ce que votre modèle reste adapté aux changements dans les données ou à l’évolution des exigences, et le réentraîner ou l’affiner selon les besoins.
- Déploiement du modèle : automatiser le déploiement en production de votre modèle et des artefacts associés.
Réfléchir à ces aspects de votre application vous aidera à maintenir la pertinence et les performances de votre modèle dans la durée.
Sécurité et conformité
Lors du passage de votre prototype en production, vous devrez évaluer les exigences de sécurité et de conformité susceptibles de s’appliquer à votre application et y répondre. Vous devrez notamment examiner les données que vous manipulez, comprendre comment notre API les traite et déterminer les réglementations à respecter. Nos pratiques de sécurité et notre portail de sécurité et de conformité constituent notre documentation la plus complète et la plus à jour. Vous pouvez également consulter notre politique de confidentialité et nos conditions d’utilisation.
Vous devrez notamment prendre en compte le stockage, la transmission et la conservation des données. Vous devrez peut-être aussi mettre en place des mesures de protection de la confidentialité des données, comme le chiffrement ou l’anonymisation lorsque cela est possible. Suivez également les bonnes pratiques de programmation sécurisée, notamment le nettoyage des données d’entrée et une gestion appropriée des erreurs.
Bonnes pratiques de sécurité
Lorsque vous créez votre application avec notre API, tenez compte de nos bonnes pratiques de sécurité pour assurer sa sécurité et sa réussite. Ces recommandations soulignent l’importance de tester le produit de manière approfondie, d’anticiper les problèmes potentiels et de limiter les possibilités d’utilisation abusive.
Enjeux commerciaux
Lorsque vos projets d’IA passent du prototype à la production, il est important de réfléchir à la façon de créer un excellent produit grâce à l’IA et à son lien avec votre cœur de métier. Nous n’avons certainement pas toutes les réponses, mais une conférence de notre Developer Day, où nous explorons ce sujet avec certains de nos clients, constitue un bon point de départ :