cette démo est basée sur le site Web Learn Microsoft
Un autre notebook Jupyter sera disponible dans le référentiel pour montrer comment utiliser les assistants de manière plus complexe.
Cette démo utilisera python, la bibliothèque openAi et azure pour créer un assistant permettant de l'utiliser dans un notebook jupyter.
Si vous souhaitez tester directement dans Azure Ai studio c'est ici Azure OpenAi studio
Documentation pour Azure Ai Studio
Un assistant (ou plusieurs personnes pouvant travailler ensemble !) peut effectuer un large éventail de tâches, telles que répondre à des questions, fournir des recommandations et exécuter des commandes à l'aide d'outils.
Un assistant pourrait disposer de quelques outils :
Vous pouvez utiliser des assistants pour créer une large gamme d'applications, telles que des chatbots, des agents virtuels, etc.
En clair, vous pouvez créer en quelques lignes de code un assistant avec des outils pour créer un pipeline de threads afin de répondre à une demande ou à une demande de l'utilisateur. l'assistant prendra le bon outil pour la demande en fonction de la demande de l'utilisateur.
dans la même idée vous pourriez utiliser un modèle différent par assistant pour avoir une meilleure réponse ou limiter le coût de l'assistant
Vous pouvez créer plusieurs assistants avec différents outils sur un même fil (asynchrone ou non) pour résoudre un problème ou donner une réponse à un utilisateur, vous pouvez également avoir différents fils de discussion avec différents assistants.
Exécutions de threads multi-assistants avec appels de fonctions parallèles
Au final avec cette bibliothèque vous récupérerez la réponse au format json, format facile à utiliser en python et à faire quelques traitements dessus.
pour créer une orchestration de l'assistant vous devrez gérer ceux-ci :
La première démo à la racine du référentiel est un simple assistant basé sur la documentation de Microsoft.
AoaiAssistant.ipynb
Scénario de nom | Carnet descriptif | Lien |
---|---|---|
Assistant de résolution de mathématiques | 1 assistant avec uniquement un interpréteur de code comme outil | AoaiAssistant.ipynb |
vous aurez besoin si vous souhaitez tester le notebook en local :
python 3.8 ou version ultérieure
code et plugins de Visual Studio :
Un abonnement Azure – 200 $ pour le premier abonnement
Accès au service Azure OpenAi Demander un accès pour AOAI
Accès au modèle lastet gpt4 0125 (actuellement disponible en Suède Centre, Ouest des États-Unis, Japon Est)
D'autres modèles sont compatibles pour la fonctionnalité d'agents
Déployez le service dans le portail Azure pour le service Azure Open Ai dans la région en conséquence
Faire un déploiement du modèle dans le service azure openAi Ai studio, donner un nom de déploiement
ou
Codespace pour utiliser le notebook dans le cloud avec Github
Pour le nom du déploiement du modèle (vous avez normalement donné un nom qui peut être différent du nom du modèle lorsque vous l'avez déployé) dans Azure Ai studio, vous pouvez le retrouver dans la section déploiement du modèle si vous ne le savez pas. je ne le rappelle pas
Vous devez correctement modifier les informations dans le secrets_env renommé en secrets.env
le point de terminaison Azure et la clé Azure pour le service Open Ai se trouvent dans votre portail/abonnement Azure ou directement dans la catégorie conversation dans Ai studio, avec le modèle sélectionné et le code du bouton cliqué dans la première étape Et après vous devrez cliquer sur le bouton "afficher le secret" pour obtenir la clé et le point final s'affichera dans l'exemple de code
Vous devrez cliquer sur chaque étape du code par le bouton play à gauche de chaque cellule
s'il n'y a pas d'erreur vous obtiendrez à la dernière cellule ce dump json avec le résultat et toutes les informations recueillies
Lorsque vous êtes prêt, vous pouvez suivre les étapes du notebook AzureAOAI.ipynb
Dans mon cas, mon déploiement de modèle pour gpt4-1106 s'appelle gpt-4turbo.
Vous pouvez maintenant utiliser le notebook python dans le code de Visual Studio (ou dans un navigateur avec un espace de code) si vous souhaitez effectuer un traitement sur le résultat ou une orchestration avec le résultat de l'assistant :
Avez-vous créé un assistant ? Voulez-vous comprendre comment gérer les fils de discussion et les messages ?
Tout d’abord jetez un oeil aux documentations pour comprendre et commencez avec les assistants
Il respecte un flux spécifique pour créer un fil de discussion et gérer les messages dans un fil de discussion.
diagramme de séquence
participant A comme Assistant Création
participant B en tant que création de fil de discussion
participant C en tant que création de message utilisateur
participant D en tant qu'exécution de thread
participant E en tant que récupération du statut d'exécution
participant F comme boucle de contrôle d'état
participant G comme récupération de messages
A ->> B : Créer un assistant avec un modèle
B->>C : Créer un fil de discussion
C->>D : Ajouter un message utilisateur au fil de discussion
D->>E : Exécuter le fil de discussion
E->>F : Récupérer l'état d'exécution
F->>F : boucle jusqu'à ce que le statut soit final
F -->>G : Statut : terminé
Remarque à droite de G : Récupérer et afficher les messages
F-->>A : Statut : annulé
F-->>A : Statut : expiré
F -->>A : Statut : échec
{
"data" : [
{
"id" : " msg_5Oc2nmN7boHKfYuJaOnxkYrQ " ,
"assistant_id" : " asst_vid43QSBUFAVr7f7nraAwfkS " , // the id of the assistant
"content" : [
{
"text" : {
"annotations" : [],
"value" : " The solution to the equation \ (3x + 11 = 14 \ ) is \ (x = 1 \ ). " // the result of the assistant
},
"type" : " text "
}
],
"created_at" : 1706827368 ,
"file_ids" : [],
"metadata" : {},
"object" : " thread.message " ,
"role" : " assistant " ,
"run_id" : " run_VlCTYceNmV8HlQyOLQUe7Xj6 " ,
"thread_id" : " thread_KM402gTevvYxlfxYA1ONQPHP "
},
{
"id" : " msg_ZHWVk1gJT292L4YJzlbLjmFq " ,
"assistant_id" : null ,
"content" : [
{
"text" : {
"annotations" : [],
"value" : " I need to solve the equation `3x + 11 = 14`. Can you help me? " // the rquest of the user
},
"type" : " text "
}
],
"created_at" : 1706827327 ,
"file_ids" : [],
"metadata" : {},
"object" : " thread.message " ,
"role" : " user " ,
"run_id" : null ,
"thread_id" : " thread_KM402gTevvYxlfxYA1ONQPHP " // id of the thread
}
],
"object" : " list " ,
"first_id" : " msg_5Oc2nmN7boHKfYuJaOnxkYrQ " , // the id of the first message - request user
"last_id" : " msg_ZHWVk1gJT292L4YJzlbLjmFq " , // Last message of the thread
"has_more" : false
}
Les outils d'interprétation de code convertissent en code python. Dans ce cas d'utilisation, si vous souhaitez vérifier la solution du problème de l'assistant pour les mathématiques avec une bibliothèque dédiée comme sympy ou numpy
Ces informations sont extraites de la bibliothèque openAi dans la bibliothèque python python openai
code_interpreter
, retrieval
ou function
.