# Qu’est-ce que l’API Assistants d’OpenAI, et comment les développeurs s’en servent-ils?

Date: 2023-11-07 · Author: Robert Scales · https://guidetoartificialintelligence.com/fr/apprendre/qu-est-ce-que-api-assistants-openai/

**Answer:** L’API Assistants est une nouvelle interface de programmation d’OpenAI, lancée en version bêta le 6 novembre 2023, qui permet aux développeurs d’intégrer des assistants d’IA à leurs propres applications, avec des instructions permanentes, un historique de conversation conservé et des outils prêts à l’emploi pour chercher dans des documents, exécuter du code Python et appeler les fonctions de l’application. Elle prend en charge une bonne partie de la tuyauterie que les développeurs écrivaient eux-mêmes, et elle repose sur les mêmes capacités que les nouveaux GPT personnalisés d’OpenAI.

Hier, à sa première conférence pour les développeurs, DevDay, à San Francisco, OpenAI a lancé l’API Assistants en version bêta. C’est un ensemble de briques pour ajouter un assistant d’IA à une application : quelque chose qui suit un rôle que vous définissez, se souvient de la conversation, lit les documents que vous lui donnez et peut exécuter du code ou déclencher des actions dans votre logiciel.

OpenAI la présente comme sa première étape pour aider les développeurs à créer des expériences « semblables à des agents », c’est-à-dire des logiciels qui peuvent travailler vers un objectif et utiliser des outils, et pas seulement répondre à un message à la fois. Elle est offerte à tous les développeurs dès aujourd’hui.

## Quel problème règle-t-elle?

Jusqu’ici, un développeur qui voulait un assistant utile dans une application devait en assembler la plus grande partie à la main. Un modèle de langage, à lui seul, est sans état : chaque requête part de zéro. Le développeur devait donc sauvegarder chaque message, renvoyer la bonne partie de l’historique avec chaque nouvelle requête, la raccourcir quand elle devenait trop longue pour la **fenêtre de contexte** du modèle (la quantité de texte qu’il peut considérer d’un coup), découper les documents en morceaux, les stocker sous une forme interrogeable et écrire du code pour décider quels morceaux montrer au modèle.

L’API Assistants prend en charge une bonne partie de ce travail. Selon les mots d’OpenAI, elle s’occupe d’« une grande partie du gros travail » pour que les développeurs puissent se concentrer sur ce que fait leur application.

## Les briques de base

OpenAI définit un assistant comme une IA conçue pour un usage précis, avec des instructions particulières, qui peut puiser dans des connaissances supplémentaires et appeler des modèles et des outils. Quatre éléments rendent cela possible :

- **Les instructions.** Une description permanente du rôle, du ton et des limites de l’assistant, écrite une seule fois plutôt que collée dans chaque requête.
- **Les fils (*threads*).** Un fil est une conversation conservée. Vous y ajoutez chaque nouveau message, et OpenAI garde la trace de l’historique et gère ce qui tient dans la fenêtre du modèle. OpenAI affirme que les fils peuvent être persistants et, selon ses mots, « infiniment longs ».
- **Les outils.** Trois sont intégrés. **Code Interpreter** écrit et exécute du Python dans un bac à sable, un espace isolé où le code ne peut rien toucher d’autre, pour que l’assistant puisse faire des calculs, analyser des fichiers de données et tracer des graphiques. **Retrieval** permet à l’assistant de chercher dans des documents que vous ou vos utilisateurs téléversez, sans que vous ayez à construire la recherche vous-même. L’**appel de fonctions** (*function calling*) permet à l’assistant de demander à votre application d’exécuter une fonction que vous avez décrite, comme vérifier les niveaux de stock, puis d’utiliser le résultat dans sa réponse.
- **Les modèles.** Un assistant fonctionne avec l’un des modèles d’OpenAI, comme le nouveau GPT-4 Turbo. L’utilisation est facturée aux tarifs habituels par jeton de ce modèle, et le prix des outils figure sur la page des tarifs d’OpenAI.

Selon OpenAI, les assistants ont la même base que les GPT, les versions personnalisées de ChatGPT que l’entreprise a aussi annoncées hier. La différence tient à qui les crée et où ils vivent : un GPT se crée dans ChatGPT sans code, alors qu’un assistant est construit par un développeur et vit dans le produit de ce développeur.

## Un exemple concret : un aide aux devoirs pour un site de mathématiques

Imaginez un petit site éducatif qui veut un tuteur pour ses pages d’algèbre. Voici comment un développeur pourrait le mettre en place avec l’API Assistants :

