Découvrez AI Shell, le nouveau shell de Microsoft pour converser avec l’IA
Sommaire
I. Présentation
Microsoft a dévoilé AI Shell, une nouvelle console destinée à faciliter les interactions avec les assistants IA directement à partir de la ligne de commande. Une préversion publique est déjà disponible pour Windows et macOS. Faisons le point sur cette annonce.
Dans le cadre de son événement Microsoft Ignite 2024, la firme de Redmond multiplie les annonces, notamment sur le thème de l'intelligence artificielle. Parmi ces nouveautés, il y a AI Shell, un nouveau shell pour Windows capable d'interagir avec les IA.
"AI Shell crée un shell interactif qui peut interagir avec divers grands modèles de langage (LLM) et fournit un framework que vous pouvez utiliser pour construire un système personnalisé qui répond à vos besoins. Les utilisateurs peuvent interagir avec les agents d'IA de manière conversationnelle.", peut-on lire sur le site de Microsoft.
Dans le contexte d'AI Shell, chaque assistant IA est considéré comme un agent. Pour le moment, deux agents sont inclus avec la préversion publique :
- Azure OpenAI Agent : cet agent fournit une assistance générale, peut utiliser n'importe lequel des modèles d'IA disponibles dans Azure Open AI pour traiter des requêtes générales, des interprétations en langage naturel ou la génération de code. Cela permet aussi d'accéder aux services d'OpenAI directement (ChatGPT).
- Copilot in Azure : cet agent apporte la puissance de Copilot in Azure directement à votre ligne de commande.
II. Comment installer AI Shell ?
AI Shell se présente à la fois sous la forme d'un exécutable et d'un module PowerShell, afin de faciliter les interactions avec les shells existants de Microsoft. Pour l'utiliser, vous devez respecter certains prérequis.
Voici les prérequis Windows :
- Windows 10 ou supérieur
- PowerShell 7.4.6 ou supérieur
- Windows Terminal (natif sur Windows 11)
Voici les prérequis macOS :
- macOS v13 Ventura ou supérieur
- PowerShell 7.4.6 ou supérieur
- Application de terminal iTerm2
Ensuite, une seule commande suffit pour installer AI Shell :
Invoke-Expression "& { $(Invoke-RestMethod 'https://aka.ms/install-aishell.ps1') }"
Quelques secondes plus tard, AI Shell sera en place sur votre machine.
III. Comment utiliser AI Shell ?
Pour le lancer, il suffit d'exécuter cette commande :
aish
Ou, la commande PowerShell suivante pour l'ouvrir en parallèle de PowerShell. Personnellement, je ne trouve pas ce mode très pratique pour le moment car la console AI Shell s'ouvre sur le côté et elle est relativement réduite.
Start-AIShell
Que faire ensuite ?
La première étape consiste alors à choisir un agent, soit "openai-gpt" ou "azure", puis à effectuer la configuration de cet agent.
IV. Configurer un agent Azure OpenAI
Suite à l'installation, il sera nécessaire de configurer votre agent AI Shell en fonction de vos besoins. À titre d'exemple, nous allons ajouter un agent pour communiquer avec Azure OpenAI, grâce à un déploiement basé sur le LLM GPT-4o.
A. Créer le déploiement dans Azure OpenAI Studio
Depuis le portail Azure, vous devez commencer par créer une nouvelle ressource "Azure AI services" pour ensuite effectuer un déploiement de GPT dans cette ressource. Cette seconde étape doit être effectuée depuis "Azure AI Foundry", correspondant à "Azure OpenAI Studio". Dans l'exemple ci-dessous, un déploiement nommé "it-connect-gpt-4o" basé sur le LLM "gpt-4o" est effectué.
Une fois que c'est fait, vous disposez de toutes les informations nécessaires pour configurer AI Shell. Pour vous aider, vous pouvez regarder cette page de la documentation Microsoft.
B. Configurer l'agent dans AIShell
Retournez sur votre console AIShell. Pour ouvrir le fichier de configuration de l'agent, utilisez la commande suivante :
/agent config
Ce fichier va permettre à l'utilisateur de déclarer le modèle de langage à utiliser et surtout, d'indiquer la clé d'API. Tout cela n'est pas gratuit, puisque vous devez disposer d'un accès aux services OpenAI ou Azure OpenAI pour en profiter pleinement. Comme l'explique la documentation de Microsoft, vous pouvez déclarer plusieurs GPT dans la configuration d'un même agent.
Voici un exemple de configuration opérationnelle, basée sur le modèle initial du fichier "openai.agent.json".
{
// Declare GPT instances.
"GPTs": [
/* --- uncomment the examples below and update as appropriate ---
//
// To use the Azure OpenAI service:
// - Set `Endpoint` to the endpoint of your Azure OpenAI service,
// or the endpoint to the Azure API Management service if you are using it as a gateway.
// - Set `Deployment` to the deployment name of your Azure OpenAI service.
// - Set `ModelName` to the name of the model used for your deployment, e.g. "gpt-4-0613".
// - Set `Key` to the access key of your Azure OpenAI service,
// or the key of the Azure API Management service if you are using it as a gateway.
// For example:*/
{
"Name": "it-connect-gpt4o",
"Description": "A GPT instance with expertise in PowerShell scripting.",
"Endpoint": "https://demoitconnect.openai.azure.com",
"Deployment": "it-connect-gpt-4o",
"ModelName": "gpt-4o",
"Key": "Votre clé API Azure",
"SystemPrompt": "Commencer chaque réponse par Bonjour Florian"
}
// Specify the default GPT instance to use for user query.
"Active": null
}
À partir de l'interface Azure AI Foundry, via le "Home", vous pouvez récupérer les informations nécessaires pour cette configuration.
- "Name": "it-connect-gpt4o" : le nom du GPT dans AIShell, vous mettez ce que vous voulez...
- "Description": "A GPT instance with expertise in PowerShell scripting." : la description du GPT dans AIShell, elle s'affichera lors de son utilisation.
- "Endpoint": "https://demoitconnect.openai.azure.com" : le point de terminaison correspondant à votre ressource. Propriété "Azure OpenAI Endpoint" sur le portail Azure AI Foundry.
- "Deployment": "it-connect-gpt-4o" : nom du déploiement que vous souhaitez utiliser et que vous avez créé dans Azure OpenAI.
- "ModelName": "gpt-4o" : nom du LLM à utiliser
- "Key": "Votre clé API Azure" : clé d'API à utiliser. Propriété "API key 1" sur la page d'accueil du portail Azure AI Foundry ou propriété "Key" dans votre déploiement (ce sera la même valeur).
- "SystemPrompt": "Commencer chaque réponse par Bonjour Florian" : c'est ici que vous personnalisez votre assistant directement via AI Shell pour bénéficier de réponses personnalisées. Ici, je lui demande simplement de commencer chaque réponse par "Bonjour Florian".
Quand c'est fait, enregistrez le fichier et retournez sur le shell.
C. Utiliser un GPT dans AI Shell
Commencez par lister les GPT disponibles :
/gpt list
En principe, le nouveau GPT déclaré dans le fichier de configuration doit apparaître. Même si la configuration est incorrecte, il sera listé.
Pour le sélectionner et l'utiliser, spécifiez son nom de cette façon :
/gpt use it-connect-gpt4o
Voici un exemple :
Ensuite, vous n'avez plus qu'à entamer une conversation avec lui ! Rédigez votre requête en langage naturel et attendez la réponse de l'IA. L'image ci-dessous montre bien que la réponse commence par "Bonjour Florian", conformément à ma demande.
Voilà, maintenant, il n'y a plus qu'à tester ! À titre d'information, voici le jeu de commandes disponible actuellement :
D. Interagir avec AI Shell depuis PowerShell
PowerShell peut interagir avec AI Shell et lui transmettre vos requêtes. Néanmoins, les réponses seront affichées dans AI Shell et non retournées dans PowerShell, pour le moment. Cela pourra évoluer puisqu'il s'agit d'une préversion publique.
Il faut commencer par lancer AI Shell depuis PowerShell :
Start-AIShell
Puis, choisir un agent et un GPT dans AI Shell.
Ensuite, depuis PowerShell et à l'aide du cmdlet "Invoke-AIShell", vous pouvez envoyer une requête :
Invoke-AIShell -Query "Tu me reçois ?" -Agent "openai-gpt"
Voici le résultat obtenu :
V. Conclusion
Si vous désirez tester AI Shell sur Windows ou macOS, ce tutoriel devrait vous permettre de vous lancer plus rapidement ! Ce nouveau shell devrait ouvrir de nouvelles possibilités, notamment grâce à son intégration avec PowerShell. Il devrait également remplacer le module communautaire PowerShellAI qui a été abandonné.
Qu'en pensez-vous ?