Taskweaver est un cadre d'agent de code d'abord pour planifier et exécuter des tâches d'analyse de données de manière transparente. Ce cadre innovant interprète les demandes d'utilisateurs via des extraits de code et coordonne efficacement une variété de plugins sous forme de fonctions pour exécuter des tâches d'analyse de données de manière avec état.
Contrairement à de nombreux frameworks d'agent qui ne suivent que l'historique de chat avec des LLM dans le texte, TaskWeaver conserve à la fois l' historique du chat et l' historique d'exécution du code , y compris les données en mémoire. Cette caractéristique améliore l' expressivité du cadre de l'agent, ce qui le rend idéal pour le traitement des structures de données complexes comme les données tabulaires à haute dimension.

container par défaut pour l'exécution de code. Veuillez vérifier l'exécution du code pour plus de détails.?Taskweaver nécessite Python> = 3.10 . Il peut être installé en exécutant la commande suivante:
# [optional to create conda environment]
# conda create -n taskweaver python=3.10
# conda activate taskweaver
# clone the repository
git clone https://github.com/microsoft/TaskWeaver.git
cd TaskWeaver
# install the requirements
pip install -r requirements.txt Si vous souhaitez installer une version antérieure de Taskweaver, vous pouvez vérifier la page de version, trouver la balise (par exemple, v0.0.1 ) et l'installer par
pip install git+https://github.com/microsoft/TaskWeaver@<TAG>
Avant d'exécuter Taskweaver, vous devez fournir vos configurations LLM. En prenant OpenAI comme exemple, vous pouvez configurer le fichier taskweaver_config.json comme suit.
{
"llm.api_key" : " the api key " ,
"llm.model" : " the model name, e.g., gpt-4 "
}TaskWeaver prend également en charge d'autres LLM et configurations avancées, veuillez vérifier les documents pour plus de détails.
TaskWeaver est passé au mode container par défaut pour l'exécution du code, ce qui signifie que le code est exécuté dans un conteneur. Vous devrez peut-être installer Docker et prendre soin des dépendances dans le conteneur. Veuillez vérifier l'exécution du code pour plus de détails.
# assume you are in the cloned TaskWeaver folder
python -m taskweaver -p ./project/Cela commencera le processus Taskweaver et vous pouvez interagir avec lui via l'interface de ligne de commande. Si tout se passe bien, vous verrez l'invite suivante:
=========================================================
_____ _ _ __
|_ _|_ _ ___| | _ | | / /__ ____ __ _____ _____
| |/ _` / __| |/ /| | /| / / _ / __ `/ | / / _ / ___/
| | (_| __ < | |/ |/ / __/ /_/ /| |/ / __/ /
|_|__,_|___/_|_|__/|__/___/__,_/ |___/___/_/
=========================================================
TaskWeaver: I am TaskWeaver, an AI assistant. To get started, could you please enter your request?
Human: ___
TaskWeaver prend également en charge WebUI à des fins de démon, veuillez vous référer aux documents d'interface utilisateur Web pour plus de détails.
Taskweaver peut être importé en bibliothèque pour s'intégrer à votre projet existant, plus d'informations peuvent être trouvées dans les documents
Plus de documents peuvent être trouvés sur le site Web de Taskweaver.
Les démos ont été réalisées sur la base de l'interface utilisateur Web, ce qui est mieux pour afficher les artefacts générés tels que les images. Les démos pourraient également être réalisées dans l'interface de ligne de commande.
Dans cet exemple, nous vous montrerons comment utiliser Taskweaver pour extraire les données d'une base de données et appliquer un algorithme de détection d'anomalie.
Si vous souhaitez suivre cet exemple, vous devez configurer le plugin sql_pull_data dans le fichier project/plugins/sql_pull_data.yaml . Vous devez fournir les informations suivantes:
api_type : azure or openai
api_base : ...
api_key : ...
api_version : ...
deployment_name : ...
sqlite_db_path : sqlite:///../../../sample_data/anomaly_detection.db Le plugin sql_pull_data est un plugin qui tire les données d'une base de données. Il prend une demande de langage naturel en entrée et renvoie un DataFrame comme sortie.
Ce plugin est implémenté en fonction de Langchain. Si vous souhaitez suivre cet exemple, vous devez installer le package Langchain:
pip install langchain
pip install tabulateDans cet exemple, nous vous montrerons comment utiliser Taskweaver pour prévoir le prix de QQQ dans les 7 prochains jours.
Si vous souhaitez suivre cet exemple, vous devez vous assurer que ces deux exigences sont installées:
pip install yfinance
pip install statsmodelsPour plus d'exemples, veuillez vous référer à notre article.
La planification de Taskweaver est basée sur le modèle LLM. Par conséquent, si vous souhaitez répéter les exemples, le processus d'exécution peut être différent de ce que vous voyez dans les vidéos. Par exemple, dans la deuxième démo, l'assistant peut demander à l'utilisateur quel algorithme de prédiction doit être utilisé. En règle générale, plus d'invites en béton aideront le modèle à générer de meilleurs plans et code.
Notre papier pourrait être trouvé ici. Si vous utilisez Taskweaver dans vos recherches, veuillez citer notre article:
@article{taskweaver,
title={TaskWeaver: A Code-First Agent Framework},
author={Bo Qiao, Liqun Li, Xu Zhang, Shilin He, Yu Kang, Chaoyun Zhang, Fangkai Yang, Hang Dong, Jue Zhang, Lu Wang, Minghua Ma, Pu Zhao, Si Qin, Xiaoting Qin, Chao Du, Yong Xu, Qingwei Lin, Saravan Rajmohan, Dongmei Zhang},
journal={arXiv preprint arXiv:2311.17541},
year={2023}
}
Ce projet peut contenir des marques ou des logos pour des projets, des produits ou des services. L'utilisation autorisée de marques ou de logos Microsoft est soumise et doit suivre les directives de marque et de marque de Microsoft. L'utilisation de marques ou de logos de Microsoft dans des versions modifiées de ce projet ne doit pas provoquer de confusion ou impliquer le parrainage de Microsoft. Toute utilisation de marques ou de logos tiers est soumis aux politiques de ces tiers.
Les modèles recommandés de ce dépôt ne sont que des exemples, utilisés pour explorer le potentiel des systèmes d'agent avec le papier chez Taskweaver: un cadre d'agent de code. Les utilisateurs peuvent remplacer les modèles de ce dépôt en fonction de leurs besoins. Lorsque vous utilisez les modèles recommandés dans ce dépôt, vous devez respectivement vous conformer aux licences de ces modèles. Microsoft ne sera pas tenu responsable de toute violation de droits tiers résultant de votre utilisation de ce dépôt. Les utilisateurs acceptent de défendre, d'indemniser et de maintenir Microsoft inoffensif de tous les dommages, frais et frais des avocats dans le cadre de toute réclamation résultant de ce repo. Si quelqu'un croit que ce dépôt enfreint vos droits, veuillez informer l'e-mail du propriétaire du projet.