1. **Créer l’assistant.** Donnez-lui des instructions, par exemple :

   ```prompt
   Tu es un tuteur d’algèbre patient pour des élèves de 13 à 16 ans. Ne donne jamais la réponse finale tout de suite. Pose une question d’orientation à la fois, vérifie le raisonnement de l’élève et utilise les notes de cours quand tu expliques une règle.
   ```

2. **Joindre des connaissances.** Téléversez les notes de cours du site et activez Retrieval, pour que le tuteur explique les règles comme le fait le cours.
3. **Activer Code Interpreter.** Quand un élève demande le graphique d’une droite ou veut faire vérifier un calcul, l’assistant peut le calculer et renvoyer un graphique.
4. **Décrire une fonction.** Par exemple, `save_progress(student_id, topic)`, pour que le tuteur puisse demander au site d’enregistrer qu’un élève a terminé une leçon. C’est le code du site lui-même qui fait l’enregistrement.
5. **Ouvrir un fil pour chaque élève.** Chaque fois que l’élève écrit, ajoutez le message à son fil et demandez à l’assistant de répondre. L’historique reste chez OpenAI, si bien que la séance suivante reprend là où la précédente s’est arrêtée.

Le développeur n’écrit jamais de code pour découper les notes en morceaux, y chercher ou raccourcir les anciens messages. C’est la tuyauterie que l’API prend maintenant en charge.

> **À essayer :** avant d’écrire la moindre ligne de code, ouvrez le *playground* des Assistants sur la plateforme pour développeurs d’OpenAI. OpenAI affirme que vous pouvez y configurer et tester un assistant sans programmer. Collez les instructions du tuteur ci-dessus, téléversez une courte page de notes et posez-lui une question à laquelle les notes répondent. Posez-en ensuite une à laquelle elles ne répondent pas, et voyez comment il se comporte.

## Pourquoi est-ce important pour les développeurs?

Le plus grand changement, c’est le temps. Un prototype qui demandait des jours de configuration, de stockage et de code de recherche peut maintenant commencer avec des instructions, un fichier et quelques réglages. Les petites équipes et les développeurs qui travaillent seuls ont accès à des outils, comme un bac à sable pour le code, qui étaient difficiles à construire et à exploiter en toute sécurité.

Cela change aussi l’endroit où vivent les données. Les conversations et les fichiers sont stockés chez OpenAI plutôt que dans votre propre base de données. OpenAI affirme que les données et les fichiers envoyés par son API ne servent pas à entraîner ses modèles et que les développeurs peuvent les supprimer quand ils le veulent. Chaque équipe devra décider si cet arrangement convient à un projet donné, surtout s’il traite des renseignements sensibles.

Enfin, OpenAI dit prévoir de permettre aux développeurs de brancher leurs propres outils à côté des trois outils intégrés. Si cela se concrétise, les assistants pourraient se connecter à bien plus de services qu’aujourd’hui.

## À quoi les développeurs doivent-ils faire attention tant que l’API Assistants est en version bêta?

Bêta veut dire inachevé. OpenAI a invité les développeurs à donner leur avis et dit qu’elle continuera de développer l’API au cours des prochaines semaines : les noms, les comportements et les limites peuvent donc changer. Il est sage de garder votre propre code peu dépendant des détails de l’API, par exemple derrière une petite couche de vos propres fonctions, pour absorber plus facilement les mises à jour.

Surveillez les coûts. Comme l’API gère de longs fils et va chercher des passages de documents pour vous, vous voyez moins bien ce qui est envoyé au modèle à chaque tour, et chaque jeton est facturé au tarif du modèle. Faites des essais avec des conversations réalistes et consultez votre tableau de bord d’utilisation avant d’ouvrir un assistant à de nombreux utilisateurs.

Enfin, testez les réponses, pas seulement la configuration. Retrieval aide un assistant à rester proche de vos documents, mais il peut quand même mal les lire ou combler les trous avec des suppositions. Une courte liste de questions dont vous connaissez les bonnes réponses, à reprendre chaque fois que vous changez les instructions ou les fichiers, est un moyen simple de repérer les problèmes avant vos utilisateurs.

## Sources

- New models and developer products announced at DevDay: https://openai.com/index/new-models-and-developer-products-announced-at-devday/
- OpenAI launches API that lets developers build 'assistants' into their apps: https://techcrunch.com/2023/11/06/openai-launches-api-that-lets-developers-build-assistants-into-their-apps/
