Вдохновлен Йохейной Каджима Бядаги
Репозиторий Babyagi-Chroma предлагает бесплатный векторный раствор для хранения, Chroma, который работает локально. Это особенно выгодно для пользователей, которые хотят избежать потенциальных затрат, связанных с другими вариантами векторного хранения, таких как Pinecone.
Этот скрипт Python демонстрирует пример системы управления задачами на основе AI, которая использует базу данных Langchain, OpenAI и Vector Chroma для создания, определения приоритетов и выполнения задач. Система создает задачи на основе результатов предыдущих задач и предопределенной цели. Затем в сценарии используются инструментарий Langchain Openai естественного языка (NLP) и возможности поиска для создания новых задач на основе цели, в то время как Chroma хранят и извлекает результаты задачи для контекста. Это упрощенная версия оригинального автономного агента, управляемого задачами (28 марта 2023 г.).
Этот Readme охватывает следующие темы:
Сценарий выполняет следующие шаги в бесконечной петле:
Цепочка выполнения обрабатывает заданную задачу, рассматривая цель и контекст. Он использует Llmchain Llmchain Langchain для выполнения задачи. Функция execute_task принимает chroma vectorstore, цепочку выполнения, цель и информацию о задачи в качестве входных данных. Он получает список лучших k -задач из Vectorstore на основе цели, а затем выполняет задачу, используя цепочку выполнения, сохраняя результат в Vectorstore. Функция возвращает результат.
Цепочка выполнения явно не определена в этом блоке кода. Тем не менее, он передается в качестве параметра для execute_task и может быть определена отдельно в коде. Это экземпляр класса LLMCHAIN от Langchain, который принимает подсказку и генерирует ответ на основе предоставленных входных переменных.
В классе TaskCreationChain используется Llmchain для создания новых задач. Функция from_llm принимает параметры с использованием resckttemplate из Langchain, возвращая список новых задач в качестве строк. Затем он создает экземпляр TaskCreationChain вместе с пользовательскими входными переменными и указанным поведением.
В классе TaskPrioritizationChain используется LLMCHAIN для определения приоритетов задач. Функция from_llm принимает параметры через rampletemplate из Langchain, возвращая список новых задач в виде строк. Затем он создает экземпляр TaskPrioritizationChain вместе с пользовательскими входными переменными и указанным поведением.
Сценарий использует Chroma для хранения, поиска сходства и получения результатов задачи для контекста. Он создает индекс Chroma на основе имени таблицы, указанного в переменной TABLE_NAME . Впоследствии Chroma сохраняет задачу приводит к индексу, а также имя задачи и любые дополнительные метаданные.
Чтобы использовать сценарий, выполните следующие шаги:
git clone https://github.com/alexdphan/babyagi-chroma.git и cd в клонированный каталог.pip install -r requirements.txt.env.example на .env : cp .env.example .env . Установите следующие переменные в этом файле.OPENAI_API_KEY и SERPAPI_API_KEY .TABLE_NAME .OBJECTIVE переменной.INITIAL_TASK .python babyagi-chroma.py .Все необязательные значения, выше, также могут быть указаны в командной строке.
Этот сценарий работает со всеми моделями OpenAI. Модель по умолчанию- GPT-3.5 (Text-Davinci-003) . Чтобы использовать другую модель, не стесняйтесь соответствующим образом изменить код.
Этот сценарий предназначен для постоянного запуска как часть системы управления задачами. Непрерывно запуск сценария может привести к высоким использованию API, поэтому, пожалуйста, используйте его ответственно. Кроме того, сценарий требует, чтобы API и SERP OpenAI был правильно настроен, поэтому убедитесь, что API настроены перед запуском сценария.
Чтобы поддерживать простоту, любезно придерживайтесь следующих рекомендаций при отправке PRS:
Поскольку затраты на векторное хранилище стоят дорого, цель состояла в том, чтобы предоставить бесплатный вариант хранения при использовании Babyagi. Следовательно, этот пример шаблона демонстрирует использование Babyagi с Chroma.
Beabyagi-Chroma-это ускоренная версия Babyagi, которая также является упрощенной версией оригинального автономного агента, управляемого задачами (28 марта 2023 года), разделенной в Twitter.