L'API Assistants d'OpenAI

Article publié le mercredi 15 novembre 2023 et mis à jour le mercredi 3 avril 2024.

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.

Comment fonctionne la nouvelle Assistants API ?

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)
Comment Coder

Je m'appelle Thomas. J'ai commencé à coder dans mon enfance. Depuis ma sortie de la première promo de l'École 42, j'ai développé des centaines d'applications et sites web. Sur ce blog, je vous donne les meilleurs conseils et astuces pour apprendre comment apprendre à coder efficacement.