Créer un agent d'IA (OpenAI, LlamaIndex, Pinecone & Streamlit) | David Armendariz | Skillshare

Vitesse de lecture


1.0x


  • 0.5x
  • 0.75x
  • 1 x (normale)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Créer un agent d'IA (OpenAI, LlamaIndex, Pinecone & Streamlit)

teacher avatar David Armendariz

Regardez ce cours et des milliers d'autres

Bénéficiez d'un accès illimité à tous les cours
Suivez des cours enseignés par des leaders de l'industrie et des professionnels
Explorez divers sujets comme l'illustration, le graphisme, la photographie et bien d'autres

Regardez ce cours et des milliers d'autres

Bénéficiez d'un accès illimité à tous les cours
Suivez des cours enseignés par des leaders de l'industrie et des professionnels
Explorez divers sujets comme l'illustration, le graphisme, la photographie et bien d'autres

Leçons de ce cours

    • 1.

      Introduction

      1:46

    • 2.

      Préparer l'environnement de développement

      15:19

    • 3.

      Obtenir une clé API OpenAI

      3:16

    • 4.

      Comprendre LlamaIndex et RAG

      3:39

    • 5.

      Que sont les agents ?

      5:04

    • 6.

      Intégrations vectorielles

      2:37

    • 7.

      Créer un outil pour récupérer des documents dans arXiv

      8:11

    • 8.

      Créer un outil pour télécharger des documents

      3:48

    • 9.

      Définir les modèles d'intégration et de LLM

      3:40

    • 10.

      Créer l'index et l'enregistrer localement

      11:55

    • 11.

      Créer l'outil de moteur de requête RAG

      10:33

    • 12.

      Créer et interagir avec l'agent

      9:03

    • 13.

      Télécharger les documents et en chercher de nouveaux

      5:15

    • 14.

      Améliorer l'invite à télécharger des fichiers

      7:39

    • 15.

      Créer un cours pour gérer l'index

      6:13

    • 16.

      Créer un cours pour interagir avec l'agent

      4:53

    • 17.

      Créer une interface utilisateur de chat avec Streamlit

      13:34

    • 18.

      Obtenir une clé API auprès de Pinecone

      3:09

    • 19.

      Créer un gestionnaire d'index pour Pinecone

      11:29

    • 20.

      Utiliser l'index de la cône de pin dans l'application Streamlit

      2:42

    • 21.

      Déployer l'application pour rationaliser le cloud communautaire

      5:31

    • 22.

      Conclusion

      0:53

  • --
  • Niveau débutant
  • Niveau intermédiaire
  • Niveau avancé
  • Tous niveaux

Généré par la communauté

Le niveau est déterminé par l'opinion majoritaire des apprenants qui ont évalué ce cours. La recommandation de l'enseignant est affichée jusqu'à ce qu'au moins 5 réponses d'apprenants soient collectées.

502

apprenants

1

projets

À propos de ce cours

Êtes-vous prêt à vous plonger dans le monde de l'IA et à créer des agents puissants en utilisant des outils de pointe ? Ce cours est conçu pour vous faire passer de zéro à héros dans la création d'agents intelligents avec OpenAI, LlamaIndex, Pinecone et Streamlit. Que vous débutiez dans l'IA ou que vous soyez un développeur chevronné cherchant à développer vos compétences, ce cours vous offre tout ce dont vous avez besoin pour créer des applications interactives et réelles dans le monde réel.

Ce que vous allez apprendre :

  • Comment utiliser l'API d'OpenAI pour générer des réponses intelligentes.

  • Créer et gérer des index de connaissances avec LlamaIndex.

  • Stockage et récupération d'intégrations vectorielles avec Pinecone pour des recherches efficaces par IA.

  • Créer des interfaces utilisateur interactives pour vos agents d'IA avec Streamlit.

  • Les bonnes pratiques pour intégrer ces outils afin de créer des solutions d'IA évolutives.

Pourquoi suivre ce cours ?

La demande d'applications basées sur l'IA est en plein essor et comprendre comment créer des agents d'IA est une compétence qui changera la donne. Ce cours offre une expérience pratique et pratique dans des cas d'utilisation réels. À la fin, vous aurez créé un agent d'IA entièrement fonctionnel, prêt à être déployé et à présenter.

À qui s'adresse ce cours :

  • Développeurs et ingénieurs intéressés par l'IA et l'apprentissage automatique.

  • Les scientifiques de données qui cherchent à explorer les outils axés sur l'IA.

  • Les entrepreneurs et les innovateurs désireux de créer des applications basées sur l'IA.

  • Étudiants et professionnels à la recherche d'une expérience pratique dans le développement d'IA.

Rejoignez-nous dès maintenant et libérez le potentiel des agents d'IA dans vos projets !

Rencontrez votre enseignant·e

Teacher Profile Image

David Armendariz

Enseignant·e

Hi! My name is David Armendariz. I am from Ecuador.

I studied mathematics at USFQ (Universidad San Francisco de Quito). However, I love coding and that's why I transitioned to the software industry. I love to share my knowledge here in Skillshare.

I hope you enjoy my courses as much as I enjoy doing them and remember: never stop learning!

Voir le profil complet

Level: Beginner

Notes attribuées au cours

Les attentes sont-elles satisfaites ?
    Dépassées !
  • 0%
  • Oui
  • 0%
  • En partie
  • 0%
  • Pas vraiment
  • 0%

Pourquoi s'inscrire à Skillshare ?

Suivez des cours Skillshare Original primés

Chaque cours comprend de courtes leçons et des travaux pratiques

Votre abonnement soutient les enseignants Skillshare

Apprenez, où que vous soyez

Suivez des cours où que vous soyez avec l'application Skillshare. Suivez-les en streaming ou téléchargez-les pour les regarder dans l'avion, dans le métro ou tout autre endroit où vous aimez apprendre.

Transcription

