txtai est une base de données d'intégration tout-en-un pour les workflows de recherche sémantique, d'orchestration LLM et de modèles de langage.
txtai 8.0 a été récemment publié et a ajouté la possibilité d'exécuter des agents. Les agents créent automatiquement des flux de travail pour répondre aux demandes des utilisateurs à multiples facettes.
Les agents connectent une série d'outils à un moteur de raisonnement (c'est-à-dire LLM). Nous donnons à l'agent une certaine latitude pour suivre sa propre logique interne afin de répondre à la demande d'un utilisateur.
Il s’agit d’un énorme changement de paradigme. Nous parlons de confier le contrôle à un programme et d’espérer qu’il prenne lui-même les bonnes décisions. Il y a peut-être des parallèles avec le fait d'envoyer votre enfant à l'université - nous espérons que nous l'avons élevé de la bonne manière pour qu'il soit capable de prendre des décisions intelligentes 😂.
Cet article se concentrera sur des exemples qui donnent aux agents l'autonomie nécessaire pour répondre aux demandes. Avec cela, nous pouvons commencer à entrevoir la voie à suivre vers de plus en plus d’automatisation des tâches.
Installertxtaiet toutes les dépendances.
pip install txtai[graph] autoawqDans le premier exemple, nous définirons un agent qui a accès à la base de données d'intégrations txtai-wikipedia. La génération augmentée de récupération standard (RAG) et la recherche vectorielle sont généralement conçues pour une recherche unique. Les agents permettent une approche de recherche beaucoup plus créative et itérative.
Cet exemple ne demandera pas à l'agent exactement ce que nous recherchons. Nous demanderons à l'agent de nous dire quelque chose d'intéressant basé sur ses propres idées et recherches.
from txtai import Agent agent = Agent( tools=[{ "name": "wikipedia", "description": "Recherche dans une base de données Wikipédia", "provider": "huggingface-hub", "container": "neuml/txtai- wikipedia" }], llm="hugging-quants/Meta-Llama-3.1-8B-Instruct-AWQ-INT4", max_iterations=10, )à partir de l'affichage d'importation IPython.display, Markdownanswer = agent(""" Je m'ennuie 🥱. Pensez à 2-3 sujets disparates et utilisez-les pour rechercher sur Wikipédia afin de générer quelque chose de fascinant. Rédigez un rapport résumant chaque article. Incluez une section avec une liste d'hyperliens d'articles. Écrivez le texte sous la forme Markdown """, maxlength=16000) display(Markdown(answer)).======== Nouvelle tâche ======== Je m'ennuie 🥱. Pensez à 2-3 sujets disparates et utilisez-les pour effectuer une recherche sur Wikipédia afin de générer quelque chose de fascinant. Rédigez un rapport résumant chaque article. Incluez une section avec une liste de liens hypertextes vers des articles. Écrivez le texte en Markdown. === Pensées de l'agent : Pensée : J'utiliserai Wikipédia pour rechercher des articles liés à trois sujets disparates. Le premier sujet sera la « Grande Barrière de Corail », le deuxième sera « la Matière Noire » et le troisième sera « Le Manuscrit de Voynich ». >>> Outil d'appel : 'wikipedia' avec arguments : {'query' : 'Great Barrier Reef'} === Pensées de l'agent : Pensée : Les résultats de la recherche Wikipedia montrent que la Grande Barrière de Corail est un écosystème vaste et diversifié qui soutient une grande variété de vie. Cependant, il est également confronté à de nombreuses menaces, notamment le changement climatique, la pollution et la surpêche. >>> Outil d'appel : 'wikipedia' avec arguments : {'query' : 'Dark Matter'} === Pensées de l'agent : Pensée : Les résultats de la recherche Wikipedia montrent que la matière noire est une forme hypothétique de matière qui n'interagit pas avec la lumière ou d’autres rayonnements électromagnétiques, et est impliqué par des effets gravitationnels qui ne peuvent être expliqués par la relativité générale. >>> Outil d'appel : 'wikipedia' avec arguments : {'query' : 'The Voynich Manuscript'} === Pensées de l'agent : Pensée : Les résultats de la recherche Wikipedia montrent que le Manuscrit de Voynich est un codex illustré qui a été carbone -daté du début du XVe siècle, et ses origines, sa paternité et son objectif sont encore débattus. >>> Outil d'appel : 'final_answer' avec arguments : {'answer': "### Rapport...
[Courte citation de 8% de l'article original]