Tiré du livre

Comment faire votre premier appel à l’API de ChatGPT?

· Par Robert Scales · 4 min de lecture

Réponse courte

Créez une clé d’API OpenAI, enregistrez-la dans une variable d’environnement, installez la bibliothèque Python openai et envoyez à gpt-3.5-turbo une liste de messages qui commence par un message système; la réponse revient avec le texte demandé et le nombre de jetons que vous avez payés. Un court échange coûte une fraction de cent au prix actuel de 0,0015 $ US par tranche de 1 000 jetons d’entrée et de 0,002 $ US par tranche de 1 000 jetons de sortie.

Le site Web de ChatGPT est une application finie. L’API, pour interface de programmation d’applications, c’est la même famille de modèles offerte comme un service que votre propre code peut appeler. Au lieu de taper dans une boîte de clavardage, votre programme envoie une requête par Internet et reçoit une réponse sous forme de données. Ce petit changement est ce qui vous permet d’intégrer ChatGPT à un outil de tableur, à un service d’assistance ou à un script qui traite une centaine de documents pendant que vous allez chercher un café.

Ce guide vous mène de zéro à un appel fonctionnel en Python. Il vous faut un ordinateur sur lequel Python 3 est installé, un compte OpenAI et une vingtaine de minutes.

Étape 1 : obtenir une clé et la protéger

Connectez-vous à platform.openai.com, ouvrez la page API Keys et créez une nouvelle clé secrète. Une clé d’API est un mot de passe pour votre code : elle identifie vos requêtes et elles sont facturées à votre compte; traitez-la donc comme telle. Les conseils de sécurité d’OpenAI sont clairs sur trois points. Ne la collez jamais dans du code que vous partagez ou que vous versez dans un dépôt, donnez à chaque membre d’une équipe sa propre clé et, si une clé fuit, supprimez-la et créez-en une nouvelle immédiatement.

L’endroit recommandé pour la clé est une variable d’environnement, une valeur nommée que votre système d’exploitation conserve pour que les programmes puissent la lire. Sur un Mac ou une machine Linux, ajoutez cette ligne à votre fichier ~/.zshrc (ou ~/.bash_profile) et ouvrez une nouvelle fenêtre de terminal :

export OPENAI_API_KEY="paste-your-key-here"

Installez ensuite la bibliothèque :

pip install openai

Étape 2 : envoyer votre première requête

Enregistrez ceci sous le nom first_call.py :

import os
import openai

openai.api_key = os.environ["OPENAI_API_KEY"]

response = openai.ChatCompletion.create(
    model="gpt-3.5-turbo",
    messages=[
        {"role": "system", "content": "Tu es un coach culinaire sympathique. Réponds en moins de 100 mots."},
        {"role": "user", "content": "J’ai des œufs, des épinards et du feta. Qu’est-ce que je peux faire pour dîner?"},
    ],
    temperature=0,
)

print(response["choices"][0]["message"]["content"])
print(response["usage"])

Lancez-le avec python3 first_call.py. Trois parties de la requête comptent. model choisit le modèle qui répond. messages est la conversation jusqu’ici, où chaque message a un rôle : system pour vos consignes permanentes, user pour les mots de la personne et assistant pour les réponses précédentes. temperature détermine à quel point la formulation varie d’une exécution à l’autre; les exemples d’OpenAI utilisent 0 pour garder des réponses stables pendant les tests.

Étape 3 : lire ce qui revient

La réponse est un ensemble de champs. Le texte de la réponse se trouve dans choices[0].message.content. À côté, finish_reason indique stop quand le modèle a terminé naturellement, ou length quand il a manqué d’espace, ce qui vous signale qu’il faut permettre une réponse plus longue ou raccourcir la requête. Le champ usage donne trois nombres : les jetons du prompt, les jetons de la réponse et le total. Les jetons sont les petits morceaux de texte que les modèles lisent et écrivent; selon la règle approximative d’OpenAI, 1 000 jetons équivalent à environ 750 mots anglais.

L’API ne se souvient de rien d’un appel à l’autre. Pour poursuivre la conversation, ajoutez la réponse du modèle comme message assistant, ajoutez le message user suivant, et renvoyez toute la liste.

Ce que ça coûte : une estimation concrète

Les prix sont établis par tranche de 1 000 jetons, et l’entrée et la sortie sont facturées séparément. Supposons que le champ usage de la question sur le dîner affiche ce qui suit (chiffres donnés à titre d’illustration) :

PartieJetonsPrix par tranche de 1 000Coût
Prompt (système + utilisateur)500,0015 $ US0,000075 $ US
Réponse1200,002 $ US0,00024 $ US
Total1700,000315 $ US

C’est environ trois centièmes de cent. Mille questions semblables coûteraient à peu près 32 cents américains. À titre de comparaison, GPT-4 avec un contexte de 8K coûte 0,03 $ US par tranche de 1 000 jetons d’entrée et 0,06 $ US par tranche de 1 000 jetons de sortie, soit vingt fois ou plus le tarif de gpt-3.5-turbo; commencez donc avec gpt-3.5-turbo et changez seulement là où vous avez besoin de la qualité supplémentaire. Les nouveaux comptes reçoivent 5 $ US de crédit gratuit à utiliser en trois mois, et chaque compte a une limite de dépenses qu’OpenAI relève avec le temps, ou sur demande.

À essayer : changez trois fois le message système dans first_call.py (un coach culinaire, un réviseur sévère, un enseignant de sciences pour enfants), gardez la même question de l’utilisateur et comparez les réponses et les nombres de usage. Calculez ensuite le coût de chaque exécution avec le tableau ci-dessus.

Qui devrait utiliser l’API plutôt que l’application de clavardage?

Pour la plupart des questions de tous les jours, l’application de clavardage est le meilleur outil : elle est prête à l’emploi, garde votre historique et ne demande aucun code. L’API a du sens quand vous avez besoin de quelque chose que l’application ne peut pas vous donner.

Le premier cas est la répétition. Si vous voulez résumer 300 avis de clients ou étiqueter 1 000 descriptions de produits, un court script qui parcourt un fichier vaut mieux que de coller chaque élément dans une fenêtre de clavardage. Le deuxième est de créer quelque chose pour d’autres personnes, comme un robot d’aide sur votre site Web ou une fonction de rédaction dans votre propre application, où les utilisateurs ne voient jamais ChatGPT. Le troisième est le contrôle : un message système fixe, une température définie et un format prévisible que vous pouvez tester et reproduire.

L’API vous en demande aussi davantage. Vous payez chaque jeton, vous devez protéger votre clé, et vous êtes responsable de ce que votre application montre à ses utilisateurs. Si le compromis en vaut la peine, votre premier appel est le bon point de départ : petit, peu coûteux et facile à modifier.

Sources

  1. Pricing — OpenAI, 28 juin 2023
  2. How to format inputs to ChatGPT models — OpenAI Cookbook on GitHub (commit of 2023-03-02), 2 mars 2023
  3. Best Practices for API Key Safety — OpenAI Help Center

Recevez gratuitement le Guide de l’intelligence artificielle

Abonnez-vous à l’infolettre hebdomadaire et recevez le guide gratuit : ce qui a changé en IA cette semaine, une leçon, un prompt à essayer. Désabonnement en un clic.

Ce que nous faisons de votre adresse

Retour en haut

Affichage

Vos choix sont enregistrés dans ce navigateur seulement. Aucune donnée n’est transmise.

Taille du texte
100 %
Couleurs
Lecture
Autres réglages
Déclaration d’accessibilité