Accéder au contenu principal

Tutoriel sur l'API Assistants d'OpenAI

Un tour d'horizon complet de l'API Assistants, avec une analyse de ses fonctionnalités, de ses usages en entreprise, des étapes de mise en place et des bonnes pratiques pour en tirer le meilleur parti.
· 14 min lire

Explorez l'IA

Le Dev Day d'OpenAI a marqué une étape importante pour l'intelligence artificielle, avec l'annonce d'une suite de services innovants, dont les GPTs, le GPTs App Store, GPT-4 Turbo et la nouvelle API Assistants.

Cette API met à la disposition des développeurs des outils d'IA avancés pour créer des assistants personnalisés capables de traiter une grande variété de tâches.

Dans ce tutoriel, nous plongeons dans l'univers des Assistants, en détaillant leurs capacités, leurs applications concrètes dans l'industrie, et un guide pas à pas pour les implémenter en Python. Suivez-nous pour maîtriser la création de votre propre assistant IA sur mesure.

Vue d'ensemble de l'API Assistants

Au moment de la rédaction, l'API Assistants est en bêta et l'équipe développeurs d'OpenAI travaille activement à l'ajout de nouvelles fonctionnalités. Avant cela, voyons ce que propose la version actuelle.

Cette section apporte plus d'éclairage sur le fonctionnement des Assistants et l'interaction entre les composants sous-jacents.

Comment fonctionne l'API Assistants ?

Les deux piliers des Assistants sont les modèles d'OpenAI et les outils.

  • Il existe un éventail de modèles, notamment : GPT-4, GPT-4 Turbo, GPT-3.5, GPT-3, DALL-E, TTS, Whisper, Embeddings, Moderation. Les Assistants s'appuient sur ces modèles pour accomplir des tâches intelligentes spécifiques.
  • Les outils, quant à eux, donnent aux Assistants l'accès aux services hébergés par OpenAI comme Code Interpreter et la récupération de connaissances (Knowledge Retrieval). Ils permettent même de créer vos propres outils via la fonctionnalité de Function Calling.

Comment fonctionnent les Assistants

Comment fonctionnent les Assistants

Voyons à présent les cinq grandes étapes pour implémenter un Assistant.

  • Créer et décrire un Assistant : un Assistant est une IA spécialisée, définie par des modèles, des consignes et différents outils.
  • Initier un thread : un thread est une séquence de dialogue initiée par l'utilisateur, à laquelle on ajoute des messages pour former une conversation.
  • Ajouter des messages : les messages contiennent les saisies de l'utilisateur et peuvent inclure du texte, des fichiers et des images.
  • Déclencher l'Assistant : l'Assistant est activé pour analyser le thread, utiliser les outils nécessaires et produire une réponse adaptée.

Cas d'usage de l'API Assistants par secteur

Exploiter l'API Assistants est un moyen puissant d'intégrer l'IA dans vos processus métiers : gains d'efficacité, automatisation des tâches répétitives, et réponses plus rapides et précises aux demandes des utilisateurs.

Voici cinq cas d'usage convaincants par industrie pour l'API Assistants.

Support au développement

L'Assistant peut servir d'assistant de code à la demande. Grâce au code interpreter, il traduit des extraits de code d'un langage à un autre, facilite le développement logiciel et l'apprentissage de nouveaux langages. Cette capacité est particulièrement utile pour des équipes polyglottes ou en contexte pédagogique.

Gestion des connaissances en entreprise

La fonctionnalité de retrieval peut être mobilisée pour la gestion des connaissances. En important et traitant documents internes, rapports et manuels, l'Assistant devient un référentiel centralisé. Les collaborateurs interrogent l'Assistant pour obtenir des informations précises, ce qui améliore l'efficacité et réduit le temps de recherche dans de larges corpus.

Automatisation du support client

L'Assistant s'intègre aux systèmes de support. Avec le Function Calling, il peut répondre aux questions clients en récupérant des informations via des API externes ou des bases de données, automatisant ainsi les réponses aux demandes fréquentes. Résultat : une meilleure expérience client et une charge réduite pour les équipes support.

Analyse de données

En décrivant des fonctions dédiées à l'analyse, les utilisateurs peuvent demander à l'Assistant d'effectuer des manipulations complexes et de générer des rapports, en traduisant des requêtes en langage naturel en tâches d'analyse structurées.

Automatisation des opérations IT

Les équipes IT peuvent automatiser des opérations courantes avec l'Assistant. En définissant des fonctions correspondant à des tâches récurrentes (diagnostics système, vérifications réseau, mises à jour logicielles), l'Assistant exécute ces actions sur commande. De quoi libérer du temps pour les sujets plus complexes.

Pratique : premiers pas avec l'API Assistants d'OpenAI

Maintenant que vous avez compris l'API d'OpenAI, passons à un cas d'usage concret. Cette section vous guide pour créer un assistant qui récupère des connaissances à partir de fichiers PDF.

Le notebook complet de bout en bout est disponible sur DataLab.

Workflow de récupération de connaissances

