O TaskWeaver é uma estrutura de agente de código primeiro para planejar e executar perfeitamente tarefas de análise de dados. Essa estrutura inovadora interpreta as solicitações do usuário por meio de trechos de código e coordena com eficiência uma variedade de plugins na forma de funções para executar tarefas de análise de dados de maneira com estado.
Ao contrário de muitas estruturas de agentes que acompanham apenas o histórico de bate-papo com o LLMS no texto, o TaskWeaver preserva o histórico de bate-papo e o histórico de execução do código , incluindo os dados da memória. Esse recurso aprimora a expressividade da estrutura do agente, tornando-o ideal para processar estruturas de dados complexas, como dados tabulares de alta dimensão.

container por padrão para execução de código. Verifique a execução do código para obter mais detalhes.?Taskweaver requer python> = 3.10 . Pode ser instalado executando o seguinte comando:
# [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 Se você deseja instalar uma versão anterior do TaskWeaver, pode verificar a página de lançamento, encontre a tag (por exemplo, v0.0.1 ) e instalá -la por
pip install git+https://github.com/microsoft/TaskWeaver@<TAG>
Antes de executar o TaskWeaver, você precisa fornecer suas configurações LLM. Tomando o OpenAI como exemplo, você pode configurar o arquivo taskweaver_config.json como segue.
{
"llm.api_key" : " the api key " ,
"llm.model" : " the model name, e.g., gpt-4 "
}O TaskWeaver também suporta outras LLMs e configurações avançadas, verifique os documentos para obter mais detalhes.
O TaskWeaver mudou para o modo de container por padrão para execução de código, o que significa que o código é executado em um contêiner. Pode ser necessário instalar o Docker e cuidar das dependências no contêiner. Verifique a execução do código para obter mais detalhes.
# assume you are in the cloned TaskWeaver folder
python -m taskweaver -p ./project/Isso iniciará o processo do TaskWeaver e você poderá interagir com ele através da interface da linha de comando. Se tudo correr bem, você verá o seguinte prompt:
=========================================================
_____ _ _ __
|_ _|_ _ ___| | _ | | / /__ ____ __ _____ _____
| |/ _` / __| |/ /| | /| / / _ / __ `/ | / / _ / ___/
| | (_| __ < | |/ |/ / __/ /_/ /| |/ / __/ /
|_|__,_|___/_|_|__/|__/___/__,_/ |___/___/_/
=========================================================
TaskWeaver: I am TaskWeaver, an AI assistant. To get started, could you please enter your request?
Human: ___
O TaskWeaver também suporta o WebUI para fins de demonstração, consulte os documentos da interface do usuário da web para obter mais detalhes.
TaskWeaver pode ser importado como uma biblioteca para se integrar ao seu projeto existente, mais informações podem ser encontradas nos documentos
Mais documentações podem ser encontradas no site do TaskWeaver.
As demos foram feitas com base na interface do usuário da web, o que é melhor para exibir os artefatos gerados, como imagens. Os demos também podem ser realizados na interface da linha de comando.
Neste exemplo, mostraremos como usar o TaskWeaver para extrair dados de um banco de dados e aplicar um algoritmo de detecção de anomalia.
Se você deseja seguir este exemplo, precisará configurar o plugin sql_pull_data no arquivo project/plugins/sql_pull_data.yaml . Você precisa fornecer as seguintes informações:
api_type : azure or openai
api_base : ...
api_key : ...
api_version : ...
deployment_name : ...
sqlite_db_path : sqlite:///../../../sample_data/anomaly_detection.db O plugin sql_pull_data é um plug -in que extrai dados de um banco de dados. É preciso uma solicitação de linguagem natural como entrada e retorna um quadro de dados como saída.
Este plug -in é implementado com base no Langchain. Se você deseja seguir este exemplo, precisa instalar o pacote Langchain:
pip install langchain
pip install tabulateNeste exemplo, mostraremos como usar o TaskWeaver para prever o preço do QQQ nos próximos 7 dias.
Se você deseja seguir este exemplo, é necessário garantir que você tenha esses dois requisitos instalados:
pip install yfinance
pip install statsmodelsPara mais exemplos, consulte o nosso artigo.
O planejamento do TaskWeaver é baseado no modelo LLM. Portanto, se você deseja repetir os exemplos, o processo de execução pode ser diferente do que você vê nos vídeos. Por exemplo, na segunda demonstração, o assistente pode perguntar ao usuário qual algoritmo de previsão deve ser usado. Normalmente, instruções mais concretas ajudam o modelo a gerar melhores planos e codificar.
Nosso artigo pode ser encontrado aqui. Se você usar o TaskWeaver em sua pesquisa, cite nosso artigo:
@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}
}
Este projeto pode conter marcas comerciais ou logotipos para projetos, produtos ou serviços. O uso autorizado de marcas comerciais ou logotipos da Microsoft está sujeito e deve seguir as diretrizes de marca registrada e marca da Microsoft. O uso de marcas comerciais da Microsoft ou logotipos em versões modificadas deste projeto não deve causar confusão ou implicar o patrocínio da Microsoft. Qualquer uso de marcas comerciais ou logotipos de terceiros estão sujeitas às políticas de terceiros.
Os modelos recomendados neste repositório são apenas exemplos, usados para explorar o potencial dos sistemas de agentes com o papel no TaskWeaver: uma estrutura de código-primeiro-primeiro. Os usuários podem substituir os modelos neste repositório de acordo com suas necessidades. Ao usar os modelos recomendados neste repositório, você precisa cumprir as licenças desses modelos, respectivamente. A Microsoft não se responsabiliza por qualquer violação dos direitos de terceiros resultantes do uso deste repositório. Os usuários concordam em defender, indenizar e manter a Microsoft inofensivos de e contra todos os danos, custos e honorários advocatícios em conexão com quaisquer reivindicações decorrentes deste repositório. Se alguém acreditar que esse repositório viola seus direitos, notifique o email do proprietário do projeto.