Tutoriel : utiliser l'API ChatGPT avec Python

Tutoriel : utiliser l’API ChatGPT avec Python

Après avoir proposé une version gratuite de ChatGPT, puis une version premium à 20$ par mois, OpenAI propose ChatGPT sous forme d’API.

Déjà que GPT-3 a permis de créer des applications très puissantes, imaginez la puissance de ChatGPT, intégré dans n’importe qu’elle application !

Dans cet article j’explique comment intégrer l’API ChatGPT à vos applications en utilisant Python.

Comment utiliser l’API ChatGPT avec Python ?

Le code Python pour faire ça est très simple.

Vous devez faire 3 choses :

  • Créer un compte OpenAI
  • Accéder à votre API key
  • Lancer le code Python en utilisant votre clé

Créer un compte OpenAI pour accéder à l’API ChatGPT

Si ce n’est pas déjà fait vous devez commencer par créer un compte sur OpenAI.

Une fois connecté, allez dans « Personal » en haut à droite, puis « View API keys ».

Tutoriel : utiliser l'API ChatGPT avec Python

Cliquez sur « New secret token » pour générer votre clé API.

Gardez là secrète et faites en sorte de la mettre à jour régulièrement, car elle donne un accès total à votre compte.

Appel de l’API ChatGPT depuis Python

Commencez par installer la librairie OpenAI :

pip install openai

Si vous êtes sur un notebook :

!pip install openai
import openai

openai.api_key = VOTRE_API_KEY

prompt = f"Ecris moi une conclusion d'un article qui parle de l'utilisation de l'API ChatGPT"

completion = openai.ChatCompletion.create(
  model="gpt-3.5-turbo", 
  messages=[{"role": "user", "content": prompt}]
)

print(completion['choices'][0]['message']['content'])

Maintenant vous pouvez changer le prompt comme vous le souhaitez pour générer la sortie attendue.

Cette fonction peut prendre d’autres paramètres qui peuvent être intéressants comme max_tokens qui donne le nombre maximal de tokens de la réponse, ou encore temperature qui donne le degré de prévisibilité de l’agent.

Si la temperature est fixée à 0, le modèle donnera toujours la même réponse sans prendre aucun risque. Par contre si elle est fixée à 1, les réponses seront plus originales à chaque fois :

prompt = "Ecris moi une conclusion d'un article qui parle de l'utilisation de l'API ChatGPT"
response = openai.Completion.create(
    engine="gpt-3.5-turbo",
    prompt=prompt,
    max_tokens=60,
    n=1,
    stop=None,
    temperature=0.7,
)

Une des fonctionnalités les plus intéressante de ChatGPT, était sa capacité à se souvenir de la conversation en cours et réutiliser ce que vous lui avez dit avant.

On peut reproduire ce comportement de cette façon :

openai.ChatCompletion.create(
  model="gpt-3.5-turbo",
  messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Who won the world series in 2020?"},
        {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."},
        {"role": "user", "content": "Where was it played?"}
    ]
)

En spécifiant la conversation en entier, le modèle prendra en compte tout ce qui a été dit pour générer la sortie.

On peut imaginer un échange sous cette forme :

for k in range(3):
    messages=[{"role": "system", "content": "Tu es un prof de Python"}]
    msg = input()
    messages.append({"role": "user", "content": msg})
    reply = openai.ChatCompletion.create(
                model="gpt-3.5-turbo",
                messages=messages)
    messages.append({"role": "assistant", "content":completion['choices'][0]['message']['content']})
    print(reply['choices'][0]['message']['content'])

Dans cet échange j’initialise ChatGPT en lui disant que c’est un prof de Python, et ma première requête. J’entre mon premier message manuellement, je l’ajoute dans la liste des messages de la conversation, puis je génère la réponse de ChatGPT.

De même j’ajoute cette réponse dans la liste des messages. Puis je redemande à l’utilisateur d’entrer un message pour continuer la discussion.

Pricing et facturation pour l’API ChatGPT

Dans cette section j’aborde un sujet important : l’argent.

Vous avez 2 choses à savoir :

  • L’API ChatGPT est moins cher
  • Vous pouvez gérer votre budget mensuel pour éviter les catastrophes

Combien coûte l’API ?

L’API ChatGPT coûte moins cher que les API des modèles précédents.

Elle est proposée à 0.002$ pour 1000 tokens.

Je vous renvoie vers la documentation pour savoir exactement ce que représente un token.

En anglais, 1000 tokens représentent environ 750 mots.

Donc si vous devez générer un article de 750 mots en anglais, en écrivant un prompt de 250 mots, cela vous coûtera environ 0,0026$.

Comment limiter le budget ?

Pour ne pas avoir de surprises sur votre compte bancaire à la fin du mois, je vous conseille de mettre en place une limite de budget depuis votre compte.

C’est facile à faire.

Rendez-vous dans « billing » à gauche, puis « Usage limits » :

limiter le budget pour l'utilisation de l'API ChatGPT

Vous pouvez ensuite définir une « soft limit » et une « hard limit » mensuelles.

Une fois la soft limit atteinte vous recevrez un email de notification pour vous prévenir. Une fois la hard limit atteinte les appels de l’API seront bloqués.

Conclusion

Comme j’ai demandé a ChatGPT de me générer cette conclusion depuis Python et que ça m’a couté de l’argent, je la met, même si je l’aime pas trop ahah.

En conclusion, l’API ChatGPT représente une avancée remarquable dans le domaine des chatbots et de l’intelligence artificielle.

Avec ses capacités avancées de traitement du langage naturel, elle permet de créer des chatbots hautement personnalisés et efficaces pour répondre aux besoins de chaque entreprise.

De plus, elle ouvre également de nouveaux horizons pour l’automatisation des processus de communication clientèle, rendant ainsi la tâche plus facile pour les entrepreneurs.

En somme, l’utilisation de l’API ChatGPT ouvre des perspectives intéressantes pour les entreprises qui cherchent à améliorer leur relation clientèle tout en réduisant les coûts.