Inspirado em Babyagi de Yoheina Kajima
O repositório Babyagi-Chroma oferece uma solução de armazenamento vetorial gratuita, o Chroma, que é executado localmente. Isso é particularmente vantajoso para os usuários que desejam evitar possíveis custos associados a outras opções de armazenamento vetorial, como o Pinecone.
Esse script Python mostra um exemplo de um sistema de gerenciamento de tarefas movido a IA que aproveita o banco de dados vetorial de Langchain, Openai e Chroma para criar, priorizar e executar tarefas. O sistema cria tarefas com base nos resultados de tarefas anteriores e em um objetivo predefinido. O script utiliza o kit de ferramentas de processamento de Langchain OpenAi Natural Language (PNL) e pesquisa para criar novas tarefas com base no objetivo, enquanto o Chroma armazena e recupera os resultados da tarefa para o contexto. Esta é uma versão simplificada do agente autônomo original orientado a tarefas (28 de março de 2023).
Este readme abrange os seguintes tópicos:
O script executa as etapas a seguir em um loop infinito:
A cadeia de execução processa uma determinada tarefa considerando o objetivo e o contexto. Ele utiliza o LLMCHAIN de Langchain para executar a tarefa. A função execute_task leva um Chroma Vectorstore, uma cadeia de execução, um objetivo e as informações de tarefas como entrada. Ele recupera uma lista das principais tarefas K do VectorStore com base no objetivo e executa a tarefa usando a cadeia de execução, armazenando o resultado no VectorStore. A função retorna o resultado.
A cadeia de execução não é explicitamente definida neste bloco de código. No entanto, é passado como um parâmetro para execute_task e pode ser definido separadamente no código. É uma instância da classe llmchain de Langchain, que aceita um prompt e gera uma resposta baseada nas variáveis de entrada fornecidas.
A classe TaskCreationChain emprega a LLMChain para criar novas tarefas. A função from_llm recebe parâmetros usando o PremptTemplate de Langchain, retornando uma lista de novas tarefas como strings. Em seguida, cria uma instância do TaskCreationCain, juntamente com variáveis de entrada personalizadas e comportamento especificado.
A classe TaskprioritizationChain usa o LLMCHAIN para priorizar tarefas. A função from_llm aceita parâmetros através do PromptTemplate de Langchain, retornando uma lista de novas tarefas como strings. Em seguida, ele cria uma instância do TaskproritizationChain, juntamente com variáveis de entrada personalizadas e comportamento especificado.
O script aproveita o Chroma para armazenar, pesquisa de similaridade e recuperar os resultados da tarefa para o contexto. Ele cria um índice Chroma com base no nome da tabela especificado na variável TABLE_NAME . O Chroma armazena posteriormente a tarefa resulta no índice, juntamente com o nome da tarefa e quaisquer metadados adicionais.
Para utilizar o script, execute as seguintes etapas:
git clone https://github.com/alexdphan/babyagi-chroma.git e cd no diretório clonado.pip install -r requirements.txt.env.example para .env : cp .env.example .env . Defina as seguintes variáveis neste arquivo.OPENAI_API_KEY e SERPAPI_API_KEY .TABLE_NAME .OBJECTIVE .INITIAL_TASK .python babyagi-chroma.py .Todos os valores opcionais acima também podem ser especificados na linha de comando.
Este script funciona com todos os modelos OpenAI. O modelo padrão é GPT-3.5 (Text-Davinci-003) . Para usar um modelo diferente, fique à vontade para modificar o código de acordo.
Este script foi projetado para ser executado continuamente como parte de um sistema de gerenciamento de tarefas. A execução do script continuamente pode resultar em alto uso da API; portanto, use -o com responsabilidade. Além disso, o script exige que a API e o SERP do OpenAI sejam configurados corretamente, portanto, verifique se as APIs estão configuradas antes de executar o script.
Para manter a simplicidade, siga gentilmente as seguintes diretrizes ao enviar PRs:
Com os custos de armazenamento vetorial sendo caro, o objetivo era fornecer uma opção de armazenamento gratuita ao usar o babyagi. Portanto, este exemplo de modelo demonstra o uso de babyagi com Chroma.
Babyagi-Chroma é uma versão reduzida do Babyagi, que também é uma versão simplificada do agente autônomo original de tarefas (28 de março de 2023) compartilhado no Twitter.