L'agent IA pour gérer les projets Elasticsearch Serverless

Un agent d'IA alimenté par le langage naturel qui gère sans effort les projets Elasticsearch Serverless, permettant la création, la suppression et la vérification de l'état des projets.

Libérez-vous des contraintes opérationnelles avec Elastic Cloud Serverless. Profitez d’un scaling automatique, gérez les pics de charge et concentrez-vous sur le développement – commencez par un essai gratuit de 14 jours pour le tester par vous-même !

Suivez ces guides pour créer une expérience de recherche optimisée par l’IA ou rechercher dans vos systèmes et logiciels métier.

Comment utiliser un agent d'IA pour gérer des projets Elasticsearch sans serveur ?

  1. Clonez le dépôt : Téléchargez le code de l'outil depuis GitHub en utilisant git clone https://github.com/elastic/elasticsearch-labs/supporting-blog-content/serverless-ai-agent aet naviguez dans le répertoire avec cd serverless-ai-agent.
  2. Configurer l'environnement : Créez un environnement virtuel (facultatif) avec python -m venv venv et activez-le (source venv/bin/activate ou venv\Scripts\activate sous Windows). Ensuite, installez les paquets Python nécessaires à l'aide de pip install -r requirements.txt.
  3. Configurer les informations d'identification : Créez un fichier .env à la racine du projet et remplissez-le avec l'URL de votre API Elasticsearch (ES_URL), la clé API (API_KEY), la région (REGION) et la clé API OpenAI (OPENAI_API_KEY).
  4. Exécutez l'outil : Exécutez l'outil en lançant python main.py dans votre terminal. Cela démarre l'agent d'intelligence artificielle et présente une invite pour vos commandes.
  5. Gérer les projets en langage naturel : Interagissez avec l'outil en utilisant des commandes en langage naturel comme "Créer un projet sans serveur nommé mon_projet", "Obtenir le statut du projet sans serveur nommé mon_projet", ou "Supprimer le projet sans serveur nommé mon_projet". L'IA interprétera vos commandes et exécutera les fonctions correspondantes.

Arrière-plan

Ce petit outil en ligne de commande vous permet de gérer vos projets Serverless Elasticsearch en anglais simple. Il s'adresse à une IA (dans ce cas, OpenAI) pour comprendre ce que vous voulez dire et appeler les bonnes fonctions à l'aide de LlamaIndex !

Que peut faire l'agent Elasticsearch Serverless AI ?

  • Créer un projet: Créez un nouveau projet Serverless Elasticsearch.
  • Supprimer un projet: Supprimer un projet existant (oui, il nettoie après vous).
  • Obtenir l'état d'avancement du projet: Vérifiez l'état d'avancement de votre projet.
  • Obtenir les détails du projet: Obtenez tous les détails croustillants de votre projet.

Consultez le code sur GitHub.

Fonctionnement de l'agent Elasticsearch Serverless AI

Lorsque vous tapez quelque chose comme :

"Créer un projet sans serveur nommé mon_projet."

...voici ce qui se passe en coulisses :

  • Entrée de l'utilisateur & contexte : Votre commande en langage naturel est envoyée à l'agent d'intelligence artificielle.
  • Description des fonctions : L'agent IA connaît déjà quelques fonctions, telles que create_ess_project, delete_ess_project, get_ess_project_status et get_ess_project_details, parce que nous lui avons fourni des descriptions détaillées. Ces descriptions indiquent à l'IA le rôle de chaque fonction et les paramètres dont elle a besoin.
  • Traitement par le LLM : Votre demande et les informations relatives à la fonction sont envoyées au LLM. Cela signifie que l'IA voit :
    • La requête de l'utilisateur: Votre instruction en langage clair.
    • Fonctions disponibles & descriptions: Détails sur les fonctions de chaque outil afin de pouvoir choisir le bon.
    • Contexte/Info historique de la conversation: Comme il s'agit d'une conversation, il se souvient de ce qui a été dit auparavant.
  • Appel de fonction & réponse : L'IA détermine quelle fonction appeler, transmet les bons paramètres (comme le nom de votre projet), puis la fonction est exécutée. La réponse vous est renvoyée dans un format convivial.

En bref, nous envoyons à la fois votre requête en langage naturel et une liste de descriptions détaillées d'outils au mécanisme d'apprentissage tout au long de la vie afin qu'il puisse "comprendre" et choisir l'action appropriée à votre demande.

Mise en place de l'agent d'intelligence artificielle

Prérequis :

Avant d'exécuter l'agent AI, assurez-vous que les éléments suivants sont en place :

  1. Python (v3.7 ou plus récent) installé.
  2. Compte Elasticsearch serverless configuré sur Elastic Cloud.
  3. Compte OpenAI pour interagir avec le modèle linguistique.

Les étapes :

1. Clonez le référentiel :

2. Créer un environnement virtuel (facultatif mais recommandé) : Si vous êtes confronté à des problèmes liés à l'environnement, vous pouvez créer un environnement virtuel pour l'isoler :

3. Installez les dépendances : Assurez-vous que toutes les dépendances requises sont installées en exécutant le programme :

4. Configurez votre environnement : Créez un fichier .env à la racine du projet avec les variables suivantes. Voici un exemple de fichier .env.example pour vous aider :

Assurez-vous que vous disposez des valeurs correctes pour ES_URL, API_KEY, et OPENAI_API_KEY. Vous trouverez vos clés API dans les tableaux de bord respectifs des services.

5. Fichier de projets : l'outil utilise un fichier projects.json pour stocker vos correspondances de projets (noms de projets et détails). Ce fichier sera créé automatiquement s'il n'existe pas déjà.

Exécution de l'agent d'intelligence artificielle

Vous verrez apparaître une invite comme celle-ci :

Tapez votre commande et l'agent d'intelligence artificielle fera son travail ! Lorsque vous avez terminé, tapez exit ou quit pour partir.

Quelques détails supplémentaires

  • Intégration du LLM: Le LLM reçoit à la fois votre requête et des descriptions détaillées de chaque fonction disponible. Cela l'aide à comprendre le contexte et à décider, par exemple, s'il faut appeler create_ess_project ou delete_ess_project.
  • Description des outils: Chaque outil de fonction (créé à l'aide de FunctionTool.from_defaults) a une description sympathique. Cette description est incluse dans l'invite envoyée au LLM afin qu'il "sache" quelles actions sont disponibles et ce que chaque action attend.
  • Persistance: Vos projets et leurs détails sont enregistrés dans projects.json, afin de ne pas avoir à ressaisir les informations à chaque fois.
  • Journalisation verbeuse: L'agent est configuré en mode verbeux, ce qui est idéal pour le débogage et pour voir comment vos instructions sont traduites en appels de fonction.

Exemple d'utilisation d'un agent IA Elasticsearch

Pour aller plus loin

Prêt à créer des expériences de recherche d'exception ?

Une recherche suffisamment avancée ne se fait pas avec les efforts d'une seule personne. Elasticsearch est alimenté par des data scientists, des ML ops, des ingénieurs et bien d'autres qui sont tout aussi passionnés par la recherche que vous. Mettons-nous en relation et travaillons ensemble pour construire l'expérience de recherche magique qui vous permettra d'obtenir les résultats que vous souhaitez.

Jugez-en par vous-même