Inscris-toi
(c'est gratuit !)
Un compte est nécessaire pour participer aux discussions.
Créer un compteDans cette partie, nous allons envoyer notre conversation à l'API d'OpenAI pour récupérer la réponse.
Utilisation de l'API
Pour générer une conversation avec OpenAI, nous allons utiliser l'objet ChatCompletion :
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=conversation,
stream=True
)
On indique le modèle (pour nos tests, on utilise "gpt-3.5-turbo" qui est rapide et très abordable) et les messages (la conversation générée avec notre fonction build_conversation_dict).
Le paramètre stream permet d'indiquer qu'on souhaite recevoir la réponse au fur et à mesure et non d'un coup.
Cela permet d'avoir un rendu interactif de la réponse côté front-end pour l'utilisateur.
Retourner la réponse dans un générateur
Pour retourner la réponse, nous avons besoin de créer un générateur.
Un générateur est similaire à une fonction, on utilise seulement l'instruction yield au lieu de return pour retourner des éléments.
Le générateur peut renvoyer des informations au fur et à mesure c'est donc parfait pour notre cas d'usage avec le paramètre stream.
def event_stream(conversation: list[dict]) -> str:
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=conversation,
stream=True
)
for line in response:
text = line.choices[0].delta.get('content', '')
if len(text):
yield text
On commence ici par créer le générateur comme on créerait une fonction normale avec notre conversation en paramètre :
def event_stream(conversation: list[dict]) -> str:
Une fois la requête effectuée à l'API d'OpenAI avec ChatCompletion.create, on passe à travers chaque élément de la réponse avec une boucle for et on retourne le message :
for line in response:
text = line.choices[0].delta.get('content', '')
if len(text):
yield text
Test de la fonction
On peut désormais tester nos deux fonctions bout à bout dans un interpéteur Python :
conversation = build_conversation_dict(messages=["Bonjour, comment ça va ?", "Ça va bien et toi ?"])
for line in event_stream(conversation):
print(line)
Vous devriez voir la réponse de OpenAI envoyée en petit morceaux au fur et à mesure de la génération.
Ce n'est pas fini...
Tu as complété % du parcours 🔥
Termine l'intégralité de la formation pour pouvoir débloquer ton attestation de réussite.