1. Introduction: Bonjour et bienvenue dans ce cours, consacré à création d'un agent d'IA avec Open AI, Lama Index, Pine Cone et Streamlt Je suis le Vidar Mendais et je serai le professeur de ce cours. Qui suis-je ? Je suis titulaire d'un baccalauréat ès sciences en mathématiques, d'une maîtrise en science des données et analyse, axée sur le LMS Je suis un ingénieur logiciel chevronné avec plus de six ans d'expérience Je suis certifié AW, certifié Ashur et je suis un passionné de cybersécurité Qu'allons-nous faire dans ce cours ? Nous allons créer un agent LLM basé sur le mini-modèle OpenAI GPT 40 L'objectif de l'agent sera de trouver et de résumer les articles de recherche de la plateforme d'archivage et nous utiliserons le framework d'index Lama afin d'augmenter la base de connaissances de l'agent Qu'allons-nous apprendre dans ce cours ? Je vais apprendre les concepts de base de l'IA tels que les intégrations vectorielles, les index vectoriels, la récupération, la génération augmentée ou RAC, les modèles Crum, les agents de réaction, comment optimiser les instructions des agents, les bases de données vectorielles, l' indice Lama pour augmenter les connaissances, le besoin de stream pour créer une interface utilisateur et la déployer, ainsi que les meilleures pratiques en Python et Python Quels outils allons-nous utiliser ? L'agent utilisera trois outils un moteur de requête rack pour récupérer des informations dans une base de connaissances, un outil de récupération de documents de recherche pour rechercher ou trouver des informations sur des articles que nous n'avons pas dans notre base de connaissances et un téléchargement PDF si vous souhaitez télécharger des articles directement sur votre J'espère que ce cours vous plaira car j'ai beaucoup aimé le créer. J'espère pouvoir vous voir dans la prochaine leçon. Au revoir 2. Préparer l'environnement de développement: Bonjour et bon retour. Dans cette leçon, nous allons configurer l'environnement de développement. Il y a quelques points que vous devez garder à l'esprit. Nous allons utiliser le code VS comme éditeur de code. Nous allons créer un GidHubRPO pour partager le résultat final avec vous et nous allons utiliser PDM, qui signifie Python Dependency Manager, pour gérer les dépendances du projet Python pour gérer les dépendances du Nous aurons également besoin d' une clé d'API Open AI pour utiliser leurs modèles. Quelles sont donc les dépendances que nous allons avoir dans ce projet ? Nous allons avoir Archive, qui est une bibliothèque pour télécharger les articles depuis la plateforme d' archivage, python point F pour gérer les variables d' environnement. Dans ce cas, nous allons avoir la clé d'API OpenAI. Nous voulons que ce soit un secret, c'est pourquoi nous allons utiliser Python Mv Nous allons utiliser Notebook parce que nous allons utiliser Jupiter Notebook et nous allons également installer le Lemma Index, qui est le framework permettant de créer des applications LLM C'est donc la partie ennuyeuse du cours, mais il faut le faire. Allons sur github.com, et voici mon compte GitHub Vous accédez à votre compte GitHub. Si vous n'en avez pas, vous pouvez en créer un, et nous allons créer un nouveau dépôt. Donc, le nom du dépôt, je vais l'appeler Archive Researcher. Tu peux l'appeler comme tu veux. Nous allons le rendre public afin que je puisse partager le résultat final avec vous. Nous allons ajouter un Gid Ignore pour un projet Python. Licence, non et ce ne sont que des applications que j'ai. Si vous n'avez aucune application, cela ne s'affichera probablement pas pour vous, mais cliquez simplement sur Create Repositor Un tout nouveau repo est créé pour moi. Je vais ouvrir un terminal, et je vais cliquer ici sur le code, et je vais copier ce SSH Si vous n'avez pas de clé SSH, configurez-la dans votre compte Gita, vous devez alors utiliser HTTPS, mais SSH est la méthode recommandée pour le faire Je vais le copier. Allez sur le terminal, dites git clone, et collez-le Alors maintenant, j'ai ce dépôt sur ma machine locale et je vais ouvrir le code VS ici Comme vous pouvez le constater, nous n' avons pas le GTI nor, qui est le même que celui que j'ai ici Si j'ouvre ce GTI Nor, vous trouverez beaucoup de choses qui sont généralement ignorées dans un projet Python Nous allons donc utiliser gestionnaire de dépendances Python lorsque nous initialisons un projet avec PDM, sont ces éléments qui seront ignorés Allons chercher PVM PVM Python. L'URL est donc pdmpject.org. Si je clique ici, je vais voir le site web de PDM. PDM, tel que décrit, est un package iPhone moderne et un gestionnaire de dépendances prenant en charge les dernières normes PEP. Mais c'est bien plus qu' un simple gestionnaire de paquets. Il améliore votre flux de travail de développement à divers égards. L'objectif principal du PDM est essentiellement la résolution des dépendances Parce que lorsque vous installez des packages, ceux-ci peuvent dépendre de sous-packages. Les packages doivent donc s'entendre sur les versions des sous-packages à installer. C'est essentiellement l'idée de la résolution des dépendances. Le PDM est un excellent outil pour gérer cela Alors, comment l'installez-vous ? Tout d'abord, vous avez besoin de Python 3.9 ou version ultérieure pour être installé. Il fonctionne sur plusieurs plateformes, notamment Windows, Linux et macOS. Comme vous l'avez peut-être remarqué, j'utilise macOS. PDM permet également de gérer plusieurs versions de Python Ainsi, par exemple, si je veux utiliser Python 3.10, 3.11 ou 3.12, je peux Nous allons voir comment procéder dans un instant. Mais je veux que vous consultiez la documentation et que vous suiviez les étapes de la méthode d'installation recommandée. Comme PIP, PDM fournit un script d'installation qui installera PDM dans un Pour Linux et Mac, il vous suffit de copier cette commande et de la coller dans votre terminal. Dans Windows, vous pouvez le faire avec PowerShell. Mais si vous êtes sous Windows, je vous recommande vivement utiliser le sous-système Windows pour Linux, afin de disposer d'un environnement Linux sur votre machine Windows Si vous ne souhaitez pas le faire, si vous ne connaissez pas le sous-système Windows pour Linux, vous pouvez installer PDM avec OK. Donc, après cela, vous devriez avoir le PDM dans votre machine Il existe également des instructions si vous souhaitez désinstaller PDM, mais je vous conseille de le conserver C'est un excellent outil. Donc, si je vais sur mon terminal et que je tape PDM, je l'agrandis Vous allez voir qu'il y a beaucoup d'options. PDM ad est l'une des commandes que nous allons utiliser, et c'est pour ajouter packages à un fichier appelé Piroject Ceci est similaire au package Jason si vous venez du monde de No JS. PDM, une autre commande que nous allons utiliser est PDM, qui consiste à initialiser un projet Pipe avec Tumel Une autre commande que nous allons utiliser et que nous pouvons utiliser est PDM Python, qui permet de gérer les multiples versions de Python dont je vous parlais il y a quelque temps Voyons voir, une autre commande très importante est PDM remove, qui est utilisée pour supprimer des packages du projet Pi dans TamelFle D'accord ? Voyons donc ce qui se passe si je tape PDM Python Donc, si je tape PDM Python, j'aurai des sous-commandes supplémentaires La première est la liste, qui consiste à répertorier tous les interpréteurs Python installés avec PDM Si je tape PDM Python list, vous verrez que ces quatre versions de Python sont installées sur ma machine 3,12 0,2, 3,11 0,5, 3,13 0,0 et 3,11 Supposons maintenant que je souhaite installer une nouvelle version de Python, je peux taper PVM Python install. Je dois spécifier la version de Python que je souhaite installer Si je tape PDM Python Install Help, vous verrez que j'ai cet indicateur de liste Laissez-moi taper cette liste d'installation de PBM Python et vous verrez toutes les versions de Python disponibles Si je tape simplement PDM Python Install comme je l'ai fait ici, la dernière version sera installée, Python 3.13 0.0 Mais supposons que je veuille installer Python 3.12 0.7. Nous allons utiliser cette version de Python dans ce projet et nous installons simplement PDM Python et vous n'avez pas à taper l'intégralité de l'application Python en C. Il vous suffit de taper 3.12 0.7 et cela devrait suffire. Il téléchargera donc cette version de Python, l'installera et enregistrera l'exécutable dans ce dossier ici. Nous sommes maintenant prêts à initialiser un projet PDM. Revenons au code VS et nous allons le taper dans le terminal PDM Maintenant, si je l' agrandis un peu, cela m'incitera à choisir la version de Python à utiliser dans ce projet Je vais utiliser 3.12 0.7. C'est cette option ici. Je vais avoir la quatrième option. OK. Et cela va créer ce dossier appelé VENV, qui est l' environnement virtuel. C'est ici que tous les packages vont être installés, puis on me demande quel sera le nom du projet ? Je peux simplement taper Enter plusieurs fois pour conserver les valeurs par défaut ici. OK. Cela crée donc un projet Pi qui s'effondre. Encore une fois, si vous venez du monde NoJS, cela ressemble à un fichier JSON de package Ici, vous pouvez voir qu'il contient des données sur le projet, la description du projet, les auteurs du projet, les dépendances, la version de Python requise, etc. Ce que nous allons faire, c'est installer dès maintenant les dépendances nous aurons besoin pour ce produit. Pour cela, je vais dire PDM chez Archive, index, typon point et Si je tape Enter, vous pouvez voir que le problème est résolu pour l'environnement. Il résout tous les sous-packages qui vont être installés. Et cela peut prendre un certain temps. En attendant, je veux que vous remarquiez ce fichier Python PDM Cela indique simplement que l' exécutable Python de ce projet se trouve dans ce fichier VENB Vous pouvez voir que c'est très spécifique à ma machine. C'est pourquoi il figure sur le numéro GTI. Lorsque vous avez sélectionné ce Python, GTI ou ce modèle, ce fichier figure déjà dans le modèle, il est donc déjà ignoré OK. Voyons maintenant ce qui se passe. Cela a dépassé 1 minute et le problème est toujours en cours de résolution pour les packages. Maintenant, il a résolu toutes les dépendances. Il a résolu 149 paquets. C'est beaucoup parce que nous venons installer quatre de ces packages. Mais au total, ces quatre packages utilisent 149 packages en arrière-plan. PDM est donc suffisamment intelligent pour résoudre toutes les versions afin d' les versions afin éviter tout conflit entre les versions Tout a été installé avec succès, aucune erreur, et ce fichier journal PDM a été créé Encore une fois, si vous venez d'un monde sans JS, il s'agit du package, du fichier journal du package. Et cela contient des informations sur toutes les dépendances, les sous-dépendances qui ont été installées. La dernière chose que nous allons faire, est de voir que nous allons créer un fichier EMV à points Et ce fichier EMB va contenir notre API OpenAI. Nous allons lier OpenAI ApiKey et ici nous allons coller notre OpenAI Une stratégie ou une meilleure pratique consiste à avoir un fichier TNBTeample Cet exemple EMB ne figurera donc pas dans le GitKnt et peut être validé en toute sécurité Nous mettons simplement les mêmes informations que dans le fichier EMV, mais sans les valeurs Ici, nous n'avions pas encore la valeur. Ici, nous n'en aurons jamais la valeur. C'est une bonne pratique pour que tous ceux qui clonent le dépôt sachent que je dois avoir un roi des API Open AI C'est tout pour cette leçon. J'espère que cela vous plaira et que vous vous reverrez à la prochaine leçon. H 3. Obtenir une clé API OpenAI: Bonjour et bon retour. Avant d' oublier, obtenons une clé d'API Open AI. Accédez à open.com, accédez aux produits et accédez à API Login. Cela change tout le temps. Si vous n'avez pas de compte Open AI, inscrivez-vous et si vous en avez un, connectez-vous. Je vais me connecter avec mon compte. Et rendez-vous sur le tableau de bord. Et accédez aux clés d'API. Tout d'abord, vous devez activer la facturation. Alors, allez dans les paramètres, passez à la facturation selon le mode de paiement ici, et vous pouvez mettre 5$. Je pense que c'est le minimum. N'oubliez donc pas de le faire. Revenons au tableau de bord, aux clés d' API, et créons une nouvelle clé secrète. Cela s'appellera donc Archive et le projet, vous pouvez étendre ces clés d'API aux projets. Je ne vais pas le définir pour un produit spécifique car je n'ai aucun projet. Je vais donc utiliser un projet par défaut , et les autorisations, vous pouvez être très strict et choisir ce que vous voulez, par exemple, uniquement pour les modèles, pour le son, pour les terminaisons de chat, pour les intégrations Je ne vais pas me compliquer les choses. Je vais juste dire : Oh, je vais créer la clé secrète et celle-ci sera la mienne. Évidemment, je vais le supprimer une fois que j'aurai fini de créer ce cours. Maintenant, je vais le copier. Je vais revenir au code Vs et dans le fichier EMV à points, je vais juste le coller C'est la clé d'API que je vais utiliser avant d'oublier, faisons une bande dessinée. Tapons le kit, ayons tout. Git commit et nous allons dire un projet initialisé avec PDM et ajoutant des dépendances Ensuite, nous pouvons pousser ces chaînes. OK. Maintenant, si nous allons sur Github et que nous actualisons, nous verrons que le fichier DotNB n'est pas L'exemple NB est validé, mais il ne contient rien C'est donc sûr. Sinon, les utilisateurs verront votre clé d'API et ce sera une mauvaise chose. OK, donc c'est tout pour cette leçon. J'espère que cela vous plaira et que vous vous reverrez à la prochaine leçon. 4. Comprendre LlamaIndex et RAG: Bonjour et bon retour. Alors, qu'est-ce que l'indice Lama ? Tout d'abord, quel est le problème avec le LMS ? Ils sont excellents, mais ils sont pré-formés sur de grandes quantités de données accessibles au public. Quelle est la meilleure façon d'enrichir le LMS avec nos propres données privées ? C'est là qu'intervient l'indice Lama. Nous avons besoin d'une boîte à outils complète pour aider à effectuer cette augmentation de données pour les LLM Lama Index propose donc des connecteurs de données pour ingérer vos sources de données et formats de données existants tels que les API, les PDF, les chiens et même les données SQL Il fournit également des moyens de structurer vos données afin qu'elles puissent être facilement utilisées avec LMS Nous allons voir que le moyen le plus courant de structurer ces données est d'utiliser un index vectoriel, fournit également une interface de requête de récupération avancée sur vos Vous pouvez vous adapter à n'importe quelle invite de saisie LM, retrouver le contexte et obtenir une sortie augmentée en termes de connaissances. On ne peut pas parler d'un indice ama sans parler de RAC. Qu'est-ce que Rag ? Rag est une génération augmentée récupérable Il s'agit d'une approche du traitement du langage naturel qui combine la force de deux composants principaux. Récupération d'informations, qui extrait les données pertinentes d'une base de connaissances, d'une base de données ou d'un référentiel de documents externe, et génération de texte, qui utilise un modèle de langage tel qu'OpenAIS, GPT four Omni ou autre pour générer du texte humain sur la base des informations récupérées les données pertinentes d'une base de connaissances, d'une base de données ou d'un référentiel de documents externe , et génération de texte, qui utilise un modèle de langage tel qu'OpenAIS, GPT four Omni ou autre pour générer texte humain Comment fonctionne RAG ? Tout d'abord, un utilisateur pose une question ou une requête. Ensuite, nous récupérons les documents pertinents d'une source externe, puis nous générons une réponse en utilisant un modèle de langage qui utilise la requête de l'utilisateur et le contexte de récupération. Alors pourquoi devons-nous utiliser RAG ? Parce que nous pouvons avoir accès à des informations à jour, qui permet aux systèmes d'IA d' intégrer des connaissances allant au-delà de leurs données d'entraînement. Cela améliore la précision des réponses car les réponses sont désormais basées sur sources vérifiées et récupérables et nous pouvons avoir une adaptabilité au domaine Nous pouvons facilement adapter le système à des secteurs ou à des sujets spécifiques en le reliant à des phases de connaissances spécialisées. C'est du rack dans une image. La première étape consiste à récupérer et à ingérer ces documents, les faire passer par un modèle d'intégration et à stocker ces intégrations La deuxième étape consiste pour l' utilisateur à poser une requête. Ensuite, cette requête utilisateur passe par le même modèle d'intégration , puis nous allons rechercher dans la base de données vectorielle, le contexte, les passages ou les documents très similaires à la requête posée par l' utilisateur. Lorsque nous aurons ce contexte, nous aurons la requête, le contexte et une invite que nous allons concevoir. Nous allons transmettre toutes ces informations au LLM, et le LLM va générer une réponse, et cette réponse sera renvoyée à l'utilisateur C'est Rag en bref. J'espère que cette vidéo vous plaira. Rendez-vous dans la prochaine leçon. 5. Que sont les agents ?: Bonjour et bon retour. Parlons maintenant des agents. Qu'est-ce qu'un agent ? Un agent est un moteur de raisonnement et de décision automatisé. Il prend en compte les informations saisies par l'utilisateur et peut prendre des décisions internes pour exécuter cette requête afin de renvoyer le résultat correct. Les principaux composants de l'agent peuvent inclure, sans toutefois s'y limiter, la décomposition d'une question complexe en questions plus petites, choix d'un outil externe à utiliser, paramètres pour appeler cet outil, planification d'un ensemble de tâches, stockage des tâches déjà terminées, un module de mémoire, etc. Les agents partagent donc cinq éléments de base fondamentaux. Perception, raisonnement, mémoire, planification et action. Le premier élément de base est la perception. perception est la capacité de l' agent à recueillir des informations sur son environnement. Cet objectif implique le traitement de requêtes de texte, l'analyse des données des capteurs, l'interprétation d'images ou même la lecture de tableaux de données structurés à partir d'une base de données. Plus un agent peut percevoir efficacement , plus le contexte qu'il peut comprendre est riche. Grâce à une meilleure perception, les agents peuvent mieux s'adapter aux changements et réagir avec précision à l' évolution des conditions. Ensuite, nous avons un raisonnement. raisonnement est l'endroit où l'agent donne un sens l'information qu'il a perçue. Cela implique d'interpréter les contextes, proposer différentes options et de tirer des conclusions logiques Le raisonnement sous-tend l'intelligence d'un agent. Cela garantit que l'agent ne se contente pas de réagir aveuglément, mais qu'il évalue des scénarios pour prendre des décisions éclairées Le raisonnement avancé implique souvent de tirer parti grands modèles linguistiques ou d'autres cadres d'IA pour comprendre les nuances d'une situation donnée. Mémoire, la mémoire est le moyen utilisé par l'agent conserver les informations pertinentes au fil du temps. Cela peut inclure un contexte à court terme comme la dernière demande d'un utilisateur, et des connaissances à long terme, telles qu'une base de données des interactions passées ou une expertise générale du secteur. La mémoire donne à l'agent un sentiment de continuité. Au lieu de traiter chaque interaction comme une interaction isolée, l'agent peut s'appuyer sur des expériences antérieures améliorer sa précision et sa connaissance du contexte au fur et à mesure. Ensuite, nous avons la planification. La planification est l'endroit où l' agent décide des mesures à prendre pour atteindre ses objectifs. Il peut décomposer les tâches complexes en étapes plus simples, les séquencer dans un ordre optimal et anticiper les obstacles potentiels. planification garantit que l'agent ne se contente pas de réagir à une demande à la fois, mais qu' il trace de manière proactive la voie à suivre pour atteindre des objectifs à plus long terme Cela est crucial pour des tâches telles que l' optimisation de la chaîne d'approvisionnement ou la gestion de projet ou pour tout autre scénario dans lequel les mesures prises aujourd'hui ont des applications futures. Nous avons pris des mesures. L'action est l'exécution effective des décisions de l'agent. Par exemple, envoyer un e-mail, ajuster les niveaux de stock, recommander un produit ou effectuer une opération au niveau du système Sans action, toute la perception, raisonnement, la mémoire et la planification du monde seront gaspillés. action ferme la boucle et permet à l'agent d'avoir un impact tangible sur son environnement, produisant ainsi un résultat concret. Comment travaillent-ils ensemble alors ? La perception adapte l'agent aux données. La mémoire stocke et rappelle des informations utiles du passé immédiat et lointain. Le raisonnement utilise ces données et ce contexte pour élaborer un plan, qui définit les étapes nécessaires pour atteindre les objectifs de l'agent et l'action s'exécute sur ces étapes pour créer une valeur mesurable Il existe des tonnes de cas d'utilisation. De nos jours, tout peut être un agent. Nous avons des agents d'ingénierie logicielle, des agents téléphoniques basés sur l' IA, des agents commerciaux, des agents de recherche. C'est ce que nous allons faire maintenant. Un chef de cabinet de l'IA capable rationaliser les opérations quotidiennes, c'est assez fou. Assistants de recherche sur les ventes, agent comptable, assistant IA mensuel et rapproché. De nos jours, les agents peuvent avoir de nombreux cas d'utilisation . Comment les agents de l'IA travailleront-ils dans la pratique ? Eh bien, vous devez former l'agent IA. Vous devez fournir votre cas d'utilisation, vos données et votre manuel pour adapter les capacités de l'IA à vos besoins spécifiques Entrez des données telles que les transcriptions, l'enregistrement des appels, les factures, les critères de qualification et les objectifs clés pour une adaptation précise Ensuite, vous devez configurer les flux de travail et les intégrations. Vous devez aligner l'agent d'intelligence artificielle vos outils et processus existants. Par exemple, configurer des intégrations SIMD avec des CRM, des calendriers et des systèmes commerciaux tout en définissant des actions, et des systèmes commerciaux tout en définissant des actions, alertes et des protocoles d'escalade qui répondent aux exigences de votre équipe Ensuite, vous devez déployer et gérer les opérations. Vous devez lancer l'agent d'intelligence artificielle pour gérer les opérations de manière autonome, suivre ses performances grâce à des indicateurs en temps réel, évaluer les résultats et affiner processus pour obtenir des résultats optimaux 6. Intégrations vectorielles: Parlons des intégrations vectorielles. Les intégrations vectorielles sont des représentations numériques de données. Les données peuvent être du texte, des images ou du son dans un espace de grande dimension. Ce sont donc des vecteurs de dimension fixe. Chaque donnée est convertie en vecteur et capture sa signification, son contexte ou ses caractéristiques. Fonctionnement Les éléments similaires sont représentés sous forme de vecteurs plus proches les uns des autres. C'est ainsi que vous pouvez facilement comparer. Par exemple, les mots roi et reine auront des vecteurs proches les uns des autres, ce qui reflète leur similitude sémantique Comment mesurez-vous cette similitude ? Eh bien, il existe différentes mesures que vous pouvez utiliser, comme le produit par points ou la similitude en cosinus Que sont les index vectoriels ? Ce sont des structures de données qui organisent ces intégrations vectorielles pour recherche et une extraction efficaces Ils permettent aux systèmes d'intelligence artificielle de trouver rapidement les points de données les plus pertinents sur la base de mesures de similarité telles que la similitude en cosinus ou le produit par points, ces mesures dont je parlais Ils génèrent des ensembles de données volumineux et permettent une récupération évolutive en temps réel permettent une récupération évolutive en temps réel des informations pertinentes. Pour générer ces vectorumbeddings, nous avons Dans ce cours, nous allons utiliser le texte incorporant trois grands caractères, qui est un modèle d' intégration avancé développé par Open AI Il est conçu pour transformer le texte en représentations vectorielles de grande dimension, capturant le sens sémantique de l'entrée, comme nous l'avons déjà expliqué Quelles sont les principales caractéristiques de ce modèle d'intégration ? Il peut générer des représentations de haute qualité. Il produit des intégrations qui capturent efficacement le contexte, les relations et le sens du Il est polyvalent, il convient à un large éventail de tâches telles que la récupération d' informations, la recherche de similarités et le clustering, ainsi que sa dimensionnalité qui permet d' optimiser les vecteurs denses et de grande dimension pour les J'espère que cette leçon vous plaira dans le prochain. 7. Créer un outil pour récupérer des documents dans arXiv: Commençons donc à coder. Tout d'abord, nous allons créer une pile d'outils. Depuis le terminal, les outils tactiles pointent sur PY. Dans ce module, nous allons utiliser la bibliothèque Archive. Donc, si nous examinons la documentation de la bibliothèque Archive, vous verrez qu'Archive n'est qu'un wrapper Python pour l'API Archive Archive possède donc déjà une API et cette bibliothèque n'est qu'un wrapper pour utiliser cette API de manière plus simple Alors, comment l'installer avec PIP ? Nous l'avons fait avec le PDM. Nous importons des archives. Alors faisons-le. Archive d'importation. Ensuite, nous pouvons récupérer les résultats en construisant d'abord le client API par défaut Créons ce client. Ensuite, par exemple, nous pouvons rechercher les dix articles les plus récents correspondant au mot-clé quantum. Ensuite, nous faisons simplement une recherche et nous pouvons répéter ces résultats Results est un générateur, nous pouvons donc itérer sur ses éléments un par un Il existe également une documentation avancée sur la syntaxe des requêtes qui nous indique de consulter le manuel d'utilisation de l'API Archive, dont le lien est disponible ici, et la requête peut être quelque chose comme ça. AU signifie auteur. Si je ne me trompe pas, et si je ne le sais pas. Allons sur ce lien et voyons ces préfixes. AU signifie, TI signifie titre, ABS, résumé, commentaire, etc. Si nous voulons rechercher toutes ces choses en même temps, il suffit de dire tout que ce soit ce que nous allons faire dans notre fonction. Nous allons juste utiliser et mettre en colonne un sujet. C'est ce que nous allons faire. Commençons à coder. Nous allons définir cette fonction appelée fetch archive papers, qui va prendre deux paramètres Le premier est le titre ou la requête, quel que soit le second paramètre qui sera le nombre d'articles. Combien de documents voulons-nous récupérer ? La requête de recherche portera donc sur toutes les colonnes et sur le titre. Ce sera notre requête de recherche. Alors c'est ce que nous allons faire. Je ne sais pas pourquoi ce n'est pas une indentation en soi. Donc, une chose que nous devons faire est de sélectionner l'interpréteur Python. Je vais sur Mac, c'est une épingle Command Shift sous Windows, je pense que c'est une épingle Control Shift et nous allons appuyer ici pour sélectionner un interpréteur et nous allons sélectionner ce fichier V&V à points Il a maintenant plus de fonctionnalités, l'éditeur de code, car il sait que nous utilisons cet environnement virtuel. Cette requête ne sera pas quantique, ce sera une requête de recherche. Le résultat maximum ne sera pas de dix, ce sera le nombre de papiers . Ce paramètre sera transmis ou construit par l'agent. Vous allez voir cela en action dans quelques leçons, puis triez par date de soumission. C'est bon Nous allons maintenant initialiser un tableau vide de documents et nous allons obtenir les résultats Client de résultats qui recherche des résultats. Nous avons maintenant un générateur et nous allons itérer sur chacun des résultats Pour obtenir des résultats, nos informations sur le papier seront un dictionnaire avec un titre. Résultat ce titre Regardez le titre ce résultat et il contient plus de détails. Comment savons-nous quel en est le résultat ? Quels sont ses autres attributs ? Eh bien, si nous survolons le résultat, nous pouvons voir qu'il s'agit du type résultat. Quel est le type de résultat ? Eh bien, nous pouvons cliquer sur le bouton Contrôle ou cliquer sur le bouton Commande sur le module d'archive ici avec la Commande F ou Ctrl F ici sous Windows, nous pouvons rechercher un document, désolé, pas un document pour le résultat. Nous devons donc nous salir les mains ici et vous pouvez voir que c'est la définition du résultat. Il possède un identifiant d'entrée, qui est l'URL, la mise à jour, la date dernière mise à jour du résultat, la date de publication, la date de publication initiale du résultat, le titre , les auteurs, qui est une liste d'auteurs, le résumé, qui est une chaîne, un commentaire, commentaire de l' auteur à présenter, le journal, le jouet, etc. Voyons quel est cet auteur. L'auteur est une autre définition de type qui n'a que le nom comme attribut. Avec toutes ces informations, nous allons obtenir plus d'attributs. Le deuxième attribut sera un résumé, résolvez ce résumé. Nous allons également obtenir le résultat publié qui a été publié. Nous allons obtenir la référence du journal, nous avons vendu la référence du journal, nous allons obtenir le Di, nous résolvons que Di A vous avez évidemment la saisie automatique dans l'éditeur de code. Nous allons avoir la catégorie principale, la catégorie principale. Nous allons avoir les catégories, nous allons les résoudre, et GitHub Copilot m'aide également Nous résolvons cette URL PDF, et l'archive d'archive, archive résultante, l'URL, et non l'archive. Il s'agit de l'ID d'entrée et des auteurs, qui seront un tableau, auteur point par point pour l'auteur dans les auteurs résultants. N'oubliez pas qu'il s'agissait d'une liste d'auteurs. Ce seront nos informations sur le papier, et nous allons ajouter ces informations sur le papier à la liste des articles Stylo, papier, encre. Enfin, nous allons retourner tous les documents. C'est notre fonction simple pour récupérer des documents d'archives, et comme vous le verrez, ce sera également un outil pour l'agent C'est ce que nous allons faire pour cette leçon. J'espère qu'il vous plaira. Rendez-vous dans la prochaine leçon. 8. Créer un outil pour télécharger des documents: Bonjour et bon retour. Nous allons maintenant coder notre deuxième outil. Comme vous pouvez le constater, ce ne sont que des fonctions Python, elles sont donc très faciles à coder. Cette deuxième fonction sera un outil de téléchargement de PDF, qui recevra une URL PDF, qui sera une chaîne et un nom de fichier de sortie, qui sera aussi bien une chaîne. Pour cela, nous allons utiliser la bibliothèque de requêtes. Pour faire une demande de téléchargement du PDF, nous allons également utiliser la bibliothèque du système d'exploitation pour créer un répertoire s'il n' existe pas , car nous voulons organiser notre projet. Nous allons donc tout d' abord essayer de créer un répertoire appelé papers. Et s'il existe déjà, ne le créez pas. Ne lancez pas d'erreur, vivez avec. OK ? Et ici, nous allons mettre le pass d'acceptation. Nous allons spécifier la couche d'erreur. Nous allons maintenant déclarer le chemin de sortie complet, et nous allons dire OS, le chemin, la jointure, les documents et le classement de sortie. Ce sera le chemin de sortie complet, le dossier des documents concaténé avec le Ensuite, nous allons obtenir une réponse en utilisant la bibliothèque de requêtes, nous allons envoyer une requête GET à l'URL du PDF. Et s'il y a une erreur, nous allons l'augmenter. Augmentez pour obtenir un statut. Cette méthode ne fait donc que déclencher une erreur H TTP si elle se produit. Dans l'exception, ce que nous allons faire, c'est accepter l'exception par point des requêtes, l'exception par point comme E. Nous allons renvoyer les chaînes et l'erreur, et nous allons imprimer cette erreur. Si rien ne se passe, nous allons ouvrir le chemin de sortie complet avec les bonnes autorisations, WB, et nous allons nommer ce fichier et nous allons le fichier dont le contenu correspond au point de réponse Et nous devons rendre quelque chose. Nous devons renvoyer une chaîne indiquant que PDF a été téléchargé avec succès et enregistré et nous allons mettre le chemin de sortie complet ici. OK ? Comme vous pouvez le voir, il s'agit d'une fonction Python très, très simple qui télécharge simplement quelque chose. Il peut télécharger un article, il peut le télécharger à côté, peu importe. Dans ce cas, nous allons simplement télécharger le document à partir de l'URL du PDF. C'est tout pour cette vidéo. Très, très simple. J'espère qu' il vous plaira et à bientôt dans le prochain. 9. Définir les modèles d'intégration et de LLM: OK, alors continuons à coder. Nous allons créer un nouveau fichier appelé constantes dans le terminal, touchez Constance PY. Dans ce fichier, nous allons déclarer le modèle intégré et le modèle LM pour le réutiliser lors la création de l'index et de la création de l'agent Tout d'abord, nous allons appeler la fonction Load point M. Commençons par importer à partir du point de chargement DotM. Cela permet de charger toutes les variables d'environnement à partir du fichier ENB Nous pouvons maintenant accéder à l'OpenAI ApiKey avec le module OS. Nous allons importer et laisser Github Copilot m'aider à écrire cet APK OS DOT Ça correspond à ce joli. Maintenant, nous allons dire que le modèle d'intégration sera une intégration d'IA ouverte et nous allons l'importer à partir de Plama index point embedings intégration d'IA ouverte et nous allons l'importer à partir OpenAI, open AI à partir de là, open AI à partir de là, et il me Intégration ouverte de l'IA et type de modèle d'intégration de l'IA ouverte. Nous avons autre chose. L'intégration, non, c'est le cas Nous n'en avons pas besoin. Nous n'avons besoin que de ces deux-là. Nous allons créer une instance de l'intégration ouverte de l'IA Nous allons transmettre la clé API, qui sera la clé APN ouverte de l'IA, et le modèle sera du type de modèle d' intégration d'IA ouverte Regardez ça, nous avons Ava, Baba Cree, DaVinci. Ce sont de très vieux modèles. Les plus récents sont Embed Ada 002 Embed Three Small et bed Three Nous allons utiliser le format embed three large. Et pour le modèle LM, je vais importer depuis Lama index point OpenAI, Import Open AI Nous allons créer une instance d'IA ouverte. Encore une fois, nous devons transmettre la clé API, qui sera notre IA, la clé API I, et le modèle, qui dans ce cas sera une chaîne, et ce sera GPT pour mini D'accord, voici donc les deux modèles d'Open AI que nous allons utiliser. Je veux que tu remarques quelque chose. Lorsque nous avons importé des éléments provenant d' intégrations et de LLM, nous n'avions que l' C'est parce que par défaut, Lama Index n'a que ce plugin par défaut, uniquement les éléments d'IA ouverts. Mais si vous souhaitez utiliser, par exemple, du caillot, du Mistral AI ou autre, Lama possède tous les connecteurs dont nous avons parlé dans cette diapositive, mais vous devez les installer séparément. J'espère que cette vidéo vous plaira. On se voit dans le prochain. 10. Créer l'index et l'enregistrer localement: Bonjour et bon retour. Nous sommes maintenant prêts à créer l'index. Afin de créer l'index, nous allons créer un bloc-notes Jupiter appelé build Index, le terminal, touch build index IPYNB Génial. Tout d'abord, nous allons ajouter une cellule. Et ici, si vous n'avez pas le VENV, vous pouvez cliquer. Cela vous indiquera probablement sélectionner le noyau ici et que vous allez choisir sur VENB quel est l'environnement virtuel, désolé pour ce projet Assurez-vous que le point VENV est sélectionné. Donc, tout d'abord, nous allons créer notre index. Cela signifie notre base de connaissances. Il s'agira d'articles sur un sujet spécifique. Que nous les avons déjà dans notre base de données ou notre référentiel. Donc, tout d'abord, à partir des outils, nous allons importer les documents d'archives et nous allons récupérer certains Le sujet sera, ou le titre, modèles linguistiques, c' est-à-dire les modèles linguistiques. Nous voulons en savoir plus sur les modèles linguistiques, et le nombre d'articles sera de dix. OK. Vous pouvez télécharger 100 articles si vous le souhaitez. Peu importe le format ou le nombre de papiers. N'oubliez pas que les index sont conçus pour gérer les requêtes dans de grands ensembles de données OK, nous allons donc exécuter la cellule, et nous allons imprimer les titres des articles que nous récupérons. Donc du papier, du titre ou du papier dans des papiers. Ce sont donc les articles que nous récupérons qui sont liés aux modèles linguistiques OK, maintenant que nous l'avons, nous allons créer une fonction appelée créer des documents à partir de documents. Et qu'est-ce qu'un document exactement ? Eh bien, il ne s'agit que d'une interface générique pour un document de données. Ce document se connecte donc simplement aux sources de données. Nous allons transmettre un texte qui contiendra les informations relatives au titre de l'article, aux auteurs du résumé de la publication, à la référence de la revue, au DOI, à la catégorie principale, aux catégories, à l'URL du PDF et à l'URL de l'archive Nous allons mettre toutes ces informations dans une seule chaîne , puis nous allons transmettre cette chaîne unique à cette chaîne unique à l'interface de document de Lama Index. Tout d'abord, à partir de Lama index point core, nous allons importer le document, puis nous allons créer des documents à partir de documents, et nous allons transmettre la liste des articles. Tout d'abord, nous allons initialiser une liste vide , puis nous allons parcourir ces articles Le contenu sera donc une seule chaîne contenant les informations du titre, et je vais laisser Github Copilot faire le travail ennuyeux ici Les auteurs seront une liste d'auteurs séparés par une virgule N'oubliez pas que les auteurs sont une liste. Tu te souviens de ça ? C'est une liste. Nous allons également mettre le résumé, nous allons mettre les informations publiées. Nous allons mettre la référence du journal, la référence journal. Nous allons placer le Di dans la catégorie principale. Les catégories sont également une liste. Bien que nous n'ayons pas traité cette liste ici, nous l'avons simplement mise et nous l'avons examinée. Toutes les catégories de résultats, c'est-à-dire une liste de chaînes. Nous pouvons joindre toutes ces chaînes par cette commande. Nous allons avoir l'URL du PDF ainsi que l'URL de l'archive. Ce qui, cette fois, Githukpilot échoue. Oh, non, ça n'a pas échoué. C'est l'URL de l'archive. Oui, URL de l'archive. OK, super. Maintenant, nous avons notre ficelle. Ce que nous allons faire maintenant, c'est ajouter le contenu à un document Et le document a disparu, l'importation a disparu parce que j'ai un paramètre qui supprime les documents non utilisés, sauf. OK. Donc, revenons-en et disons que le texte va être content. Et évidemment, nous devons renvoyer cette liste, d'accord. Et maintenant, appelons cette fonction. Disons des documents, suite pour créer des documents à partir de papiers, de papiers. OK. Et voyons cette liste. Cette liste est donc une liste de cet objet de document, et chaque objet de document possède un identifiant. Il n'y a pas encore d'intégration. Ses métadonnées sont vides. Cela peut être utile dans de nombreuses applications comportant des métadonnées, mais nous ne définissons aucune métadonnée pour ce document. si vous le souhaitez, vous pouvez mettre des métadonnées ici et y placer n'importe quel dictionnaire Python. Une information que vous souhaitez. Permettez-moi de clore encore une fois. Il possède également plus d'attributs, mais celui qui nous intéresse est la ressource texte, la ressource multimédia, le texte, et c' est la chaîne que nous construisons. Vous pouvez voir que cela peut être une très longue chaîne. OK. Maintenant que nous l' avons, nous allons créer notre index. Alors, comment s'y prendre ? Commençons par importer à partir d'un index dot core. Importons les paramètres, et importons l'index du magasin de vecteurs. Également à partir des constantes, importons le modèle intégré, car n'oubliez pas que nous devons faire passer le texte par un modèle intégré. OK. Donc, tout d'abord, nous allons dire que taille des blocs de paramètres sera égale à 1024 paramètres Le chevauchement des morceaux sera égal à 50 Je vais expliquer ce que c'est dans un instant. Permettez-moi d'abord de créer l'index. Je vais dire index du magasin vectoriel à partir de documents. Nous allons transmettre la liste des documents et le modèle intégré sera le modèle intégré que nous avons instancié instancié N'oubliez pas qu'il s'agit d'un texte intégré en trois grandes dimensions. OK, alors quelle est la taille de ces morceaux et leur chevauchement ? OK, donc la taille du morceau définit la propriété de taille du morceau à ce nombre Cela signifie que les données, le texte ici, seront traitées par blocs de 1024 unités Dans ce cas, les unités sont synonymes de caractères. Si, par exemple, ce texte comporte 2080 caractères, désolé, 2048 caractères, il sera divisé en deux parties, mais pas tout à fait car nous avons un autre paramètre appelé chevauchement de morceaux mais pas tout à fait car nous avons autre paramètre appelé Le chevauchement signifie qu'il y aura un chevauchement de 50 unités entre des segments consécutifs Cela peut être utile pour garantir la continuité entre les segments lors du traitement des données Cela signifie qu' un morceau peut avoir certain contexte avec le morceau consécutif et vice versa Ces deux paramètres sont donc très importants. Ils sont appelés hyperparamètres car peuvent être de 128 si vous souhaitez conserver plus de contexte, mais vous allez avoir plus de morceaux Ce sont donc de bonnes valeurs par défaut pour ces deux propriétés. Maintenant que nous l'avons, nous avons déjà notre index. Génial. Dans les coulisses, il s'agit donc en fait d'appeler l'API OpenAI pour convertir tous ces éléments en vecteurs Il utilise le texte incorporant trois grands modèles d'intégration. Convertissez tout en vecteurs. Maintenant, nous pouvons stocker cet index en utilisant le contexte de stockage, cette méthode persistante, et nous allons le stocker dans un dossier appelé index. C'est vrai. Nous avons maintenant ce dossier d'index avec tous ces fichiers JSON, et c'est quelque chose que nous voulons probablement avoir dans le Git Ignore. Ajoutons donc l'index ici dans le Getting car il est dynamique. Si vous recherchez autre chose, l'index va évidemment changer. C'est tout pour créer un index. Vous pouvez voir qu'avec l'indice Lama, c'est tellement facile. Cet indice est évidemment un indice local. Nous pouvons utiliser un index basé sur le cloud comme Pine Cone, un service comme Pinecone, ou nous pouvons utiliser des outils plus sophistiqués comme Chroma TB, qui est également une base de données vectorielle locale, mais nous devons la déployer Il existe d'autres services, des services cloud comme Vate pour stocker ces index dans le cloud Ils utilisent AWS en coulisse ou GCP. Mais pour l'instant, nous allons stocker l'index localement dans ce dossier. J'espère que cette vidéo vous plaira et que vous vous retrouverez à la prochaine leçon. 11. Créer l'outil de moteur de requête RAG: Bonjour et bon retour. Nous allons maintenant commencer à créer l'agent lui-même. Créons un autre fichier appelé agent IPYNV. Cette fois, vous devez sélectionner le noyau ici. N'oubliez pas de sélectionner VENV. Génial. Tout d'abord, nous allons charger notre index depuis le stockage. C'est la première chose à faire. Tout ce qui est stocké dans ces fichiers JSON, nous allons le charger. Lama Index utilise une méthode appelée indice de charge depuis le stockage. À partir de Lama index point core, nous allons donc importer le contexte Starch et l'indice de charge depuis le stockage. Nous devons importer le modèle d'intégration pour que ce contexte d'amidon soit un contexte de stockage à partir des valeurs par défaut, et que le répertoire de persistance soit un index Nous pouvons maintenant charger l'index avec cet indice de charge depuis le stockage. Nous transmettons le contexte de stockage et le modèle d'intégration. Génial. Maintenant, notre index est chargé, notre index local. Ce que nous allons faire maintenant, c'est créer un moteur de requêtes pour. Nous allons voir comment fonctionne cet outil de moteur de requêtes dans les coulisses. À partir de Lama index.co dot tools, nous allons importer le moteur de requêtes dans Nous allons également importer le modèle LLM à partir des constantes Le moteur de requête sera donc l'index, mais cet index a une méthode appelée moteur de requête. Nous devons passer le modèle LLM, qui dans notre cas sera GPT four Omni, et nous pouvons transmettre un autre paramètre appelé Top K, similitude, top K, et nous allons dire cinq. Nous allons récupérer au maximum cinq vecteurs lorsque nous soumettons une requête, nous allons trouver un maximum de cinq vecteurs similaires. Nous allons maintenant définir l'outil RAC en tant qu'outil de moteur de requêtes. Et encore une fois, l' importation disparaît, il faut donc recommencer. Outils de base, moteur de requêtes d'importation dans. À partir des valeurs par défaut, les valeurs par défaut seront le moteur de requête Nous devons également fournir le nom de cet outil. Le nom sera donc un document de recherche, un outil de moteur de requête. Et c'est aussi une bonne pratique de le décrire. Et cette description va aider l'agent à savoir en quoi consiste cet outil. Je dois donc dire qu'il s' agit d'une machine à chiffon basée des articles de recherche récents C'est donc l'outil que l'agent va utiliser pour récupérer des informations dans pour récupérer des informations dans notre base de données existante ou dans notre référentiel existant Maintenant, je veux que vous montriez que je veux vous montrer les instructions que ce moteur de requête utilise dans les coulisses Par défaut, Lama Index utilise une invite affinée avant de renvoyer une réponse. Et nous allons en apprendre davantage à ce sujet dans un instant. Tout d'abord, permettez-moi d'importer depuis IPython cet affichage. Je vais importer Markdown et Display. Ce ne sont que des fonctions utilitaires pour voir les choses un peu mieux ici à l'écran Je vais définir ce dictionnaire d'invite d'affichage, et je vais transmettre un dictionnaire d' invite pour les touches d' invite et de saisie de ces éléments Je vais afficher un peu de markdown ici. Le Markdown sera la touche d'invite. Et tout cela va prendre tout son sens dans un instant. Supportez-moi simplement. Et demandez à obtenir un modèle. Maintenant que nous avons défini cette fonction, nous allons dire que le dictionnaire des invites sera le moteur de requête qui recevra les invites, et nous allons afficher les OK. Moteur de requêtes. OK, nous n'avons pas exécuté cette cellule. OK. C'est ici. Le moteur de requêtes que nous avons défini ici comporte donc deux invites. Le premier est ce modèle d'assurance qualité de texte du synthétiseur de réponses, et le second est ce modèle d'affinage du synthétiseur de réponses affinage du synthétiseur Ainsi, lorsque nous récupérons les informations pertinentes, une partie d'informations, utiliseront la partie la plus pertinente, à droite. Il répondra à la question ou à toute autre requête publiée par l'utilisateur en utilisant ce morceau et en utilisant ce modèle Les informations contextuelles se trouvent ci-dessous. Et en fonction des informations contextuelles et non des connaissances préalables, répondez à la question. La requête est ce que nous avons indiqué en tant qu' utilisateur et la réponse est la réponse LLM Une fois qu'il aura obtenu une réponse, il va itérer sur les autres éléments d'information pertinents Parce que n'oubliez pas que nous allons avoir cinq au maximum cinq, et que les quatre autres utiliseront ce modèle ici. La requête initiale est la suivante. Nous avons fourni une réponse existante c'est donc la réponse de cette invite ici, nous avons la possibilité d'affiner la réponse existante uniquement si nécessaire avec quelques contextes supplémentaires ci-dessous. Ce contexte va être un autre élément, une autre information pertinente le nouveau contexte, affinez la réponse initiale pour mieux répondre à la requête. Si le contexte n'est pas utile, renvoyez la réponse d'origine. C'est ce qu'on appelle un mode de réponse dans l'index Lama et nous avons cette documentation ici. Le mode de réponse par défaut est affiné, créez et affinez la réponse en parcourant séquentiellement chaque morceau de texte à récupérer, ce qui entraîne un appel LLM distinct pour le nœud ou Les détails, le premier élément est utilisé dans une requête utilisant le texte d'un modèle En utilisant ce modèle ici, en utilisant la partie la plus pertinente le LLM va récupérer une réponse Ensuite, la réponse et le segment suivant ainsi que la question initiale utilisent une requête avec le modèle d'invite affiné et ainsi de suite jusqu'à ce que tous les fragments aient été analysés Avec les segments consécutifs, il utilisera ce modèle ici et il aura une réponse affinée Si un morceau est trop gros pour tenir dans la fenêtre, compte tenu de la taille du bal, compte tenu de la taille du bal, il est divisé à l'aide d'un séparateur de texte à jetons autorisant un certain chevauchement de texte entre les segments, les nouveaux morceaux supplémentaires sont considérés comme des fragments de la collection de morceaux d' origine C'est uniquement si le morceau est trop gros. Il existe un autre mode de réponse appelé compact. Ainsi, le compact, similaire à Affiner, mais compact, concatène les morceaux au préalable, ce qui réduit le nombre d'appels LLM Ainsi, au lieu de parcourir les quatre autres segments séparément, il va fusionner tous ces quatre autres morceaux et exécuter cette invite avec le contenu fusionné Il est donc très important que vous compreniez ce qui se passe dans les coulisses. Un agent a la capacité de se corriger lui-même en utilisant cette technique créative raffinée. Nous allons conserver cette approche, et nous allons terminer la leçon ici. J'espère que cela vous plaira et que vous vous reverrez à la prochaine leçon. 12. Créer et interagir avec l'agent: Bonjour et bon retour. Nous allons maintenant définir les deux autres outils que l'agence va utiliser. Importons depuis les outils, téléchargeons le PDF et récupérons les documents d'archives Afin de définir ces outils, nous allons importer des outils depuis Lama Index Cord. Nous allons importer un outil fonctionnel. Et nous allons définir l'outil de téléchargement PDF, qui sera une instance de cet outil fonctionnel, et nous devons transmettre la fonction elle-même, savoir télécharger le PDF. Encore une fois, nous devons lui donner un nom. Je vais donc appeler cet outil de téléchargement de fichiers PDF, et nous avons aussi, désolé, un outil de fonction par défaut Et nous devons également lui donner une description. Il est recommandé d'en donner une description. Je vais donc dire qu'il s'agit d'une fonction Python. Cela télécharge le fichier PDF par lien. C'est notre outil de téléchargement de PDF et nous allons également définir un autre outil appelé l'outil FEG Archive, qui sera identique. Nous passons la fonction PE Archive papers, lui donnons un nom, nous la récupérons depuis Archive Et nous allons vous donner la description disant de télécharger les articles récents de Max PursultsRcent sur le sujet Nous pouvons y mettre cet espace réservé depuis Archive. C. Et il faut fermer ça. OK, maintenant que nous avons défini ces deux outils, nous allons créer une nouvelle cellule, et nous allons créer l'agent. Donc, à partir de Lama index point core, cet agent, nous allons importer un agent React. Nous avons donc plusieurs choses ici, nous allons créer une instance d'un agent React. Pourquoi réagir ? Parce qu'il va vers Cet agent fonctionne en deux étapes principales. La première étape est le raisonnement Il reçoit donc une requête, l'agent évalue s'il dispose suffisamment d'informations pour répondre directement ou s'il a besoin d'un outil, puis il agit Si l'agent décide d' utiliser un outil, il exécute l'outil puis revient à la phase de raisonnement pour déterminer s' il peut désormais répondre à déterminer s' il peut désormais répondre la requête ou s'il a besoin d'outils supplémentaires C'est donc aussi simple que de dire «   React Agent » à partir d'outils. Et transmettez une liste d'outils. Téléchargez donc le PDF 2, outil Rack et récupérez Archive 2 Nous devons fournir un LM que cela va utiliser. Nous allons passer notre modèle LM, le GPT 40 Mini. Enfin, nous allons dire que Vervos est vrai afin de savoir ce qui se passe dans les coulisses, tous les journaux que cet agent jette Et c'est tout. Nous avons maintenant créé un agent. Nous pouvons donc commencer à discuter avec notre agent. Pour cela, nous allons avoir besoin d'un modèle de requête. Créons un modèle de requête, et nous allons probablement l' affiner dans les prochaines leçons. Donc cela va dire que je suis intéressé par un sujet, n'est-ce pas ? Trouvez dans votre base de connaissances des articles liés à ce sujet. Utilisez le modèle suivant pour interroger un document de recherche, outil de moteur de requête pour. Je vais vous dire de fournir le titre, le résumé, les auteurs et le lien pour télécharger quatre articles. Laissez-moi voir quatre articles liés au sujet. Période. J'ai Whoops. Et je dois dire que s'il n'y en a pas, pourriez-vous récupérer le plus récent sur Archive ? Depuis Archive. OK. Il s'agit donc d'un modèle de requête que j'ai écrit. Voyons si cela fonctionne. Créons un nouveau moi et disons que la réponse est égale à celle de l'agent qui discute. Nous allons transmettre le modèle de requête et formater pour vous donner le sujet. Le sujet portera sur les modèles multi-modèles. J'attends de cette liste d'articles que, par exemple, des modèles multimodèles seront extraits. Et probablement autre chose. Mais je ne sais pas quels autres articles seront récupérés car ce n'est que le titre. Et souvenez-vous de ces recherches pour le résumé, il contient un résumé, des catégories et tout ça. Il va donc probablement aller chercher d'autres documents également. Exécutons donc ceci, et vous pouvez voir que la sortie indique Running Step et cet ID, l'entrée de l'étape est le modèle de requête avec le sujet, qui est des modèles multimodaux. Maintenant, l'agent pense que la langue actuelle de l'utilisateur est l'anglais. J'ai besoin d'un outil pour m'aider à répondre à la question. L'action qu'il va entreprendre va donc utiliser le document de recherche, l'outil du moteur de requête, et l'entrée sera la suivante : fournir un résumé du titre, auteurs et un lien à télécharger pour les articles liés aux modèles multimodaux Donc, ce que cela fait, c'est utiliser ce moteur de requête. N'oubliez pas que le moteur de requête utilise GPT four omni, il a la capacité de fournir une réponse en suivant ce modèle ici Suivre ou indiquer le titre, le résumé des auteurs et le lien pour télécharger l'article. Le constat est qu'il va revenir. Tout cela est généré par GPT 40 M. Il donne le titre, le résumé, les auteurs et l'URL du PDF Nous pouvons mieux visualiser cette réponse en utilisant cette classe Markdown. Je vais dire Markdown, réponse par point. OK. Maintenant, nous pouvons mieux visualiser cela. C'est la réponse de GPT 40 Mini. Il m'a juste donné une liste de quatre articles. C'est génial. Dans cette leçon, nous allons nous arrêter ici. Dans la prochaine leçon, nous verrons s' il est possible de télécharger tous ces articles. J'espère qu'il vous plaira. Rendez-vous dans la prochaine leçon. 13. Télécharger les documents et en chercher de nouveaux: Bonjour et bon retour. Dans cette leçon, nous allons télécharger tous ces articles. L'agent, souvenez-vous que l'une des fonctionnalités de l'agent est qu'il conserve la mémoire des tâches déjà terminées. Étant donné que l'agent conserve cet historique des discussions, nous pouvons demander à charger ensuite les articles sans les mentionner explicitement. OK. Tapons donc ce nouvel agent de réponse cellulaire qui discute et indique l'agent de télécharger tous les articles que vous avez mentionnés. Voyons ce qui va se passer. Il exécute donc cette étape et la saisie consiste à télécharger tous les articles que vous avez mentionnés, l'action ou l'idée. Tout d'abord, je dois télécharger plusieurs fichiers PDF sur la base des URL fournies pour les articles relatifs aux modèles multimodaux L'action consiste à télécharger le fichier PDF deux. L'entrée de l'action est cette URL PDF, et le fichier de sortie est celui-ci. Ce n'est que pour un article. Vous pouvez voir que dans ce dossier, il n'a téléchargé qu'un seul article. Ensuite, il passe à l'autre article, qui est le texte multilingue pour atteindre compréhension visuelle, qui est le second Mais regardez ça. Maintenant, il dit que le voyou dit qu' il peut répondre sans plus d'outils, et qu'il utilise toujours le hum, il n'est pas en train d'effectuer une action La réponse est action. Téléchargez le PDF 2. Il ne télécharge pas le deuxième fichier, ni le troisième ou le quatrième. Nous allons résoudre ce problème en procédant une ingénierie rapide dans ce chat. Mais pour l'instant, continuons et bien, mettons la réponse en Markdown afin que nous puissions mieux voir les choses Je peux voir que la réponse est téléchargez-le, utilisez l'outil de téléchargement PDF et il nous dit la dernière chose qu'il a faite. Celui-ci. Cela n'est pas exact. Nous allons régler ce problème. Mais pour l'instant, voyons ce qui se passe si nous posons des questions sur un sujet qui n'est pas disponible dans cette liste que nous avons trouvée. Allons interagir à nouveau avec l'agent et parlons de l'agent, modèle de requête, et nous allons aborder un autre sujet comme l'informatique quantique, quelque chose comme celui-ci. Aucun de ces articles ne parle d' informatique quantique, je crois. Voyons ce qui se passe si nous parlons de ce sujet qui n'est pas disponible. Nous allons évidemment mieux voir la réponse ici. Mais voyons le processus de raisonnement. Le modèle parle maintenant de l'informatique quantique. L'idée est que la langue actuelle de l'utilisateur est l'anglais. J'ai besoin d'un outil pour m'aider à répondre à la question. L'action consiste à rechercher un document, un outil de moteur de requête. L'entrée est ce modèle, mais il semble qu'il n' y ait rien en rapport avec l'informatique quantique. L'idée est donc qu'il ne semble y avoir aucun article disponible dans la base de connaissances sur l'informatique quantique. Je vais chercher des articles récents dans Archive. Il utilise maintenant le troisième outil, qui est Fetch from Archive, et l'entrée d'action est le titre Quantum Computing et les articles en comptent cinq OK. J'ai donc trouvé ces cinq articles ici. Vous pouvez observer l' intrication, la l'échelle d'une transition de phase quantique sur un ordinateur quantique, l'additivité uniforme, ou quoi que ce soit d'autre, ces choses compliquées Mais il a définitivement trouvé nouveaux articles sans que nous intervenions dans ce processus. C'est cool. La prochaine étape de la prochaine leçon, ce que nous allons faire, est de résoudre le problème du téléchargement des articles. 14. Améliorer l'invite à télécharger des fichiers: Bonjour, et bon retour. Donc, tout d'abord, faisons un commit, afin de ne pas perdre toutes nos modifications. Je vais supprimer ce document afin que la prochaine fois que nous réglerons ce problème, vous puissiez voir que tout est résolu. Ajoutons donc tout. Ajoutons un message de validation disant «  créez la première version de l'agent et faisons un push. À. Maintenant, ce que nous allons faire ensuite c'est modifier cette invite ici, l'invite de téléchargement, car pour le moment c'est très simple, et ce n'est peut-être pas la meilleure façon de le faire. Bien sûr, vous pouvez utiliser Chat GPT ou Clot pour améliorer cette invite ici, c'est ce que j'ai En fait, l'invite qu'il a reçue pour résoudre ce problème était tout d'abord un processus itératif J'ai essayé plusieurs fois pour résoudre ce problème. J'ai essayé plusieurs invites, et c'est celle-ci qui a résolu le problème J'ai également essayé d'autres approches, et je vais vous inviter à essayer d'autres approches. Nous allons en discuter dans un instant. Pour l'instant, je vais répondre à l'invite, télécharger les articles suivants et pour chaque article. Je vais dire, tout d'abord, oups. Que se passe-t-il ? Traitez un papier à la fois. Ensuite, faisons-le comme ça. Comme ça. Ouais. Ensuite, indiquez numéro de papier que vous êtes en train de traiter parmi le total. Troisièmement, je ne sais pas pourquoi ça va. Effectuez un cycle de téléchargement complet avant de passer à la version suivante. Quatrièmement, indiquez explicitement lorsque vous passez à l'article suivant, et cinquièmement, ne fournissez un résumé final qu'une fois tous les articles téléchargés. Voici donc les nouvelles instructions pour l' étape de téléchargement. OK ? Voyons donc ce qui se passe maintenant. Je vais tout recommencer juste pour être clair, effacer toutes les sorties, tout exécuter et voyons ce qui se passe. Il récupère les quatre articles relatifs aux modèles multimodaux. Maintenant c'est ici. Cela veut dire que je vais commencer à télécharger les articles un par un, traitant chaque article dans l'ordre dans lequel il a été répertorié. Action, téléchargement du PDF deux, la deuxième action consiste à nouveau à télécharger le PDF deux. Mais maintenant, pour le texte multilingue Rich visual, la troisième action est la même en utilisant le PDF à télécharger, deux mais avec ces prototypes multimodaux complets, et la quatrième action est la même mais avec un vêtement de discussion Rat. Il a maintenant téléchargé les quatre articles. Voyons maintenant ce qui se passe lorsqu' il récupère celui de l' informatique quantique. Oh, oups Maintenant, il télécharge également ceux de l'informatique quantique. Nous avons donc réglé une partie du problème. Nous avons réussi à télécharger les quatre articles que nous avions explicitement définis pour le téléchargement, mais maintenant les autres sont également téléchargés. Alors maintenant, nous devons faire autre chose pour éviter cette situation et vous pouvez voir cette dernière étape a également échoué. Permettez-moi de supprimer à nouveau tous les articles, pour une raison quelconque. Ici, il n'est pas explicite qu'il n'est pas nécessaire de télécharger les articles. Encore une fois, j'ai suivi un processus itératif. Il s'agit d'essais et d'erreurs et celui-ci est plus simple. Il suffit de dire qu'il ne faut pas télécharger d'articles. À moins que l'utilisateur ne le demande explicitement. Donc, en disant simplement à l'IA : « Hé, ne téléchargez pas les articles à moins que l'utilisateur ne le dise », alors voyons ce qui se passe. Je vais effacer à nouveau toutes les sorties et tout exécuter. Cette fois, j'ai dû modifier le modèle de création, pas le modèle de téléchargement. Maintenant, il cherche à nouveau dans la base de données ou dans l'index. Qu'est-ce que le document sur les modèles multimodaux ? Il a trouvé les quatre articles, et voyons ce qui se passe. Tout ce processus est une ingénierie rapide, tout comme lorsque vous effectuez une ingénierie rapide pour HAGPT, vous pouvez également effectuer une ingénierie rapide pour les agents Voyons ce qui se passe dans le dossier des documents. J'ai téléchargé les quatre articles avec succès. Les documents multimodaux. Jusqu'à 23 secondes. Et maintenant, il attire de nouveaux articles liés à l'informatique quantique Ce que je pense maintenant, c'est qu'il ne télécharge pas les articles sur l' informatique quantique. C'est ici. Vous pouvez voir maintenant qu'il n'a trouvé qu' un seul article cette fois , mais c'est une bonne chose. Au moins, il n'a pas téléchargé tous les articles. C'est bon signe. Faisons un commit ici. SG commit, compilons la deuxième version du et faisons push. Cette fois, avec les papiers inclus. C'est tout pour cette vidéo. J'espère que cela vous plaira et à bientôt dans la prochaine leçon. 15. Créer un cours pour gérer l'index: Bonjour, et bon retour. Donc, ce que nous allons faire maintenant, c'est créer deux classes. Une classe sera appelée gestionnaire d'index, et la seconde classe sera appelée classe agent. Ces deux classes auront donc pour but de capturer toute la logique que nous avons créée ici dans ces blocs-notes Jupiter dans une classe afin que nous puissions la réutiliser. Nous allons créer un stream illuminé qui utilise ces deux classes afin que les choses soient un peu plus faciles à gérer Nous allons donc tout d'abord créer la classe du gestionnaire d'index. Nous allons donc définir ici une classe appelée gestionnaire d'index, et nous allons créer un constructeur Et ici, nous allons juste avoir comme paramètre le modèle intégré Le modèle Self Dot Embed sera celui que nous adopterons ici. Nous allons également définir ce réseau vide de vapeurs. OK. Nous allons donc maintenant définir une méthode de récupération des articles, qui va recevoir comme paramètres le sujet que nous voulons récupérer et le nombre d'articles, nous allons fixer par défaut à dix comme nous le faisions dans les carnets Jupiter Donc, les articles à point automatique, au lieu d'être maintenant un tableau vide, vont les appeler Fetch Archive Papers avec un sujet, et les articles comptent Sujet. Génial. Et nous devons nous calmer ici. OK. Maintenant que nous avons ces documents à récupérer, nous allons également créer cette méthode appelée création de documents à partir de documents Cette méthode sera exactement la même que celle-ci. En fait, permettez-moi de tout copier-coller. ceci en retrait. Mais cette fois, il ne recevra pas les articles en tant que paramètre car les articles sont déjà initialisés ici Je vais juste dire pour le papier à points multiples. Je vais également me débarrasser de ces documents ici. Nous allons initialiser les documents ailleurs. Nous allons dire que les documents à point automatique ajoutent un document. Nous devons importer un document depuis l'index Lama, n'est-ce pas ? Et nous pouvons renvoyer les documents ou simplement ne pas le faire, c'est à vous de décider. Je m'en fous vraiment. Je vais juste les rendre. OK, et ça dit que les documents n'existent pas. C'est pourquoi nous n'avons pas défini de documents. Alors, faisons-le ici. Ça ne fait de mal à personne. Faisons-le ici. Auto-documents et terrain. Nous allons maintenant créer une méthode de création d'index, Dev Create index, qui va appeler cette fonction de création de document à partir de documents, et elle va également rassembler et exécuter cette logique ici. OK. Donc, quelque chose comme ça , nous l'avons inventé et nous avons dû importer les paramètres et l'index du magasin vectoriel. OK. Et ici, nous allons l'attribuer à une variable d'instance appelée index. De plus, embed model, nous l'avons dans le constructeur, donc nous pouvons appeler self ce modèle embed, et documents est là, self Je préfère donc l'initialiser ici. Voilà, et voilà. C'est juste une question d'organisation. Cela n'affecte pas le résultat. Mais maintenant, nous avons cette classe qui a cette méthode pour récupérer les documents Je vais remplir le tableau des articles. Ensuite, après avoir exécuté cette méthode, vous pouvez créer l'index, puis nous avons besoin d'une autre méthode pour récupérer l'index. Cette méthode va faire la même chose que nous faisons ici. Cette même logique, nous allons la mettre ici et évidemment nous devons importer des éléments, des vecteurs à indexer, un indice de charge depuis le stockage Pour une raison ou une autre, cela a été dupliqué Le modèle de lit sera autodidacte et le modèle Bt. Et quoi d'autre ? Nous n'allons pas l'attribuer mais renvoyer ce taux. Je pense donc que c'est tout ce que nous devons faire pour ce cours. Nous pouvons également définir une méthode d'art uniquement pour imprimer les titres des articles. Je vais donc parler de listes de documents, et nous allons simplement en copier la logique. Comme imprimer du papier, carreau pour papier, je m'occupe des papiers, pour montrer des choses si vous le souhaitez C'est tout pour ce cours. Dans la leçon suivante, nous allons créer la classe d'agent. N'oubliez pas de valider et d'ajouter le gestionnaire d'index Cass. Poussez. C'est tout pour cette leçon. J'espère qu'il vous plaira. Rendez-vous dans la prochaine leçon. 16. Créer un cours pour interagir avec l'agent: Génial. Nous allons maintenant créer une autre classe appelée classe agent. Créons un autre fichier appelé agent point PY. Ici, nous allons définir cette classe appelée agent. Dans le destructeur, nous allons obtenir l'index et le modèle LLM L'index Self point sera un index et le modèle LLM Self Dot sera un modèle LLM Dans Deconstructuor, nous allons créer le moteur de requêtes, l'outil RAG, l'outil de téléchargement de PDF, l'outil archivage Fetch et la méthode de génération de l'agent pour créer l'agent Donc, en gros, extrayez la logique de ce bloc-notes Jupiter dans une classe. Donc, tout d'abord, créez, créez un moteur de requêtes. Ce que cela va faire, c'est essentiellement le faire. Prenez cette ligne de code et mettez-la ici. Nous allons dire que le moteur de requête self point sera égal à self point index en tant que moteur de requête, module self point M et à similarité top K égal à cinq. Cela peut également être un paramètre du constructeur, mais codons-le en dur à cinq La deuxième méthode va être de créer un outil RAC. Et en gros, ce sera ça. Self Dot Rat sera donc égal à l'outil de moteur de requête. Importons-le dans ce fichier et le moteur de requête sera un moteur de requête Self Point. Débarrassons-nous de ça et voilà. Maintenant, l'autre méthode sera l' outil de téléchargement PDF intégré et il s' agira essentiellement de copier ceci, télécharger automatiquement le PDF vers. Nous devons importer l'outil fonctionnel et télécharger le PDF à partir du fichier d'outils ici. Voilà. Maintenant, créez l'outil Fetch Archive. Encore une fois, ça va être ça. Il suffit de le copier-coller ici. Dites « self point fetch Archive tool » et importez l'archive de récupération à partir du fichier d'outils Voilà. Nous allons maintenant définir une autre méthode, qui sera l'agent de construction. L'agent de construction sera exactement cela ici. Il suffit de le copier, le coller ici et de l'importer en haut. Voilà. Et il s'agira de l'outil PDF à télécharger Self Dot, de l'outil Self Dot G, de l'outil archivage Self Dot Fetch et du taux de modèle Self Dot LLM Encore une fois, tous ces paramètres, comme les verbes, sont vrais. Ils peuvent être définis dans l' initialiseur si vous le souhaitez. Je vais juste les coder en dur et dire variables, varios toujours vrai Maintenant, je vais dans l'initialiseur pour appeler toutes ces méthodes dans cet ordre Tout d'abord, le moteur de requêtes, puis l'outil de création de Rag, puis l'outil de téléchargement de fichiers PDF, puis de n'importe quel outil d'archivage pour animaux de compagnie et enfin, de création de l'agent Génial. Il ne nous manque qu'une seule méthode ici. Lorsque nous initialiserons cette classe d'agent, l'agent sera initialisé automatiquement, mais je veux une méthode de chat qui recevra un message Ça va revenir à soi, l'agent, au chat. Un message. En gros, avec cette interaction, nous n'allons plus transmettre ces modèles de requêtes. Nous allons juste transmettre n'importe quel message. Le message sera essentiellement n'importe quelle chaîne ici. OK, c'est tout pour ce cours. Encore une fois, c'est get at Git commit as agent class et push. C'est tout pour cette vidéo. J'espère que cela vous plaira et à bientôt dans la prochaine leçon où nous allons créer une application Sprint Let en utilisant ces deux classes. 17. Créer une interface utilisateur de chat avec Streamlit: Bonjour, et bon retour. Ce que nous allons faire maintenant, c'est créer une application Streamlet. Le Stream lead est un framework Python permettant de créer des applications, en particulier des applications de données comme on le dit ici. Il transforme les scripts de données en applications Web partageables dans MD, le tout entre pith Aucune expérience en matière de front-end n'est requise. Vous allez dans la section galerie, vous verrez de nombreux exemples que les gens ont créés avec Stream it. Par exemple, pour le LMS, ils ont créé des chatbots ou un chat GPT avec la mémoire, beaucoup Vous pouvez voir les tendances, Math GBT, portfolio, peu Et il dispose d'une grande compatibilité ou de nombreux outils, je dirais, pour créer des cartes LLM OK. Nous allons donc commencer à créer ce chatbot pour interagir avec l'agent Tout d'abord, nous devons installer streamlt en tant que dépendance PDM ajoute donc Streamlet et attend que la dépendance soit installée En attendant, nous allons créer un fichier appelé app point PY. OK. Ici, nous allons importer notre classe d'agent, et nous allons également importer notre classe de gestionnaire d'index. Nous allons également importer à partir des constantes, du modèle intégré et du modèle LM. OK. Et nous allons également importer de manière fluide sous le nom ST. C'est ainsi que les membres de la communauté Python avaient l'habitude d'importer cette bibliothèque. Il ne le reconnaît toujours pas car il est toujours en cours d'installation. Et nous allons commencer à créer l'application pendant son installation. Donc, tout d'abord, nous devons comprendre un concept dans Streamlt qui est l'état de session Donc, dans Streamlt, nous créons un script, et ce script est exécuté comme s'il était dans une boucle sauvage Donc, tout ce que nous écrivons ici sera recréé si nous ne mettons pas ces variables dans ce que l'on appelle l'état de session Il existe plusieurs façons mettre en cache ces variables, et l'une d'entre elles consiste à utiliser un décorateur Ce décorateur s'appelle ST stream lit cache. Ici, nous pouvons définir une fonction, et je vais appeler cette fonction agent d'initialisation Parce que nous voulons que l'agent ne soit initialisé qu'une seule fois. C'est pourquoi nous mettons cette ressource en cache. Nous allons dire que le gestionnaire d' index est équivalent au gestionnaire d'index. N'oubliez pas que nous devons passer le modèle d'intégration, puis nous pouvons obtenir l'index en appelant la méthode retrieve index que nous avons créée pour cette classe Enfin, nous allons renvoyer un agent avec un index et le modèle LM. OK. Nous allons maintenant initialiser l' agent et l'état de la session OK. Alors, comment s'y prendre ? Nous disons que si l'agent n'est pas dans l'état de session à points extrêmes , alors nous allons dire «  stream session state point agent », « agent initialisé La première fois que ce script s'exécute, l'agent ne sera pas dans l'état de session, il sera donc initialisé Nous devons également initialiser dans l'état de session les messages du chat Si les messages ne sont pas en état de session de diffusion, les messages seront alors un tableau vide. Stream Lead a donc un moyen de créer des discussions. Nous allons voir comment il utilise le concept de lignes. Donc, une partie du chat sera l'utilisateur ou l'humain, et l'autre partie du chat sera l'assistant ou l'IA. Nous allons donc voir comment cela fonctionne dans un instant. Ensuite, ce que nous allons faire maintenant, c'est afficher les messages du chat. N'oubliez pas que tout cela va se dérouler comme dans une boucle temporelle. Nous devons donc chaque fois que ce script est exécuté, imprimer les messages. Pour les messages en cours de session, il s'agit de la syntaxe que nous utilisons pour écrire les messages avec SD et elle contient cette variable de message de discussion. Et que devons-nous mettre ? Le nom ? Le nom peut être l'utilisateur, l'assistant, l'IA ou un humain. L'utilisateur et l'humain sont une seule et même chose. Assistant et IA , c'est la même chose. Mais le message va contenir le rôle. Nous allons donc parler du rôle du point de message. Le rôle du message sera donc soit utilisateur soit assistant. Comment le savons-nous ? Parce que nous allons définir cela dans un instant. Supportez-moi, c'est tout. Donc, pour écrire quelque chose dans le chat, nous utilisons cette méthode de marquage, et nous allons imprimer le contenu du message ici OK. On pourrait dire que les messages seront un ensemble de dictionnaires et que chaque dictionnaire aura un rôle et un contenu Le rôle sera soit utilisateur, soit assistant et le contenu sera le message lui-même, qui peut être dans Markdown. Nous allons maintenant en créer les fonctionnalités de base. Nous allons dire si c'est rapide, et nous allons appeler cette méthode de saisie. Posez-moi des questions sur les vapeurs utilisées pour la recherche. OK. Alors, qu'est-ce que cela signifie ? Cela signifie que si cette variable d'invite n' est pas initialisée, cette syntaxe signifie, d'accord, initialisez-la pour qu'elle soit celle renvoyée cette entrée de chat Il s'agit simplement d'un espace réservé , comme vous allez le voir dans un instant Donc, ce que nous tapons ici sera assigné à cette invite. OK. Alors maintenant, nous allons ajouter aux messages d' état de session, lister ce dictionnaire ici parce que lorsque je vais saisir quelque chose, je suis l'utilisateur Le rôle sera donc l' utilisateur et le contenu sera celui attribué dans cette invite. Génial. Nous l'avons donc ajouté, mais maintenant nous devons le montrer à l'écran Donc, avec SD, le message de chat, et cette fois ce sera l'utilisateur. Je vais noter l'invite. Je vais donc afficher ce que j'ai tapé, en gros. Ensuite, je vais afficher la réponse de l'assistant. Avec ST chat message, assistant, je vais obtenir la réponse et la réponse sera récupérée auprès de l'agent Rappelez-vous que nous créons cette méthode de chat , que nous passons l'invite et que cela renvoie quelque chose qui possède un attribut de réponse. Nous allons maintenant imprimer la réponse et enfin, nous allons ajouter la réponse aux messages d' état de session, mais avec le rôle de l'assistant C'est donc tout. Nous avons juste créé cette application en 33 lignes de code. Et pour l'exécuter, assurez-vous que dans votre terminal, fermez le terminal, assurez-vous ouvrir à nouveau et de l'afficher. Cela signifie que vous êtes dans l' environnement virtuel, monsieur. Et si vous ne le voyez pas, vous pouvez également taper PDM use sorry, PDM Ben B ENV et PDM BENV activate C'est le commandement. Imprimez donc la commande pour activer l'environnement virtuel. Vous devrez donc essentiellement taper ceci et le coller. OK. Maintenant, je suis dans un environnement virtuel. OK. Donc tu devrais voir ça. Lorsque cela s'affiche ou si vous n'avez pas de CSH ou de Mac, saisissez-le simplement Évidemment, avec une commande correcte, vous allez taper stream it run up point PY. Cela ouvrira cette discussion ici, mais quelque chose ne va pas. Voyons donc ce que c'est une ressource de cache, pas un cache. Essayons donc à nouveau. OK, ajoutons donc quelque chose que j'ai oublié, et ce sera une vignette juste pour le voir un peu plus beau. Donc, chez Tile Archive, Papers, Chatbot, oui. C'est un bon nom. J' espère donc que si vous êtes frais, vous verrez ce titre. D'accord, comme je vous l'ai dit, il s'agit d'un espace réservé pour la saisie du chat Mais je peux taper n'importe quoi ici. Je vais dire, pouvez-vous aller chercher articles liés à la mécanique quantique ? Et n'oubliez pas que la mécanique quantique ne fait pas partie de la base de connaissances. Voici donc cette petite icône qui indique que je suis l'utilisateur, et c'est l'assistant. Et ici, je vais ajouter autre chose juste pour l'améliorer un peu. Tout d'abord, je pense qu'il a renvoyé la réponse, mais je veux être plus convivial. Et ici, dans cette ligne, je vais dire avec st point spinner, et je vais dire penser Bien que ce ne soit pas le cas, pendant que l'agent réfléchit, nous allons montrer Spinner qu'il soit plus convivial Permettez-moi de le copier et de le refaire. Réfléchir avec un spinner. Parce que n'oubliez pas que cela prend du temps. Il s'agit d'une méthode plus conviviale pour afficher le résultat. Voyons ce que sont les lots. Donc oui, je pense que c'est terminé, ou je pense que c'est une erreur pour une raison Arrêtons cela exécutons-le à nouveau et posons à nouveau la même question. Pouvez-vous trouver des articles liés à la mécanique quantique ? Il utilise donc l'outil Fetch from Archive, mais il réfléchit toujours Attendons donc un moment, et voilà. C'est la réponse. D'accord, nous avons maintenant une interface utilisateur pour voir les résultats de notre dur labeur. J'espère que cette vidéo vous plaira, à bientôt dans la prochaine leçon. 18. Obtenir une clé API auprès de Pinecone: Bonjour et bon retour. Nous allons donc maintenant stocker notre indice dans Pine Ce. Pine Cone est donc un service dans le cloud permettant de stocker des index. Cela signifie qu'il s'agit d'une base de données vectorielle dans le cloud. Donc, comme il est dit ici, vous pouvez créer une IA compétente avec sa base de données vectorielle au cœur. Pine Cone est la principale plateforme de connaissances pour créer des applications d' IA précises, sécurisées et évolutives. Vous pouvez donc créer un compte gratuitement. De toute évidence, il y a un niveau gratuit. Vous pouvez choisir le plan de démarrage pour les essais et pour les petites applications. C'est gratuit. Vous avez Pinec sans serveur, vous avez Pinec Inference et Assistant, qui sont des produits qu'ils sont en train de créer, et vous devez utiliser la région est des États-Unis, un sur huit d'entre nous Vous pouvez commencer gratuitement, créer un compte, puis vous connecter. Je vais le faire moi-même. Voilà, et ensuite ce que nous allons faire ici, c'est créer un index. Cliquez sur ce bouton, créez un index, et je vais dire Recherche dans les archives. Vous pouvez configurer ici les dimensions de ces vecteurs. N'oubliez pas que les vecteurs ont des dimensions. Ce sont les intégrations, ou vous pouvez choisir N'oubliez pas que nous utilisons du texte en incorporant trois grands caractères, nous pouvons donc simplement le choisir directement. Et regardez ça. Les dimensions sont automatiquement renseignées avec 3 072 C'est donc la dimension des intégrations lorsque nous utilisons ce Sans serveur. Je vais choisir Ws. Je peux choisir d'autres fournisseurs de cloud car je suis abonné au forfait payant et je peux choisir d'autres régions. Mais si vous utilisez le niveau gratuit, vous ne pourrez utiliser AWS UseTo que pour activer protection contre la suppression afin d'empêcher tout utilisateur de supprimer accidentellement cet index Comme je vais le supprimer de toute façon, cela n'a pas d'importance. OK. Vous avez maintenant créé votre index dans le Cloud. Vous avez maintenant besoin de quelques clés d'API. J'ai créé une clé d'API. Tu peux lui donner un nom. Vous pouvez donner des autorisations personnalisées ou si vous ne voulez pas vous compliquer les choses pour le moment, donnez-leur simplement toutes les autorisations, puis vous devrez les copier et les copier dans un endroit sûr Dans la leçon suivante, nous allons créer une autre classe appelée Index manager pinecone qui hérite du gestionnaire d' index et apporter quelques modifications afin d'enregistrer les données dans afin d'enregistrer les données 19. Créer un gestionnaire d'index pour Pinecone: Bonjour, et bon retour. Donc, tout d'abord, engageons-nous à sauvegarder notre travail. Alors, passez à Git commit, et j'ai oublié ce que nous avons fait. Donc, oh, oui, nous l'avons construit, diffusé en streaming. C'est ce que nous avons fait. Nous faisons un Git Push. OK. Donc, ce que nous allons faire maintenant, c'est d'installer deux dépendances, tout d' abord, dont nous avons besoin pour utiliser piece. Tout d'abord, nous avons besoin du client Pine Cone, et nous aurons également besoin du Lama Index Vector Stores Pinecone Laissons donc PDM faire le gros du travail et installer ces dépendances L'autre point est que nous allons créer un gestionnaire d'index Pinecone point Pyle Et nous allons créer une autre classe appelée gestionnaire d' index Pine cone. Mais nous allons utiliser l' héritage ici et nous allons hériter du gestionnaire d'index Nous allons donc hériter de certaines méthodes de la classe du gestionnaire d' index Donc, dans ce constructeur, nous allons avoir besoin, encore une fois, du modèle intégré, du nom d'index de la de pin que nous Nous allons appeler le constructeur parent, et le constructeur parent n'a besoin que du modèle intégré Et nous allons créer une instance de pomme de pin. Pour le moment, il ne s'affiche pas parce qu'il est en cours d'installation, mais importons-le de différentes manières. Donc, à partir de Pine cone, nous allons importer cette pomme de pin Eh bien, il a fini d'être installé, alors maintenant il reconnaît. Nous allons donc avoir besoin de la clé API. Et cela va provenir des variables d' environnement. Ce n'est pas ce que nous avons fait. Je ne sais pas pourquoi il fait ça. Ce n'est pas ce que nous avons fait. Mettons ici un exemple d' ENB à points, un cône d'épingle, clé d' API ici dans l'ENB, nous allons mettre la même chose mais avec la valeur réelle J'ai donc déjà copié ma clé d'API. Vous devriez donc également le copier pour le coller ici. Et évidemment, je vais le supprimer plus tard. OK. Donc, pour charger cette clé d'API, nous devons décharger le point m. Nous allons donc importer depuis le point Nous allons utiliser le point de chargement du port M. Nous allons l'appeler pour obtenir l'environnement b à partir de ce fichier EMV Génial. Maintenant, ce que nous allons faire c'est dire Self Dot Pine Ce Index, PC Dot Index, et nous allons transmettre le nom de l'index. Ensuite, nous allons initialiser le magasin de vecteurs en tant que magasin vectoriel en forme de cône de pin, et nous devons l'importer Nous allons l'importer depuis Lama Index point vectorstores point Pine cone, Import Pine Cone Vector store. OK. Donc, pour ce magasin de vecteurs, nous devons transmettre l'indice de la pomme de pin, qui sera l'indice de la pomme de pin à points automatiques, tel que nous l' avons défini ici Nous avons également besoin du contexte de stockage. Je vais dire que le contexte de stockage Self Dot est égal à, et nous devons importer le contexte de stockage depuis Lama Index point core, importer le contexte Starch. contexte de stockage provient des valeurs par défaut, et nous allons passer cette fois au magasin vectoriel OK. Génial. Donc, ce que nous avons fait jusqu'à présent, c'est d'appeler le constructeur de ce gestionnaire d'index et assigner d'autres variables ici Nous devons maintenant écrire la méthode de création d'index à partir du gestionnaire d'index. N'oubliez pas que nous avons cet index de création. Nous devons réécrire cela parce que maintenant nous allons stocker les choses dans Pine C. Nous faisons donc de même Nous initialisons un MTRray. Nous appelons la création de documents à partir de documents, et nous avons défini les paramètres en conséquence. Nous devons également importer les paramètres. Nous allons également obtenir les paramètres à partir d'ici. Enfin et surtout, nous allons bouleverser les vecteurs Désolé, soi ou vecteur, index du magasin de vecteurs, que je pense que nous devons également importer d'ici. Index des magasins vectoriels. Ce que nous allons faire ici est basé sur des documents comme nous l'avons fait ici. OK. À partir de documents. Nous sommes sur l'index Self Dot comme ça. Documents à points automatiques. Le contexte de stockage sera un contexte de stockage à points automatiques et le modèle d'intégration ou le modèle d'intégration sera un modèle d'intégration à points automatiques OK. Voilà. Pour récupérer l'index, nous allons simplement renvoyer le point d'index du magasin vectoriel à partir du magasin vectoriel, et nous allons passer le magasin de vecteurs, qui est le magasin vectoriel Self Dot et l'embed qui sera le modèle Self point Embed C'est ça. C'est tout ce que nous devons faire pour, euh, modifier les données et récupérer l'index de la broche C. Donc, si nous allons ici, accéder à la base de données, archiver pour la recherche, aucun enregistrement pour l'instant Nous allons donc créer un bloc-notes Jupiter, qui s'appellera Pine C, et dans ce bloc-notes UPiter, nous allons remplacer les vecteurs À partir de Constance, importons le modèle intégré. Sélectionnons d'abord le noyau. Nous allons également importer l'indice depuis le gestionnaire d'indices Pinecone , le gestionnaire d'indices Pinecone Nous allons créer une instance de ce gestionnaire d' index de classes PyCon, passer le modèle intégré et transmettre le nom de l'index, qui dans notre cas est Archive research, Archive research Et maintenant, nous allons aller chercher les articles , les modèles linguistiques Nous allons récupérer les 101 derniers. Nous récupérons les articles et nous sommes maintenant prêts à créer l'index Créons l'index. Vous pouvez voir, oups, nous avons reçu une erreur, et c'est parce qu'elle indique, je pense que ce modèle doit être intégré, pas intégrer ce modèle pas intégrer Essayons encore une fois. Voyons si cela résout le problème. Oui, donc pour une raison quelconque, il s'agit d'un modèle intégré, mais saisie automatique n'a pas fonctionné pour moi Donc, intégrez le modèle, pas intégrez. Le modèle intégré renversera les vecteurs. Vous pouvez voir maintenant que nous avons inséré ces vecteurs dans l'espace de noms par défaut Et vous pouvez voir ici le vecteur. Il ne s'agit essentiellement que de valeurs. Il y a 3 072 de ces numéros ici, et ils contiennent des métadonnées, le contenu du nœud, le type de nœud, ID du document, l'ID du document, etc. Donc, en gros, ce sont des vecteurs. Nous en avons dix, dix vecteurs. Ce sont des intégrations. C'est ça. Il n'y a plus rien de magique là-dedans. Nous pouvons également récupérer l'index en faisant cela : le gestionnaire d' index récupère l'index et BLA nous récupérons l'index, et nous pouvons également imprimer la liste des articles que nous avons récupérés Vous pouvez donc voir maintenant que c'est différent. Vous pouvez voir la vidéo Panda. En fait, nous allons apporter quelques modifications ici parce que c'est difficile à lire. Voyons voir. Nous allons voir le gestionnaire d'index, et ici nous allons dire pour papier pour papier dans des articles. Imprimez simplement le carreau en papier. Remplissez les papiers. OK. Alors c'est tout. C'est tout ce que nous devons faire. Cela ne se reflétera malheureusement pas car nous devons redémarrer le noyau. Faisons donc ce gestionnaire d' index. Désolée. Et nous n'allons pas aller chercher Eh bien, oui, allons chercher les articles, mais créons, ne créons pas à nouveau l'index Je vais juste énumérer les journaux et les voici. Ce sont les documents dont nous disposons actuellement. Maintenant, ce que nous allons faire, c'est engager à sauvegarder nos progrès. Ajoutez le gestionnaire d'index Pinec et recevez Push. C'est tout pour cette vidéo. J'espère que cela vous plaira, et passons à la leçon suivante. 20. Utiliser l'index de la cône de pin dans l'application Streamlit: Génial. Nous avons maintenant nos vecteurs dans Pine cone. Nous avons ces données, ces titres dans Pine C. Test. Essayons de voir si cela fonctionne réellement. Ainsi, dans notre application streamlt, lors de l'initialisation de notre agent, au lieu d'utiliser le gestionnaire d'index, nous allons utiliser le gestionnaire d' index pinecone OK. Nous devons donc transmettre le nom de l'index, qui sera Archive research. C'est le seul changement que nous devons faire pour obtenir les données de la broche C. Testons cette API à points simplifiée Voyons maintenant quel en est le résultat. Je vais donc utiliser cette fois ce modèle de requête que nous avons utilisé la dernière fois, qui se trouve ici. Voyons voir. Remplaçons donc ceci. Je suis intéressé par les multi-modèles et les modèles multi-modèles. Voyons donc si l'agent est capable de récupérer des informations à partir de cet index des pommes de pin et de récupérer les articles liés aux modèles multimodaux Si nous voyons ici, c'est où ? Icône. Ce sont les articles sur les modèles linguistiques. Il indique que voici quelques articles récents relatifs aux modèles multimodaux Traduction et reconnaissance vocales sans ressources avec LMS et génération de discours de longue durée avec des modèles de langage parlé Nous en avons un. C'est où ? Celui-ci est une génération vocale longue avec des modèles de langage parlé, et l'autre est quel est son autre nom ? Traduction vocale sans ressources, traduction vocale sans ressources et reconnaissance avec LM. J'ai réussi à récupérer les données de PyCon. N'est-ce pas passionnant ? C'est ça. Nous avons maintenant créé un agent qui stocke l'index dans le cloud. Il récupère cela et fonctionne parfaitement. J'espère que cette leçon vous plaira et que vous vous reverrez à la prochaine. 21. Déployer l'application pour rationaliser le cloud communautaire: Bonjour, et bon retour. Nous allons donc maintenant déployer notre application sur le Community Cloud diffusé en streaming Comme vous pouvez le constater, sur la page d'accueil, déploiement sur le Community Cloud est gratuit. C'est gratuit. Il vous suffit donc de vous inscrire, de créer un compte, connecter votre compte GitHub, puis vous pourrez trouver le dépôt Elle doit se trouver dans votre compte Github et déployer cette application. C'est un processus très, très simple. Donc, ce que je vais faire maintenant avant faire est de créer un fichier TXT à points d' exigences. Pourquoi ? Parce que Streamlt Community Cloud attend un fichier texte des exigences pour installer toutes les dépendances Il ne reconnaît pas ce fichier journal pdmt, alors peut-être qu'ils le feront à l' avenir, mais pour le moment, ils ont besoin du point TextFile requis PDM dispose donc de cette commande d'exportation. Donc, si vous tapez ceci, il l'affichera dans le terminal, mais nous voulons que ce soit dans un fichier. Nous utilisons donc ce symbole supérieur à et disons : «   D'accord, nous voulons que cela figure dans le texte à points des exigences ». Donc, si vous ouvrez ce fichier, il contiendra toutes les dépendances qui se trouvent dans le journal PDM, mais les exigences sont un fichier TXT à points Faisons un commit dans un fichier TXT à points d'exigences. Allons-y. Passons maintenant au Streamed Community Cloud pour accéder au tableau de bord Une fois inscrit, inscrivez-vous, connectez votre compte GitHub et vous pouvez cliquer sur ce bouton qui dit créer une application Je vais choisir cette option, qui consiste à déployer une application publique depuis GitHub Je vais donc rechercher le chercheur des archives Ripple. N'oubliez pas que c'est mon Ripple. Je vais dire que le chemin du fichier principal est app point PY, et il s'agit d'un sous-domaine choisi au hasard Votre domaine sera cette application de streaming. Vous pouvez cliquer sur Déployer pour déployer votre application. Mais cela ne fonctionnera pas pour le moment car nous devons définir des billes environnementales N'oubliez pas que nous avons besoin de la clé d'API OpenAI et de la clé d'API Pine Phone pour que cela fonctionne Si vous revenez pour partager ce stream point IO, que vous cliquez sur les paramètres du projet et que vous passez au secret, vous pourrez définir les secrets ou les bulles d' environnement ici. Je vais les copier et les mettre en phase, mais vous devez les mettre entre guillemets. Sinon, il va se plaindre. Enregistrez les modifications et l'application va maintenant se déployer avec ces bulles d' environnement. Je vais cliquer ici Si vous cliquez sur cette application de gestion, vous verrez qu'elle a installé les dépendances requises. J'installe tout cela et les dépendances Python ont été installées à partir du point d'exigences TXT, et c'est tout. Vous pouvez maintenant dire bonjour au chat. s'agit d'un LLM, il saura donc qu'il n'a besoin d' aucune base de connaissances pour répondre à Hello Nous allons maintenant utiliser le modèle que nous avions ici. Mais pour garder à l'esprit que vous n'en avez pas besoin, vous pouvez expérimenter avec d'autres modèles, mais c'est celui qui fonctionne pour le moment, je vais donc l'utiliser. Je m'intéresse aux modèles multiples ici, aux modèles multiples. Voyons s'il peut traiter cela. Je m'attends à ce que les journaux s'affichent ici, mais je ne sais pas pourquoi ils ne s'affichent pas. Permettez-moi de rafraîchir ceci. Je vais le copier et rafraîchir juste pour voir qu' il y a quelque chose là-dedans. Ouais. Si cela ne fonctionne pas, je vais redémarrer l' application pour voir si cela fonctionne. Eh bien, cela a fonctionné cette fois, mais je ne vois pas les journaux ici. Habituellement, les journaux sont affichés ici, mais je ne sais pas pourquoi ils ne s' affichent pas pour le moment. Quoi qu'il en soit, il a répondu par l' un des articles de la base de connaissances. N'oubliez pas que cette génération vocale non formelle à l'aide des modèles de langage parlé se trouvait dans la base de connaissances. Alors c'est tout. Vous pouvez maintenant partager ce lien avec vos amis et les laisser tester votre application. J'espère que cette vidéo vous plaira, à bientôt dans la prochaine leçon. 22. Conclusion: Félicitations pour avoir terminé ce cours. Merci d'avoir rejoint cette aventure pour apprendre à créer des agents IA. Vous connaissez les outils nécessaires pour créer, améliorer et déployer des solutions d'IA avec des applications du monde réel. Continuez à expérimenter, restez curieux et souvenez-vous que les possibilités de l'IA sont infinies Quelles sont les prochaines étapes ? Appliquez vos connaissances à des projets du monde réel. C'est la meilleure façon d'apprendre. Partagez vos réussites contact avec la communauté, continuez apprendre et restez au courant des avancées de l'IA Vos commentaires sont importants. Veuillez prendre un moment pour laisser un avis ou partager votre opinion. Vos commentaires contribuent à améliorer ce cours et le contenu futur, et n'oubliez pas de rester connecté. Faites-nous part de vos questions, idées de projets ou simplement pour partager vos progrès. Ensemble, nous pouvons rendre l'IA accessible, et c'est le cas.