Pour toute implémentation technique, il est utile d'illustrer visuellement le workflow et les interactions entre les composants clés de l'application.

Ce workflow met en évidence les cinq étapes principales, du téléversement des fichiers à la génération de la réponse finale.

Cinq étapes principales du workflow de récupération de connaissances

Cinq étapes principales du workflow de récupération de connaissances

  • Import de fichier : le processus débute par le téléversement des PDF avec lesquels les utilisateurs veulent interagir.
  • Création de l'assistant : l'assistant est conçu pour traiter et comprendre les informations issues des PDF importés.
  • Initier l'interaction : point de départ du thread de conversation, où les utilisateurs soumettent des messages traités par l'assistant.
  • Déclencher l'assistant : l'assistant traite les messages pour générer une réponse pertinente.
  • Restitution de la réponse : dernière phase, où l'assistant affiche la réponse au message de l'utilisateur.

Configurer la clé OpenAI

Les principaux outils nécessaires pour reproduire ce tutoriel :

  • Python : le langage principal utilisé ici. NodeJS est une alternative possible.
  • OpenAI : le package pour interagir avec les services OpenAI. Notre antisèche OpenAI API en Python propose une vue d'ensemble complète pour maîtriser les bases de l'API OpenAI.
  • OS : le module système pour configurer la variable d'environnement.

La première étape consiste à obtenir la clé OpenAI, qui permet d'accéder au modèle DALL-E 3. Les étapes principales sont illustrées ci-dessous :

Quatre étapes pour créer une clé OpenAI Quatre étapes pour créer une clé OpenAI

Ces quatre étapes sont assez explicites. Veillez toutefois à créer votre compte depuis le site officiel d'OpenAI.

Vous pouvez aller plus loin avec notre Guide du débutant sur l'API OpenAI : tutoriel pratique et meilleures pratiques. Il présente l'API OpenAI, ses cas d'usage, une prise en main pas à pas et les bonnes pratiques à suivre.

Commencer à construire l'assistant

Une fois la clé obtenue, ne la partagez avec personne. Elle doit rester privée. Ensuite, définissez-la comme variable d'environnement de la manière suivante :

import os
OPENAI_API_KEY= "<YOUR PRIVATE KEY>"
os.environ["OPENAI_API_KEY"] = OPENAI_API_KEY

Import de fichier

La fonction utilitaire suivante s'appuie sur la fonction « create » pour téléverser automatiquement dans votre compte OpenAI le fichier avec lequel les utilisateurs souhaitent interagir.

La fonction « create » prend deux paramètres principaux :

  • Le chemin vers le fichier à importer
  • La finalité d'utilisation du fichier, ici « assistants »
def upload_file(file_path):
    
	# Upload a file with an "assistants" purpose
	file_to_upload = client.files.create(
  	file=open(file_path, "rb"),
  	purpose='assistants'
	)
     return file_to_upload

La fonction utilitaire est ensuite appelée pour lancer l'import de l'article « transformers » situé dans le dossier data.

transformer_paper_path = "./data/transformer_paper.pdf"
file_to_upload = upload_file(transformer_paper_path)

Après exécution, le fichier transformer_paper.pdf est importé et visible dans l'onglet Files, comme ci-dessous.

Article Transformer importé dans le compte OpenAI

Article Transformer importé dans le compte OpenAI

Création de l'assistant

La création se fait via la fonction create du module client.beta.assistants, avec cinq paramètres principaux :

  • Nom : le nom donné par le créateur. Appelons le nôtre Scientific Paper Assistant.
  • Instructions : décrivent le comportement attendu. Ici : « You are a polite and expert knowledge retrieval assistant. Use the documents provided as a knowledge base to answer questions. »
  • Modèle : le modèle sous-jacent pour la récupération de connaissances. Tout modèle GPT-3 ou GPT-4 peut convenir. Cet article utilise le modèle le plus récent au moment de l'écriture, gpt-4-1106-preview.
  • Outils : le type d'outil utilisé. Deux options : code interpreter et retrieval. Nous nous concentrons ici sur retrieval.
  • File_ids : la liste des identifiants uniques des fichiers de la base de connaissances.

La fonction utilitaire create_assistant assemble ces éléments pour créer l'assistant, comme ci-dessous :

def create_assistant(assistant_name,
                 	my_instruction,
                 	uploaded_file,
                 	model="gpt-4-1106-preview"):
    
	my_assistant = client.beta.assistants.create(
	name = assistant_name,
	instructions = my_instruction,
	model="gpt-4-1106-preview",
	tools=[{"type": "retrieval"}],
	file_ids=[uploaded_file.id]
	)
    
	return my_assistant

Nous pouvons maintenant exécuter la fonction pour créer l'assistant avec le nom et les instructions :

inst="You are a polite and expert knowledge retrieval assistant. Use the documents provided as a knowledge base to answer questions"
assistant_name="Scientific Paper Assistant"

my_assistant = create_assistant(assistant_name, inst, uploaded_file)

Initier l'interaction

Une fois l'assistant créé, l'étape naturelle suivante consiste à initier un thread d'échange à partir du message ou de la requête de l'utilisateur.

