Si l'on utilise l'API ChatGPT, on peut faire appel à l'intelligence du chatbot depuis une application programmée par soi-même. Nous allons en aborder ici les principes essentiels et les mettre en pratique dans des programmes simples en Python.


au sommaire


    L'API ChatGPTChatGPT donne accès à la puissance de ce moteur d'intelligence artificielle depuis une applicationapplication que vous pouvez écrire en Javascript, en Python ou autre langage de programmation. Si vous désirez comprendre dans le détail de quoi il en retourne, le mieux est de consulter cet autre article que nous avons consacré à l'API ChatGPT. Dans le présent article, nous allons mettre ces fondements en pratique.

    Obtenir une clé d'accès de OpenAI

    La toute première étape consiste à obtenir une clé secrète d'accès à l'API. Il va de soi que cette clé secrète ne devra jamais être partagée avec qui que ce soit. Pour ce faire, rendez-vous sur l'adresse https://platform.openai.com/ et procédez ainsi :

    • identifiez-vous avec votre email et mot de passe d'usage habituel sur ChatGPT ;
    • une fois sur la plateforme, vous pouvez voir la mention Personal à côté de votre avatar, en haut et à droite de l'écran ;
    • ouvrez ce menu et repérez la mention View API Keys ;
    • dans l'écran qui est affiché, repérez le bouton Create new secret key ;
    • cliquez dessus (vous pouvez attribuer un nom à votre clé secrète). Cliquez à nouveau sur Create new secret key ;
    • OpenAI a généré une clé secrète. Veillez à la copier et à la stocker dans un emplacement sûr. Il ne sera plus possible d'y avoir accès.
    Le bouton pour créer une clé secrète OpenAI. © OpenAI
    Le bouton pour créer une clé secrète OpenAI. © OpenAI

    Quelques paramètres à maîtriser

    Avant de pouvoir tirer parti de l'API ChatGPT, il importe de prendre connaissance d'un certain nombre de paramètres qu'il va falloir déterminer.

    Quel modèle / assistant utiliser ?

    ChatGPT peut fonctionner sur plusieurs modèles d'intelligence artificielle :

    • ainsi, en mai 2020, OpenAI avait rendu public le modèle GPT 3 ;
    • lorsque ChatGPT a été lancé fin novembre 2022, il reposait (et repose encore par défaut) sur le modèle GPT-3.5 ;
    • en mars 2023, OpenAI a dévoilé le modèle GPT-4.

    Chacun de ces modèles est beaucoup plus puissant que le précédent.

    Dans les exemples qui vont suivre, nous allons mettre à contribution le modèle « GPT-3.5 turbo », qui est celui de la version de base (non payante) de ChatGPT. Il est possible d'affiner un tel modèle en choisissant des options telles que davinci, curie, ada... Nous ne les aborderons pas ici.

    System, user et assistant

    Lorsque nous utilisons l'API de ChatGPT, nous envoyons une série de messages pour interagir avec le modèle. Or, chaque message a deux éléments principaux : un « rôle » et un « content ».

    Le « rôle » apporte des informations sur celui qui parle, dans la conversation. Il en existe trois types :

    • system : définit le comportement attendu ;
    • user : indique l'instruction de l'utilisateur ;
    • assistant : cette option est facultative. Elle peut être utilisée pour fournir un contexte supplémentaire lorsqu'il y existe plusieurs échanges dans une conversation. On peut aussi l'utiliser pour fournir une réponse prédéfinie. Dans les exemples qui suivent, nous n'allons pas l'utiliser.

    Un exemple ultrasimple de code avec appel à l'API de ChaGPT

    Nous allons utiliser ici l'interface Colab de GoogleGoogle pour réaliser un tout petit programme faisant appel à l'interface de OpenAI. Ce programme va afficher le nom du groupe qui a eu la plus forte audience lors de la première décennie du siècle. Le voici :

    !pip install openai

    import openai

    openai.api_key = "VOTRE CLE SECRETE"

    reponse = openai.ChatCompletion.create(

      model="gpt-3.5-turbo",

      messages=[

                          {"role": "system", "content": "Tu es un super assistant."},

                          {"role": "user", "content": "Quel groupe a battu les records d'audience de 2000 à 2010 ?"}

                        ]

    )

    display(MarkdownMarkdown(f'{reponse["choices"][0]["message"]["content"]}'))

    Lorsque nous exécutons ce code, nous obtenons la réponse suivante :le groupe qui a battu les records d'audience dans cette période est U2. Ils ont réalisé les tournées les plus lucratives de cette décennie avec « Vertigo Tour » en 2005-2006 et "U2 360° Tour" en 2009-2011.

    Un exemple simple de test de l'API de ChatGPT depuis un programme en Python. © OpenAI
    Un exemple simple de test de l'API de ChatGPT depuis un programme en Python. © OpenAI

    Le code explicité

    Examinons chaque ligne de ce code.

    1. Nous installons en premier lieu la bibliothèque OpenAI dans Colab.

    2. La bibliothèque OpenAI est importée dans le notebook Colab.

    3. Nous indiquons notre clé secrète (si vous créez d'autres programmes lors de la même session Colab, il ne sera pas nécessaire de ré-indiquer ces 3 lignes).

    4. Nous créons une variable réponse et celle-ci fait appel à l'API de ChatGPT via la commande openai.ChatCompletion.create.

    5. Nous indiquons le modèle utilisé, et donc comme nous l'avons vu plus haut « gpt-3.5-turbo ».

    6. Nous transmettons des messages à l'API de ChatGPT.

    7. Pour le rôle system, nous demandons à l'assistant (le chatbotchatbot) de se comporter comme « un super assistant ».

    8. Dans le rôle user, nous indiquons la question à poser - comme nous le ferions directement dans ChatGPT.

    11. L'instruction Display vise à afficher la réponse à la question. L'option Markdown permet un formatageformatage de cette réponse - si nous utilisions Print, nous n'aurions pas de retour à la ligne dans l'affichage de la réponse. Choices(0) permet d'obtenir le premier (et unique) choix de liste générée par ChatCompletion pour le champ Message - ce qui permet d'afficher la réponse à la question.

    Note : si jamais Colab dit qu'il ne reconnaît pas Markdown, ajoutez juste cette ligne juste après la ligne 1 : « from IPython.display import display, Markdown »

    Si vous obtenez une erreur de quota

    En exécutant un code tel que celui indiqué ici, vous verrez peut-être apparaître un message indiquant que votre quota est épuisé. Il se trouverait alors que votre quota d'usage gratuit de l'API d'OpenAI n'est plus disponible. Si tel est le cas, vous pouvez souscrire un abonnement de base à 5 dollars - vous ne serez débité qu'en fonction de l'usage effectué. La page pour déclarer une méthode de paiement se trouve ici : https://platform.openai.com/account/billing/overview

    Si vous souhaitez éviter de dépenser plus d'une certaine somme par mois d'usage de l'API, cliquez sur « Usage Limits » et définissez dans « Hard Limit » un montant qui ne doit pas être dépassé.

    Deux autres paramètres à considérer

    Lors de l'écriture de vos applications, il pourra être bon de prendre en compte deux paramètres supplémentaires : température et max_tokens.

    1. La température

    La température est un paramètre courant dans les chatbots, et l'on peut notamment tester son effet dans l'interface Playground de OpenAI - ce chatbot a précédé ChatGPT. Ce qu'il faut savoir à son sujet :

    • plus la température est élevée (proche de 2), plus la réponse sera imprévisible, créative ;
    • plus la température est basse (proche de 0) et plus la réponse devrait être prévisible et peu aléatoire.

    Nous allons pouvoir tester l'effet de la température dans le programme ci-dessous.

    2. Max_tokens

    Dans les chatbots, l'unité de mesure est le « tokentoken ». Pour simplifier à l'extrême, un token est plus ou moins égal à un mot. Or, comme nous pouvons le voir dans ce texte d'introduction à l'API de ChatGPT, OpenAI facture le coût d'usage de son API au nombre de tokens mis à contribution. Il est donc possible de limiter votre dépense en réduisant la quantité de texte produit avec le paramètre max_tokens.

    Un exemple de code : générateur de blagues geek

    Voici un exemple de code mettant à contribution ces deux instructions. Nous pourrions intituler ce code : « GénérateurGénérateur de blagues geekgeek ».

    !pip install openai

    from IPython.display import display, Markdown

    import openai

    openai.api_key = "VOTRE CLE SECRETE OPENAI"

    blague = openai.ChatCompletion.create(

      model = "gpt-3.5-turbo",

      temperature = 1.6,

      max_tokens = 2000,

      messages = [

                          {"role": "system", "content": "Tu es un humoriste qui raconte des blagues très drôles"},

                          {"role": "user", "content": "Ecris une blague à propos des geeks"},

                          ]

    )

    display(Markdown(f'{blague["choices"][0]["message"]["content"]}'))

    Chaque fois que nous exécutons ce code, nous avons droit à une nouvelle blague. Nous vous invitons à faire varier le paramètre température. S'il est en dessous de 1, gageons que vous trouverez les blagues assez banales. S'il se rapproche de 2 comme ici, vous constaterez que ChatGPT se montre plus imaginatif.

    Dans ce code, si vous changez la valeur de la température, ChatGPT, <em>via</em> son API, se montrera de plus en plus imaginatif. © OpenAI
    Dans ce code, si vous changez la valeur de la température, ChatGPT, via son API, se montrera de plus en plus imaginatif. © OpenAI

    N'hésitez pas à prendre conseil auprès de ChatGPT

    Par la force des choses, si  vous souhaitez des conseils sur du code tel que ceux présentés ici, n'hésitez pas à les soumettre à ChatGPT qui, par nature, est un spécialiste de lui-même et aussi du PythonPython. Vous pouvez aussi lui demander de vous suggérer d'autres exemples de codes simples faisant appel à l'API de OpenAI.