Skip to content

Latest commit

History

History
87 lines (53 loc) 路 7.79 KB

README-es.md

File metadata and controls

87 lines (53 loc) 路 7.79 KB

babyagi

Objetivo

Este script de Python es un ejemplo de un sistema de gesti贸n de tareas impulsado por inteligencia artificial. El sistema utiliza las API de OpenAI y Pinecone para crear, priorizar y ejecutar tareas. La idea principal detr谩s de este sistema es que crea tareas basadas en el resultado de tareas anteriores y un objetivo predefinido. Luego, el script utiliza las capacidades de procesamiento del lenguaje natural (NLP) de OpenAI para crear nuevas tareas basadas en el objetivo, y Pinecone para almacenar y recuperar los resultados de las tareas para el contexto. Esta es una versi贸n simplificada del original Task-Driven Autonomous Agent (28 de marzo de 2023).

Este README cubrir谩 lo siguiente:

C贸mo funciona

El script funciona ejecutando un bucle infinito que realiza los siguientes pasos:

  1. Extrae la primera tarea de la lista de tareas.
  2. Env铆a la tarea al agente de ejecuci贸n, que utiliza la API de OpenAI para completar la tarea seg煤n el contexto.
  3. Enriquece el resultado y lo almacena en Pinecone.
  4. Crea nuevas tareas y prioriza la lista de tareas en funci贸n del objetivo y el resultado de la tarea anterior.

La funci贸n execution_agent() es donde se utiliza la API de OpenAI. Esta toma dos par谩metros: el objetivo y la tarea. Luego env铆a una solicitud a la API de OpenAI, que devuelve el resultado de la tarea. La solicitud consta de una descripci贸n de la tarea del sistema de IA, el objetivo y la tarea en s铆. Luego se devuelve el resultado como una cadena.
La funci贸n task_creation_agent() es donde se utiliza la API de OpenAI para crear nuevas tareas basadas en el objetivo y el resultado de la tarea anterior. La funci贸n toma cuatro par谩metros: el objetivo, el resultado de la tarea anterior, la descripci贸n de la tarea y la lista de tareas actual. Luego env铆a una solicitud a la API de OpenAI, que devuelve una lista de nuevas tareas como strings. Luego, la funci贸n devuelve las nuevas tareas como una lista de diccionarios, donde cada diccionario contiene el nombre de la tarea.
La funci贸n prioritization_agent() es donde se utiliza la API de OpenAI para priorizar la lista de tareas. La funci贸n toma un par谩metro, el ID de la tarea actual. Luego env铆a una solicitud a la API de OpenAI, que devuelve la lista de tareas repriorizadas como una lista numerada.

Finalmente, el script utiliza Pinecone para almacenar y recuperar los resultados de las tareas para el contexto. El script crea un 铆ndice Pinecone basado en el nombre de la tabla especificado en la variable YOUR_TABLE_NAME. Luego, Pinecone se utiliza para almacenar los resultados de la tarea en el 铆ndice, junto con el nombre de la tarea y cualquier metadato adicional.

C贸mo utilizar el script

Para utilizar el script, deber谩 seguir estos pasos:

  1. Clonar el repositorio a trav茅s de git clone https://github.com/yoheinakajima/babyagi.git y cd en el repositorio clonado.
  2. Instalar los paquetes requeridos: pip install -r requirements.txt
  3. Copiar el archivo .env.example a .env: cp .env.example .env. Aqu铆 es donde establecer谩 las siguientes variables.
  4. Establezca sus claves de API de OpenAI y Pinecone en las variables OPENAI_API_KEY, OPENAPI_API_MODEL y PINECONE_API_KEY.
  5. Establezca el entorno de Pinecone en la variable PINECONE_ENVIRONMENT.
  6. Establezca el nombre de la tabla donde se almacenar谩n los resultados de la tareas en la variable TABLE_NAME.
  7. (Opcional) Establezca el objetivo del sistema de gesti贸n de tareas en la variable OBJECTIVE.
  8. (Opcional) Establezca la primera tarea del sistema en la variable INITIAL_TASK.
  9. Ejecute el script.

