Объяснение Auto GPT: подробное руководство по Auto-GPT для вашего уникального сценария использования
Эта статья изначально была опубликована в The Sequence и перепубликована здесь с разрешения.
В декабре 2022 года ChatGPT, интерфейс чат-бота на базе GPT, представил большие языковые модели (LLM) массовым медиа. С тех пор появилось множество приложений GPT. Одно из самых популярных? Auto-GPT. Приложение с открытым исходным кодом на базе GPT, цель которого — сделать GPT полностью автономным. Всего за несколько коротких недель оно набрало более 120 тыс. звёзд на GitHub, обогнав PyTorch, Scikit-Learn, HuggingFace Transformers и любую другую библиотеку ИИ/ML с открытым исходным кодом, которую вы только можете вспомнить.
Что делает Auto-GPT таким популярным проектом? Во-первых, он демонстрирует перспективы в реализации заявленного им видения автономного GPT. В Auto-GPT встроены “агенты” для поиска в интернете, речи, отслеживания разговоров и многого другого. Люди использовали его, чтобы заказывать пиццу, писать код приложений и продавать мерч. Теперь ваша очередь узнать, как использовать Auto-GPT, чтобы усилить свой рабочий процесс и автоматизировать рутинные задачи.
В этом руководстве по Auto GPT вы узнаете:
- Что такое Auto-GPT?
- Как настроить Auto GPT за минуты
- Настроить
.envдля Auto-GPT
- Настроить
- Запустить вашу первую задачу с Auto-GPT
- Добавить память в Auto-GPT
- Использование Milvus Standalone (Docker Compose)
- Использование Milvus Lite(Pip Install)
- Краткое изложение "Auto-GPT Explained"
Что такое Auto-GPT?
ИИ в последнее время на пике популярности. Сообщается, что ChatGPT является самым быстрорастущим приложением всех времён, достигнув более 1 миллиарда посетителей в месяц по состоянию на февраль 2023 года. LLM провозглашают предвестниками общего искусственного интеллекта (AGI), будущим программного обеспечения и технологическим прорывом, который приведёт человечество к просветлению или уничтожению. Однако у LLM есть один вопиющий недостаток. Они не могут действовать самостоятельно. Им требуется, чтобы кто-то постоянно задавал им подсказки от задачи к задаче.
Auto-GPT стремится решить эту проблему. Auto-GPT — это программное обеспечение с открытым исходным кодом, которое стремится позволить GPT-4 функционировать автономно. Как оно обеспечивает эту автономность? С помощью агентов. Auto-GPT позволяет пользователям запускать агентов для выполнения таких задач, как просмотр интернета, речь через инструменты преобразования текста в речь, написание кода, отслеживание своих входных и выходных данных и многое другое.
Эта расширенная функциональность подпитывает ажиотаж и мрачный нарратив СМИ. Однако вам не нужно бояться ИИ. Пока вы понимаете, как использовать ИИ себе во благо, ваш нарратив об ИИ может быть позитивным и продуктивным. Итак, давайте посмотрим, как можно запустить Auto GPT на вашей локальной машине всего за несколько минут.
Как настроить Auto-GPT за минуты
Как настроить auto-GPT
Auto-GPT на удивление легко настроить. Сначала перейдите на страницу Auto-GPT в GitHub и скопируйте ссылку для клонирования. Затем откройте свой терминал или экземпляр VSCode и перейдите в рабочий каталог. У меня это ~/Documents/workspace. Используйте git clone [git@github.com](mailto:git@github.com):Significant-Gravitas/Auto-GPT.git, чтобы клонировать репозиторий локально. Далее перейдите в только что созданную папку.
В только что созданной папке создайте новую виртуальную среду Python, чтобы начать с чистого листа. Когда вы окажетесь в своей виртуальной среде, выполните pip install -r requirements.txt, чтобы установить все зависимости. Теперь у нас установлен Auto-GPT. Последнее, что нам нужно сделать, чтобы запустить экземпляр, — поместить наш ключ API OpenAI в переменные среды.
Настройка .env для Auto-GPT
configure-env.png
В корневом каталоге Auto-GPT есть файл с названием .env.template. Нам нужно изменить это имя файла просто на .env. Затем мы можем использовать этот файл для хранения всей информации, необходимой для подключения к внешним инструментам, которые дают Auto-GPT его автономные возможности. Есть одно изменение, которое нужно внести, прежде чем мы вообще сможем запустить Auto-GPT. Нам нужно изменить значение OPENAI_API_KEY на наш ключ OpenAI API.
Запустите свою первую задачу с Auto-GPT
run-task-auto-gpt.png
После обновления ключа OpenAI API Key вы можете начать использовать Auto-GPT для автоматизации некоторой работы. В этом примере мы автоматизируем создание рассылки о самых значимых событиях в сфере ИИ за прошлый месяц. Выполните python -m autogpt в терминале, чтобы запустить его. Когда мы запускаем Auto-GPT, он предлагает нам дать ему имя, определить для него роль и задать ему цели.
run-first-task-auto-gpt.png
В этом примере мы называем наш ИИ «Newsletter-Generator». В следующем запросе мы сообщаем ИИ, что Newsletter-Generator — это ИИ, предназначенный для автономного исследования и написания рассылок о разработках в области ИИ. Затем Auto-GPT предлагает нам задать до пяти целей для нашего ИИ.
Я задал Newsletter-Generator три цели. Во-первых, исследовать и найти самые значимые разработки в области ИИ за последний месяц. Во-вторых, собрать и обобщить статьи о самых значимых разработках в области ИИ за последний месяц. В-третьих, написать рассылку о проведенном исследовании. После завершения настройки Auto-GPT генерирует файл под названием ai_settings.yaml, чтобы сохранить эту конфигурацию, и приступает к своим задачам.
Для каждой задачи он предоставляет мысли, рассуждения, план, критику своего плана и следующий шаг. Перед выполнением задачи он запрашивает у нас одобрение или обратную связь по своему плану. При желании мы можем разрешить ему автономно выполнить следующие N задач без запроса нашего одобрения.
auto-gpt-ability.png
На изображении выше мы видим способность Auto-GPT распознать, что первая статья, которую он нашел в Google, на самом деле не содержит необходимой информации для выполнения его задачи. Он сообщает нам об этом, а затем формулирует следующий шаг для получения информации о значимых разработках в области ИИ за прошлый месяц.
Добавление памяти в Auto-GPT
adding-memory-auto-gpt.png
При использовании стандартной опции «локального» хранилища Auto-GPT генерирует документ под названием auto-gpt.json, который выглядит примерно как изображение выше. Он содержит блок текста, за которым следует множество чисел. Текстовые блоки отслеживают ваш текущий разговор с Auto-GPT, а числа являются векторными эмбеддингами, представляющими этот разговор.
Использование JSON-файла в качестве памяти не является масштабируемым решением. По мере того как вы больше работаете с Auto-GPT, он создает больше данных. Не только в виде памяти о вашем разговоре на данный момент, но и файлы для записи и дополнительных «агентов». Хотя JSON может отслеживать эту информацию, если вы когда-либо захотите искать, извлекать или редактировать что-либо из созданного вами, вам понадобится постоянный backend-хранилище.
К счастью, Auto-GPT может использовать множество различных бэкендов памяти. Поскольку мы храним векторные данные, векторная база данных, такая как Milvus, является идеальным решением. Milvus — это векторная база данных с открытым исходным кодом и несколькими решениями, включая распределённые решения для запуска в Kubernetes или Docker, а также способ запуска локального экземпляра. В этом примере мы рассмотрим два способа использования Milvus в качестве бэкенда.
Сначала мы рассмотрим, как использовать Milvus Standalone — распределённое решение с использованием Docker Compose, которое можно запускать локально. Затем мы рассмотрим, как использовать Milvus Lite, чтобы создавать и использовать векторную базу данных в вашем Python-коде. Первое решение требует всего нескольких изменений в коде Auto-GPT, но требует загрузки Milvus через Docker Compose. Второе решение требует немного больше изменений в существующем пакете, но позволяет использовать Milvus всего лишь с помощью pip install.
Использование Milvus Standalone (Docker Compose)
Использование Milvus Standalone в качестве решения для памяти требует меньше изменений в коде Auto-GPT, но требует Docker. Следуйте инструкциям Milvus Standalone и запустите экземпляр в локальном контейнере Docker.
После того как экземпляр Milvus запущен и работает, нам нужно внести лишь несколько изменений, чтобы Auto-GPT использовал наш экземпляр Milvus для долгосрочного хранения. В файле .env найдите MEMORY_BACKEND и измените его с local на milvus. Затем найдите MILVUS. Под MILVUS находятся две переменные окружения: MILVUS_ADDR и MILVUS_COLLECTION. Раскомментируйте их. Значения по умолчанию можно оставить.
Выполните pip install pymilvus, чтобы получить SDK Milvus. Затем снова запустите Auto-GPT с помощью python -m autogpt. На этот раз вы должны заметить изменение. В терминале должно отображаться сообщение Using memory of type: MilvusMemory. Вот и всё, что нужно, чтобы добавить Milvus в Auto-GPT.
add-milvus-auto-gpt.png
Использование Milvus Lite (Pip Install)
Примечание: Pull request для внесения этих изменений в Auto-GPT открыт.
В отличие от Milvus Standalone, Milvus Lite не имеет дополнительных зависимостей. Мы устанавливаем Milvus Lite и Python SDK Milvus с помощью pip, выполнив pip install milvus pymilvus. Поскольку мы не будем запускать Milvus извне перед запуском Auto-GPT, нам нужно, чтобы он запускался во время настройки Auto-GPT.
Мы делаем это, внося изменения в три файла: .env, autogpt/memory/milvus.py и autogpt/config/config.py. Начинаем с тех же изменений, что и для экземпляра Milvus Standalone. Измените переменную MEMORY_BACKEND на milvus и раскомментируйте переменные MILVUS_ADDR и MILVUS_COLLECTION. В разделе Milvus в файле .env добавьте новую переменную окружения с именем MILVUS_TYPE и задайте ей значение lite.
milvus-type.png
В папке autogpt есть два файла, в которые мы вносим изменения. В файле config.py в папке config задайте значение milvus_type, чтобы получить MILVUS_TYPE из переменных окружения.
# milvus type can be standalone, lite, or cloud
self.milvus_type = os.getenv("MILVUS_TYPE")
В файле milvus.py в папке memory мы добавляем оператор if, который проверяет значение milvus_type в конфигурации. Если значение равно lite, то мы импортируем Milvus, запускаем сервер и подключаемся к серверу Milvus Lite по умолчанию. Исходную строку кода мы переносим в оператор else.
if cfg.milvus_type == "lite":
from milvus import default_server
print("Starting Milvus Lite")
default_server.start()
connections.connect(host='127.0.0.1', port=default_server.listen_port)
else:
connections.connect(address=cfg.milvus_addr)
После внесения этих изменений мы можем запускать Auto-GPT как обычно. Запуск python -m autogpt запускает экземпляр Auto-GPT с немного отличающимся выводом при старте. В терминале должна отображаться строка с текстом “Starting Milvus Lite” и текст вывода Milvus Lite. Также должно по-прежнему отображаться “Using memory of type: MilvusMemory”.
milvus-memory.png
Краткое содержание "Объяснение Auto GPT"
В этой статье мы рассмотрели основы Auto-GPT. Сначала мы загрузили Auto-GPT с GitHub и запустили экземпляр. После запуска мы рассмотрели файлы, созданные Auto-GPT. Изучив файлы Auto-GPT, мы обнаружили, что он использует JSON-файл, заполненный векторами, чтобы локально отслеживать свою память.
JSON-файлы не масштабируются. Для более надежного бэкенда памяти мы используем векторную базу данных Milvus, один из других вариантов памяти, интегрированных в Auto-GPT. Мы показываем, как добавить бэкенд Milvus двумя способами: как набор автономных Docker-контейнеров или как экземпляр, запускаемый Auto-GPT. Следите за новыми публикациями о векторных базах данных с LLM.
Читать далее

DeepSeek-OCR Explained: Optical Compression for Scalable Long-Context and RAG Systems
Discover how DeepSeek-OCR uses visual tokens and Contexts Optical Compression to boost long-context LLM efficiency and reshape RAG performance.

Zilliz Cloud Now Available in Azure North Europe: Bringing AI-Powered Vector Search Closer to European Customers
The addition of the Azure North Europe (Ireland) region further expands our global footprint to better serve our European customers.

Proactive Monitoring for Vector Database: Zilliz Cloud Integrates with Datadog
we're excited to announce Zilliz Cloud's integration with Datadog, enabling comprehensive monitoring and observability for your vectorDB deployments.