Le thread et le message sont créés via les fonctions create de client.beta.threads et client.beta.threads.messages respectivement.

Ces deux éléments sont combinés dans la fonction utilitaire initiate_interaction.

def initiate_interaction(user_message, uploaded_file):
    
	my_thread = client.beta.threads.create()
	message = client.beta.threads.messages.create(thread_id=my_thread.id,
                                              	role="user",
                                              	content=user_message,
                                              	file_ids=[uploaded_file.id]
	)
    
	return my_thread

On peut initier l'interaction avec la variable user_message :

user_message = "Why do authors use the self-attention strategy in the paper?"
my_thread = initiate_interaction(user_message, uploaded_file)

Déclencher l'assistant et générer une réponse

À partir du thread, on déclenche l'assistant pour répondre au message de l'utilisateur. L'action est définie dans la fonction utilitaire trigger_assistant, et la réponse est récupérée dans la variable response.

def trigger_assistant():
	run = client.beta.threads.runs.create(
  	thread_id = my_thread.id,
  	assistant_id = my_assistant.id,
	)


trigger_assistant()

messages = client.beta.threads.messages.list(
  thread_id = my_thread.id
)

response = messages.data[0].content[0].text.value
response

La réponse suivante est générée après exécution du code ci-dessus.

Réponse de l'assistant au message de l'utilisateur

Réponse de l'assistant au message de l'utilisateur

Cette réponse correspond exactement à l'explication donnée par les auteurs à la page 6.

Passage mentionnant la réponse dans l'article sur les transformers

Passage mentionnant la réponse dans le papier transformer

Bonnes pratiques avec l'API Assistants d'OpenAI

Lorsque vous intégrez l'API Assistants dans un projet, il est essentiel de respecter les bonnes pratiques pour garantir des performances optimales et une expérience utilisateur de qualité. Voici les points clés à garder en tête.

  • Définir des objectifs clairs : fixez des buts précis pour l'Assistant afin qu'il réponde efficacement au besoin visé et aux attentes des utilisateurs.

  • Optimiser les données en entrée : la qualité et la pertinence des données (par exemple les fichiers importés) conditionnent l'exactitude et l'efficacité des réponses de l'Assistant.

  • Prioriser la confidentialité : mettez en place des protocoles robustes de protection des données pour sécuriser les informations et respecter la réglementation en vigueur.

  • Tester et itérer : testez régulièrement l'Assistant en conditions réelles et itérez à partir des retours pour améliorer ses performances et l'expérience utilisateur.

  • Fournir une documentation claire : proposez un guide complet d'utilisation afin d'aider les utilisateurs à comprendre ses fonctionnalités et ses limites.


Conclusion

En résumé, cet article a exploré l'API Assistants, son fonctionnement et ses usages dans différents secteurs. Nous avons commencé par présenter l'API et ses fonctions clés pour poser le cadre.

Nous avons ensuite détaillé les fonctionnalités spécifiques de l'API Assistants et montré comment les appliquer dans divers environnements professionnels.

Nous avons aussi fourni un guide pas à pas pour démarrer avec l'API Assistants et l'adapter à vos besoins.

Enfin, nous avons partagé des bonnes pratiques essentielles pour en tirer le meilleur parti.

Bref, l'API Assistants est un outil polyvalent et précieux, adaptable à de nombreux usages, avec des bénéfices significatifs pour celles et ceux qui apprennent à l'utiliser efficacement.

Envie d'aller plus loin avec les API d'OpenAI et d'adopter une approche plus créative ? Notre guide complet de l'API DALL-E 3 vous fera découvrir sa puissance, ses fonctionnalités clés, ses usages par industrie et des conseils pour libérer votre potentiel créatif.

Si vous débutez totalement sur le sujet, commencez par notre cours Working with the OpenAI API.

Zoumana Keita

Auteur

Zoumana Keita

Scientifique de données aux multiples talents qui aime partager ses connaissances et rendre service aux autres, Zoumana est un créateur de contenu sur YouTube et un rédacteur technique de premier plan sur Medium. Il prend plaisir à parler, à coder et à enseigner. Zoumana est titulaire de deux masters. Le premier en informatique avec une spécialisation en apprentissage automatique à Paris, en France, et le second en science des données à l'université Texas Tech aux États-Unis. Son parcours professionnel a débuté en tant que développeur de logiciels au sein du Groupe OPEN en France, avant de rejoindre IBM en tant que consultant en apprentissage automatique, où il a développé des solutions d'IA de bout en bout pour les compagnies d'assurance. Zoumana a rejoint Axionable, la première startup d'IA durable basée à Paris et Montréal. Il y a occupé le poste de Data Scientist et a mis en œuvre des produits d'IA, principalement des cas d'utilisation NLP, pour des clients en France, à Montréal, à Singapour et en Suisse. En outre, 5 % de son temps a été consacré à la recherche et au développement. Il travaille actuellement en tant que scientifique de données senior à l'IFC, le groupe de la Banque mondiale.

Sujets

Contenus associés

blog

Comprendre les TPU et les GPU dans l'IA : Un guide complet