Todos los valores opcionales anteriores tambi茅n se pueden especificar en la l铆nea de comando.

Modelos compatibles

Este script funciona con todos los modelos de OpenAI, as铆 como con Llama a trav茅s de Llama.cpp. El modelo predeterminado es gpt-3.5-turbo. Para utilizar un modelo diferente, especif铆quelo a trav茅s de OPENAI_API_MODEL o utilice la l铆nea de comando.

Llama

Descargue la 煤ltima versi贸n de Llama.cpp y siga las instrucciones para compilarla. Tambi茅n necesitar谩 los pesos del modelo Llama.

  • Bajo ninguna circunstancia comparta enlaces IPFS, enlaces magnet o cualquier otro enlace para descargar modelos en cualquier lugar de este repositorio, incluyendo propuestas (issues), debates (discussions) o solicitudes de extracci贸n (pull requests). Ser谩n eliminados de inmediato.

Despu茅s de eso, enlace llama/main a llama.cpp/main y models a la carpeta donde tenga los pesos del modelo Llama. Luego ejecute el script con OPENAI_API_MODEL=llama o el argumento -l.

Advertencia

Este script est谩 dise帽ado para ser ejecutado continuamente como parte de un sistema de gesti贸n de tareas. La ejecuci贸n continua de este script puede resultar en un alto uso de la API, as铆 que 煤selo responsablemente. Adem谩s, el script requiere que las APIs de OpenAI y Pinecone est茅n configuradas correctamente, as铆 que aseg煤rese de haber configurado las APIs antes de ejecutar el script.

Contribuci贸n

Como es obvio, BabyAGI todav铆a est谩 en su infancia y, por lo tanto, todav铆a estamos determinando su direcci贸n y los pasos a seguir. Actualmente, un objetivo de dise帽o clave para BabyAGI es ser simple para que sea f谩cil de entender y construir sobre ella. Para mantener esta simplicidad, solicitamos amablemente que se adhiera a las siguientes pautas al enviar solicitudes de extracci贸n (PR):

  • Enf贸quese en modificaciones peque帽as y modulares en lugar de refactorizaciones extensas.
  • Al introducir nuevas funciones, proporcione una descripci贸n detallada del caso de uso espec铆fico que est谩 abordando.

Una nota de @yoheinakajima (5 de abril de 2023):

I know there are a growing number of PRs, appreciate your patience - as I am both new to GitHub/OpenSource, and did not plan my time availability accordingly this week. Re:direction, I've been torn on keeping it simple vs expanding - currently leaning towards keeping a core Baby AGI simple, and using this as a platform to support and promote different approaches to expanding this (eg. BabyAGIxLangchain as one direction). I believe there are various opinionated approaches that are worth exploring, and I see value in having a central place to compare and discuss. More updates coming shortly.

Soy nuevo en GitHub y en c贸digo abierto, as铆 que por favor tenga paciencia mientras aprendo a administrar este proyecto adecuadamente. Dirijo una empresa de capital de riesgo durante el d铆a, por lo que generalmente revisar茅 las solicitudes de extracci贸n y los problemas por la noche despu茅s de acostar a mis hijos, lo que puede no ser todas las noches. Estoy abierto a la idea de traer soporte y actualizar茅 esta secci贸n pronto (expectativas, visiones, etc). Estoy hablando con muchas personas y aprendiendo, 隆esperen actualizaciones pronto!

Antecedentes

BabyAGI es una versi贸n simplificada de Task-Driven Autonomous Agent (28 de marzo de 2023) compartido en Twitter. Esta versi贸n se ha reducido a 140 l铆neas: 13 comentarios, 22 l铆neas en blanco y 105 l铆neas de c贸digo. El nombre del repositorio surgi贸 como reacci贸n al agente aut贸nomo original, y el autor no pretende implicar que esto sea AGI.

Hecho con amor por @yoheinakajima, que casualmente es un VC (隆me encantar铆a ver lo que est谩s construyendo!).