L'API Assistants d'OpenAI
Le 6 novembre 2023, OpenAI a annoncé sa nouvelle Assistants API. Elle est encore en version beta mais permet de faire plus de choses que l’API actuelle.
Qu’est-ce qu’un Thread ?
La nouvelle API vient avec la notion de thread. Avec l’API actuelle, on doit envoyer toute la conversation à l’API pour que l’IA garde son contexte. Les threads permettent d’envoyer un id de session et de gérer la taille du message en le coupant quand il est trop long.
Comment accéder à l’API Assistants ?
L’API “Assistants” est disponible à tout ceux qui ont un compte OpenAI et qui ont récupéré leur clé API.
Comment fonctionne la nouvelle Assistants API ?
La nouvelle API “Assistants” fonctionne avec un assistant et des threads. Après avoir déclaré un assistant, on crée un thread puis on lui ajoute un ou plusieurs messages avant de lancer le thread, récupérer sa réponse et puis afficher la liste des messages.
La méthode assistants.create
permet de créer l’assistant.
La méthode threads.create
permet d’initialiser le thread.
La méthode threads.message.create
permet de créer un message.
La méthode threads.runs.create
permet de créer le processus pour lancer le thread.
La méthode threads.runs.retrieve
permet de récupérer la réponse du thread.
La méthode threads.messages.list
permet de récupérer la liste des messages.
Exemple en Python de l’Assistants API
Découvrons l’API ensemble avec du code.
Vous devrez mettre à jour votre version d’openai :
pip install --upgrade openai
Voici un exemple simple en Python pour créer un assistant qui aide les débutants à apprendre à coder.
from openai import OpenAI
client = OpenAI('votre_token')
assistant = client.beta.assistants.create(
name="Assistant en code",
instructions="Tu es un aidant en code pour les débutants. Écris, exécute et explique du code pour répondre au mieux aux questions.",
tools=[{"type": "code_interpreter"}],
model="gpt-4-1106-preview"
)
thread = openai.beta.threads.create()
message = client.beta.threads.messages.create(
thread_id=thread.id,
role="user",
content="Comment fonctionne la récursivité ? Donne un exemple en Python."
)
run = client.beta.threads.runs.create(
thread_id=thread.id,
assistant_id=assistant.id,
instructions="Explique de manière la plus simple possible, l'utilisateur est débutant."
)
run = client.beta.threads.runs.retrieve(
thread_id=thread.id,
run_id=run.id
)
messages = openai.beta.threads.messages.list(
thread_id=thread.id
)
assistant_response = messages.data[0].content[0].text.value
print(assistant_response)
Exemple en JavaScript de l’Assistants API
Avec npm aussi il faudra mettre à jour votre package openai
si ce n’est pas encore fait :
npm update openai
Voici un boilerplate pour commencer à utiliser la nouvelle API Assistants :
require("dotenv").config()
const OpenAI = require("openai")
const secretKey = process.env.OPENAI_API_KEY
const openai = new OpenAI({
apiKey: secretKey,
})
const assistant = await openai.beta.assistants.create({
name: "Assistant en code",
instructions:
"Tu es un aidant en code pour les débutants. Écris, exécute et explique du code pour répondre au mieux aux questions.",
tools: [{ type: "code_interpreter" }],
model: "gpt-4-1106-preview",
})
const thread = await openai.beta.threads.create()
const message = await openai.beta.threads.messages.create(thread.id, {
role: "user",
content: "Comment fonctionne la récursivité ? Donne un exemple en Python.",
})
const run = await openai.beta.threads.runs.create(thread.id, {
assistant_id: assistant.id,
instructions:
"Explique de manière la plus simple possible, l'utilisateur est débutant.",
})
const run = await openai.beta.threads.runs.retrieve(thread.id, run.id)
const messages = await openai.beta.threads.messages.list(thread.id)
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.