TaskWeaver es un marco de agente de primer código para planificar y ejecutar tareas de análisis de datos. Este marco innovador interpreta las solicitudes de los usuarios a través de fragmentos de código y coordina eficientemente una variedad de complementos en forma de funciones para ejecutar tareas de análisis de datos de una manera con estado.
A diferencia de muchos marcos de agentes que solo rastrean el historial de chat con LLMS en texto, TaskWeaver conserva tanto el historial de chat como el historial de ejecución del código , incluidos los datos internos. Esta característica mejora la expresividad del marco de los agentes, lo que lo hace ideal para procesar estructuras de datos complejas como datos tabulares de alta dimensión.

container de forma predeterminada para la ejecución del código. Por favor, consulte la ejecución del código para obtener más detalles.Taskweaver requiere python> = 3.10 . Se puede instalar ejecutando el siguiente 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 Si desea instalar una versión anterior de TaskWeaver, puede verificar la página de lanzamiento, encontrar la etiqueta (por ejemplo, v0.0.1 ) e instalarla por
pip install git+https://github.com/microsoft/TaskWeaver@<TAG>
Antes de ejecutar TaskWeaver, debe proporcionar sus configuraciones LLM. Tomando OpenAI como ejemplo, puede configurar el archivo taskweaver_config.json de la siguiente manera.
{
"llm.api_key" : " the api key " ,
"llm.model" : " the model name, e.g., gpt-4 "
}TaskWeaver también admite otros LLM y configuraciones avanzadas, consulte los documentos para obtener más detalles.
TaskWeaver ha cambiado al modo container de forma predeterminada para la ejecución del código, lo que significa que el código se ejecuta en un contenedor. Es posible que deba instalar Docker y cuidar las dependencias en el contenedor. Consulte la ejecución del código para obtener más detalles.
# assume you are in the cloned TaskWeaver folder
python -m taskweaver -p ./project/Esto iniciará el proceso TaskWeaver y puede interactuar con él a través de la interfaz de línea de comandos. Si todo va bien, verá el siguiente mensaje:
=========================================================
_____ _ _ __
|_ _|_ _ ___| | _ | | / /__ ____ __ _____ _____
| |/ _` / __| |/ /| | /| / / _ / __ `/ | / / _ / ___/
| | (_| __ < | |/ |/ / __/ /_/ /| |/ / __/ /
|_|__,_|___/_|_|__/|__/___/__,_/ |___/___/_/
=========================================================
TaskWeaver: I am TaskWeaver, an AI assistant. To get started, could you please enter your request?
Human: ___
TaskWeaver también es compatible con WebUI para fines de demostración, consulte los documentos de Web UI para obtener más detalles.
Taskweaver se puede importar como una biblioteca para integrarse con su proyecto existente, se puede encontrar más información en los documentos
Se pueden encontrar más documentos en el sitio web de TaskWeaver.
Las demos se hicieron en base a la interfaz de usuario web, que es mejor para mostrar los artefactos generados, como las imágenes. Las demostraciones también podrían realizarse en la interfaz de línea de comandos.
En este ejemplo, le mostraremos cómo usar TaskWeaver para extraer datos de una base de datos y aplicar un algoritmo de detección de anomalías.
Si desea seguir este ejemplo, debe configurar el complemento sql_pull_data en el archivo project/plugins/sql_pull_data.yaml . Debe proporcionar la siguiente información:
api_type : azure or openai
api_base : ...
api_key : ...
api_version : ...
deployment_name : ...
sqlite_db_path : sqlite:///../../../sample_data/anomaly_detection.db El complemento sql_pull_data es un complemento que extrae datos de una base de datos. Se necesita una solicitud de lenguaje natural como entrada y devuelve un marcado de datos como salida.
Este complemento se implementa en base a Langchain. Si desea seguir este ejemplo, debe instalar el paquete Langchain:
pip install langchain
pip install tabulateEn este ejemplo, le mostraremos cómo usar TaskWeaver para pronosticar el precio de QQQ en los próximos 7 días.
Si desea seguir este ejemplo, debe asegurarse de tener estos dos requisitos instalados:
pip install yfinance
pip install statsmodelsPara más ejemplos, consulte nuestro documento.
La planificación de TaskWeaver se basa en el modelo LLM. Por lo tanto, si desea repetir los ejemplos, el proceso de ejecución puede ser diferente de lo que ve en los videos. Por ejemplo, en la segunda demostración, el asistente puede preguntarle al usuario qué algoritmo de predicción debe usarse. Por lo general, las indicaciones más concretas ayudarán al modelo a generar mejores planes y código.
Nuestro papel se puede encontrar aquí. Si usa TaskWeaver en su investigación, cite nuestro documento:
@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 proyecto puede contener marcas comerciales o logotipos para proyectos, productos o servicios. El uso autorizado de marcas o logotipos de Microsoft está sujeto y debe seguir las pautas de marca y marca de Microsoft. El uso de marcas registradas de Microsoft o logotipos en versiones modificadas de este proyecto no debe causar confusión o implicar el patrocinio de Microsoft. Cualquier uso de marcas comerciales o logotipos de terceros está sujeto a las políticas de esas partes de terceros.
Los modelos recomendados en este repositorio son solo ejemplos, utilizados para explorar el potencial de los sistemas de agentes con el documento en TaskWeaver: un marco de agente de código de código. Los usuarios pueden reemplazar los modelos en este repositorio de acuerdo con sus necesidades. Cuando use los modelos recomendados en este repositorio, debe cumplir con las licencias de estos modelos respectivamente. Microsoft no será responsable de ninguna infracción de los derechos de terceros resultantes de su uso de este repositorio. Los usuarios aceptan defender, indemnizar y imponer inofensivos a Microsoft de todos los daños, costos y honorarios de abogados en relación con cualquier reclamo que surja de este repositorio. Si alguien cree que este repositorio infringe sus derechos, notifique al correo electrónico del propietario del proyecto.