Comment utiliser l'API de ChatGPT ? Le tutoriel complet
L’API de ChatGPT est devenue accessible le 1er mars 2023. Elle permet d’effectuer des requêtes comme on le fait depuis le site de ChatGPT mais de manière programmatique.
💡 Vous voulez en apprendre plus sur ChatGPT ? Alors vous aimerez sûrement mon guide complet comment utiliser ChatGPT en francais.
Vous pouvez aussi suivre ce tutoriel en vidéo :
Pour commencer à utiliser l’API ChatGPT on doit suivre les étapes suivantes :
-
- Obtenir une clé API : pour pouvoir utiliser l’API ChatGPT, vous devez vous inscrire pour obtenir une clé API (API Key)
-
- Choisir un langage de programmation : vous devez choisir un langage de programmation pour interagir avec l’API d’OpenAI
-
- Installer ce dont vous avez besoin : si vous décidez d’utiliser un projet pour interagir avec l’API de ChatGPT
-
- Coder votre première requête vers l’API de ChatGPT : voyons comment écrire du code pour interagir avec l’API
-
- Utiliser la réponse de ChatGPT : l’API de ChatGPT répond quelque chose, comment allez-vous l’utiliser ?
Commençons à apprendre à utiliser l’API de ChatGPT ensemble avec ce tutoriel.
Vous cherchez des informations sur la nouvelle Assistants API d’Open AI ? Alors c’est cet article que vous devriez lire.
Qu’est-ce qu’une API ?
API veut dire Application Programming Interface ou interface de programmation d’application en français. C’est une série de protocoles et d;outils qu’on peut utiliser pour construire d’autres applications en communicant avec ce qu’expose l’API.
Les APIs définissent comment on peut interagir avec, combien de requêtes peuvent être faites, le format de la requête et des réponses et bien plus.
Les développeurs peuvent se “brancher” sur une API pour interagir avec une autre application sans comprendre exactement comment l’application fonctionne sous le capot. Il faudra juste connaître les différents “end-points” de l’API, ce sur quoi on peut se connecter comme des URLs.
Avec ChatGPT, ça veut donc dire qu’on peut se brancher à un point d’accès qui donne plus ou moins de fonctionnalités que le site de ChatGPT. On peut donc créer des applications complètes ou ajouter des fonctionnalités à une application déjà existante grâce à cette API comme on utiliserait un service cloud.
Combien coûte l’API de ChatGPT ?
Le coût d’utilisation de l’API de ChatGPT est d’environ un centime de dollars américains (USD) pour 5000 tokens. OpenAI offre 5 dollars de crédits gratuits pendant 30 jours quand vous ouvrez un nouveau compte. C’est plus qu’assez pour faire toutes les requêtes que vous voulez pendant un mois.
Ensuite, il faudra rentrer ses informations bancaires dans l’onglet “Billing” du site d’OpenAI.
Comment avoir sa clé d’API ChatGPT ?
Pour obtenir votre clé d’API (API Key) OpenAI et acceder à l’API de ChatGPT, rendez-vous sur le site officiel d’OpenAI.
Une fois connecté, rendez-vous dans l’onglet “View API Keys”.
Une fois sur la page API keys, appuyez sur le bouton “Create new secret key” et vous obtiendrez votre clé d’API ! 🗝
C’est cette clé qui vous permettra d’interagir avec l’API de ChatGPT et les autres API d’OpenAI dans vos différents projets.
⚠️ Ne publiez pas votre clé, conservez là de manière sécurisée comment en la mettant en variable d’environnement. Une clé API donne accès à votre compte OpenAI, quelqu’un de mal intentionné pourrait utiliser cette clé et c’est vous qui payerez les coûts d’utilisation.
Quel langage de programmation pour l’API ChatGPT ?
Les points d’accès de l’API de ChatGPT ne nécessitent pas l’utilisation d’un langage de programmation en particulier.
Vous pouvez faire vos requêtes avec cURL ou dans n’importe quel langage de programmation.
Prérequis pour interagir avec l’API ChatGPT
Bien qu’on n’ait pas besoin d’installer quoi que ce soit pour interagir avec les endpoints de ChatGPT, OpenAI propose deux bibliothèques officielles en Python et en JavaScript.
Vous pouvez installer openai
pour Python avec la commande pip :
pip install openai
Et pour node.js, une librairie existe également et on peut l’installer avec npm :
npm install openai
Coder une requête vers l’API ChatGPT
Pour coder une requête vers l’API ChatGPT, il vous faudra :
-
VOTRE_CLE_API_OPENAI
qui est la clef API récupérée plus tôt dans ce tutoriel. -
VOTRE_REQUETE_CHATGPT
qui est le prompt que vous écririez normalement sur le site de l’outil ChatGPT.
💡 Vous souhaitez poser de meilleures questions à ChatGPT ? Alors découvrez mon article 11+ des meilleurs prompts ChatGPT.
Exemple en de code pour interagir avec l’API Chat GPT avec curl
:
curl https://api.openai.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer VOTRE_CLE_API_OPENAI' \
-d '{
"model": "gpt-3.5-turbo",
"messages": [{"role": "user", "content": "VOTRE_REQUETE_CHATGPT"}]
}'
Exemple en de code pour interagir avec l’API Chat GPT en Python :
import os
import openai
openai.api_key = "VOTRE_CLE_API_OPENAI"
completion = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{"role": "user", "content": "VOTRE_REQUETE_CHATGPT"}
]
)
print(completion.choices[0].message)
💡 Vous voulez en apprendre plus sur la fonction print en Python ? Alors mon article complet sur la fonction print vous intéressera sûrement !
Exemple en de code pour interagir avec l’API Chat GPT en JavaScript :
const { Configuration, OpenAIApi } = require("openai")
const configuration = new Configuration({
apiKey: VOTRE_CLE_API_OPENAI, // Idéalement, vous aurez mis votre clé api dans l'env
})
const openai = new OpenAIApi(configuration)
const completion = await openai.createChatCompletion({
model: "gpt-3.5-turbo",
messages: [{ role: "user", content: "VOTRE_REQUETE_CHATGPT" }],
})
console.log(completion.data.choices[0].message)
ChatGPT fonctionne avec le modèle GPT-3.5. C’est pour ça qu’on fournit le modèle "gpt-3.5-turbo"
dans nos différentes requêtes.
Les modèles gpt-4
et gpt-4-32k
sont accessibles en s’inscrivant à une liste d’attente sur le site d’OpenAI. Si vous voulez en apprendre plus, j’ai écrit un guide complet sur GPT-4.
️ ⚠️ Si vous obtenez une réponse disant que vous avez atteint le maximum de votre usage avec l’API, vous pouvez vous créer un nouveau compte pour profiter de crédit gratuit. Vous pouvez également decider de lier une carte de crédit, l’API d’OpenAI ne coûte vraiment pas grand chose.
Utiliser la réponse de l’API ChatGPT
Si votre requête s’est bien passée, vous obtiendrez une réponse de l’API ChatGPT similaire à une réponse que vous obtenez quand vous utilisez le site web de ChatGPT.
Avec curl
, vous verrez la réponse dans choices.message.content
:
{
...
"choices": [{
...
"message": {
...
"content": "LA_REPONSE_A_VOTRE_REQUETE",
},
...
}],
...
}
En Python, vous pouvez y accéder avec :
completion.choices[0].message.content
Et en JavaScript, c’est là que vous trouverez votre réponse :
completion.data.choices[0].message.content
Comment garder l’historique de la conversation avec ChatGPT quand on utilise l’API ?
Comme on l’a vu, l’API de ChatGPT n’est qu’un seul point d’accès. Contrairement au site de ChatGPT qui garde vos prompts en mémoire pour avoir une vraie conversation avec l’IA, l’API ne gardera pas en mémoire vos requêtes précédentes.
C’est donc à nous de gérer le contexte de la conversation en utilisant un rôle different dans nos requêtes : celui d’assistant.
Les plus attentifs d’entre vous auront remarquée qu’en plus du contenu (content
), on passe un role
dans le message de nos requêtes :
messages=[
{"role": "user", "content": "Le prompt qu'on envoie à l'API de ChatGPT"}
]
Le contenu de ce role peut être :
user
pour vos prompts que vous envoyez à l’API de ChatGPT avec les instructions à fournir à l’assistant. Ces messages peuvent être générés par un utilisateur ou bien en dur par un développeur dans une applicationassistant
est l’intelligence artificielle, c’est le role qu’ont les messages de vos réponses. Ce sera important de fournir ces messages venant de ChatGPT si vous souhaitez avoir une conversation.system
permet de définir le comportement de l’assistant. C’est une fonction peu utilisée par le modèle actuel (gpt-3.5-turbo-0301
) mais qui sera de plus en plus importante avec les prochaines version du modèle de l’IA.
On aura souvent une structure qui commence par définir le comportement de l’IA et puis une conversation entre l’utilisateur et l’IA.
- Message
system
- Message
user
- Message
assistant
- Message
user
- Message
assistant
- …
Comme c’est à nous de gérer l’historique de la conversation avec ChatGPT, on va créer un tableau ou une liste et conserver chaque message dedans.
Voyons un exemple complet en Python :
import os
import openai
openai.api_key = os.getenv("...")
# On déclare une liste pour conserver l'historique de tous nos messages avec ChatGPT
messages = []
# optionnel, permet de définir le comportement que l'assistant doit adopter
messages.append({"role": "system", "content": "Tu es un développeur Python"})
# Une question classique qu'on pourrait poser à ChatGPT
messages.append({"role": "user", "content": "Explique moi comment faire une opération ternaire en Python"})
# Je crée ma requête en choisissant le modèle et en envoyant mes messages
completion = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=messages
)
# La réponse fournie par ChatGPT
response_chatgpt = completion.choices[0].message.content
print(response_chatgpt)
ChatGPT nous explique que La construction conditionnelle if-else n’existe pas en Python et qu’elle est différente des autres langages.
💡 D’ailleurs si vous souhaitez en apprendre plus sur les expressions ternaires en Python, j’ai écrit un article pour apprendre comment utiliser if else sur une ligne en python.
Continuons notre conversation en ajoutant la réponse de l’API à notre liste de messages :
# On inclut la réponse dans l'historique des messages
messages.append({"role": "assistant", "content": response_chatgpt})
# Je pose une nouvelle question
messages.append({"role": "user", "content": "La construction conditionnelle if-else n'existe donc pas ?"})
completion = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=messages
)
response_chatgpt = completion.choices[0].message.content
print(response_chatgpt)
En posant ma deuxième question “La construction conditionnelle if-else n’existe donc pas ?”, ChatGPT comprend que je parle des conditions ternaires en Python et pas juste des conditions if-else en général.
J’aurais eu une réponse à cette question totalement différente si je l’avais posée sans fournir l’historique des messages en contexte à l’API de ChatGPT.
Quelle est la limite de taille d’une requête avec l’API de ChatGPT ?
On a vu que l’API de ChatGPT coûtait 1 centime pour environ 5000 tokens. Vous pouvez voir dans l’objet de réponse que vous obtenez de l’API que vous avez un "usage
” qui vous donne le nombre total de tokens "total_tokens"
utilisés dans l’appel API.
{
...
"usage": {
"completion_tokens": ...,
"prompt_tokens": ...,
"total_tokens": ...,
}
}
Plus le tableau ou la liste contenant l’historique de vos messages sera long, plus ce nombre total de tokens va grandir et il faut savoir que ce nombre ne peut pas dépasser 4096.
Si vous avez une longue conversation avec l’API de ChatGPT, c’est peut-être une bonne idée de résumer vos messages.
Vous pouvez faire ça en le demandant à l’API de ChatGPT elle-même ! 🦾
Aller plus loin avec l’API de ChatGPT !
Et voilà, c’est tout ce dont vous avez besoin de savoir pour interagir avec le point d’accès de l’API de ChatGPT.
Maintenant que vous savez comment l’utiliser, c’est à vous de créer des scripts pour automatiser certaines taches ou carrément créer une application comme un SaaS qui utilise la puissance de ChatGPT.
Le ciel est la limite ici, tout reste à être inventé au niveau des produits et services qui utilisent l’intelligence artificielle !
Certains liens dans cet article sont affiliés, sans coût supplémentaire pour vous en cas de clic. Merci pour votre soutien !
D’ailleurs si vous voulez en apprendre plus sur les APIs d’OpenAI, je vous recommande l’excellent cours en anglais “Mastering OpenAI Python APIs: Unleash the Power of GPT4” sur Udemy !
Je m'appelle Thomas, et je code depuis plus de 20 ans. Depuis ma sortie de la première promotion de l'École 42, j'ai conçu et développé des centaines d'applications et de sites web. Sur ce blog, je partage avec vous les stratégies les plus efficaces pour maîtriser l'art de coder et progresser rapidement.