L'IA est au premier plan des dernières innovations de l'industrie technologique, ce qui a entraîné une augmentation rapide du nombre de technologies disponibles pour la création d'applications d'IA. Ces technologies vont des grands modèles de langage (LLM) aux frameworks d'orchestration, en passant par les techniques d'évaluation et les modèles de conception d'infrastructures d'IA tels que la génération améliorée de récupération (RAG). Bien que ces solutions aient leur place dans la construction d'un backend d'IA robuste pour servir les utilisateurs et gérer des tâches complexes, il a été remarqué qu'au niveau du frontend, les développeurs ne bénéficient pas du même niveau d'orientation ou d'outillage lors de la construction d'applications.
Ce diagramme détaille ces deux flux de travail distincts pour les développeurs. Il est important de noter que ce diagramme se veut un exemple de haut niveau de la manière dont les applications de chat IA sont conçues aujourd'hui. Tous les détails spécifiques à la mise en œuvre sont intentionnellement abstraits afin d'identifier clairement les deux différents flux de développement.
L'un est axé sur la consommation de services d'IA côté client sur le front-end dans le navigateur, et l'autre sur le back-end d'IA. Entre le frontend et le backend d'IA, il y a un endpoint "middle tier" que le frontend peut appeler pour accéder au backend d'IA. Le diagramme utilise un modèle hébergé par Azure OpenAI Service avec l'orchestration LangChain comme exemple de ce à quoi peut ressembler un backend d'IA.
Si ce endpoint de niveau intermédiaire adhère à la spécification AI Chat Protocol API, le frontend peut utiliser la bibliothèque pour bénéficier de tous les avantages que vous connaissez peut-être dans les bibliothèques client Azure SDK via Azure Core. Ces avantages comprennent l'authentification, les tentatives, la gestion du pipeline HTTP et, plus important encore pour cette bibliothèque, les réponses en continu, qui peuvent mettre à jour vos interfaces en temps réel. La surface cohérente de l'API permet au backend d'IA d'être composé de différents modèles et outils d'orchestration.
Il est important de noter que la spécification de l'API AI Chat Protocol permet de normaliser le processus de consommation du backend d'IA. Cela signifie que tant que l'endpoint middle-tier adhère à cette spécification, vous pouvez consommer n'importe quel backend d'IA d'une manière cohérente et robuste. La spécification permet une certaine flexibilité en ce qui concerne les modèles, les outils d'orchestration et les modèles de conception architecturale utilisés sur le backend d'IA. En outre, cette normalisation de l'API permet d'effectuer des évaluations de manière cohérente sur différents backend d'IA grâce à un modèle de consommation unifié. Grâce à une consommation et à des évaluations cohérentes, les développeurs peuvent se consacrer davantage à la création d'applications et à la mise au point de leurs backends d'IA pour la valeur client, plutôt que de se concentrer sur l'architecture de leurs applications.
Les fondamentaux de la bibliothèque
Comme indiqué précédemment, la bibliothèque étant construite sur des bases similaires à celles d'Azure Core, le processus d'utilisation de la bibliothèque devrait sembler familier aux clients du SDK Azure.
Installation de la bibliothèque
La bibliothèque AI Chat Protocol est disponible sur npm et peut être téléchargée.
Code : | Sélectionner tout |
1 2 | npm i @microsoft/ai-chat-protocol |
Utilisation
Une fois la bibliothèque installée, vous pouvez commencer par créer un objet client, comme pour les autres bibliothèques Azure SDK. Ensuite, nous passons un point de terminaison requis lors de l'instanciation du client. Ce point endpoint doit être conforme à la spécification AI Chat Protocol API. Si vous utilisez une authentification, vous pouvez également passer votre TokenCredential.
Code : | Sélectionner tout |
1 2 3 4 5 6 7 | import { AIChatMessage, AIChatProtocolClient, } from "@microsoft/ai-chat-protocol"; const client = new AIChatProtocolClient("/api/chat"); |
Une fois que vous avez un client dans le code de votre application frontale, vous pouvez envoyer un message à votre endpoint middle-tier et recevoir une sortie via la méthode getCompletion pour une réponse synchrone, ou via la méthode getStreamedCompletion pour une réponse en flux vers votre frontend. Lorsque vous utilisez la méthode getStreamedCompletion, la réponse peut inclure des informations sur le rôle de l'expéditeur, l'état de la session ou le contenu du message. Cet exemple utilise React Hooks pour gérer sessionState, qui est un type unknown transmis lors de l'appel à getStreamedCompletion afin de donner au modèle un état actualisé de la conversation.
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | const [sessionState, setSessionState] = useState<unknown>(undefined); const message: AIChatMessage = { role: "user", content: "Hello World!", }; const result = await client.getStreamedCompletion([message], { sessionState: sessionState, }); for await (const response of result) { if (response.sessionState) { //do something with the session state returned } if (response.delta.role) { // do something with the information about the role } if (response.delta.content) { // do something with the content of the message } } |
Si votre backend adhère à la spécification de l'API AI Chat Protocol, ce code de démarrage est tout ce dont vous avez besoin pour commencer à utiliser la bibliothèque AI Chat Protocol.
Résumé
La bibliothèque Microsoft AI Chat Protocol pour JavaScript/TypeScript permet aux développeurs de diffuser facilement et de manière cohérente les réponses du backend d'IA dans leurs applications. La spécification de l'API AI Chat Protocol crée une surface cohérente pour la consommation et l'évaluation des backend d'IA, ce qui permet aux développeurs de se concentrer sur l'apport de valeur dans leurs applications plutôt que de faire en sorte que leurs points de terminaison jouent bien les uns avec les autres. La bibliothèque AI Chat Protocol pour JavaScript/TypeScript est disponible dès maintenant sur npm et est open-source sur GitHub.
La bibliothèque étant en avant-première publique, tout retour d'information serait le bienvenu. Des exemples de bout en bout sont disponibles sur Azure et se trouvent dans le repo GitHub.
Source : Announcing the public preview of the Microsoft AI Chat Protocol library for JavaScript (Microsoft)
Et vous ?
Que pensez-vous de Microsoft AI Chat Protocol et des fonctionnalités proposées par cette bibliothèque ?
Voir aussi :
Build 2024 et Copilot : Microsoft communique sur les dix points essentiels concernant l'extensibilité de son assistant d'IA générative. Quels inconvénients potentiels prendre en compte avant de l'adopter ?
Microsoft explique en détail comment elle développe l'IA de manière responsable dans son premier rapport de transparence, évoquant les difficultés rencontrées et parlant des améliorations en cours