AutoBrowse — это автономный агент искусственного интеллекта, который может просматривать веб-страницы. Вы просто даете AutoBrowse задачу, и он выполнит ее, взаимодействуя с веб-браузером, как если бы он был человеком.
Несколько примеров задач, которые вы можете ему дать:
Зайдите на сайт booking.com и найдите отель для 2 человек в Мадриде на 2 ночи, начиная со 2 ноября, по цене менее 200 евро за ночь.
Зарегистрируйтесь на сайте ryanair.com, указав адрес электронной почты [email protected] и пароль C0mplexPassword!.
Перейдите на Craigslist и найдите Nintendo DS. Нажмите на первый результат.
https://drive.google.com/file/d/1Ind9z3mjHKTS-Q0vJl2FaHcPLrZtdEX0/view
Создайте среду Python 3.9.
conda create --name py39 python=3.9
Активируйте среду
conda activate py39
Установить зависимости
pip install -r requirements.txt
Запустите среду браузера
Проверьте README в browser-console/
чтобы узнать, как его запустить.
Создайте файл OAI_CONFIG_LIST
со следующим содержимым и вставьте в него свой ключ OpenAI API:
[
{
"model" : " gpt-4 " ,
"api_key" : " <your-api-key> "
},
{
"model" : " gpt-3.5-turbo " ,
"api_key" : " <your-api-key> "
},
{
"model" : " gpt-3.5-turbo-16k " ,
"api_key" : " <your-api-key> "
}
]
Запустить автообзор
python autobrowse.py
Затем вам будет предложено дать задание автообзору.
Вы можете внести изменения в конфигурации агента, изменив файл agent_config.py
. Вы можете редактировать системные подсказки, менять используемые модели OpenAI и т. д.
AutoBrowse использует агенты автогена и консоль браузера для планирования и выполнения задачи.
Конструкция состоит из 3-х агентов:
HTML-помощник, который отвечает на вопросы об HTML текущей страницы, открытой в браузере.
Агент-генератор кода, который генерирует код puppeteer.js для взаимодействия с браузером (т. е. перейти на новую страницу, нажать кнопку, заполнить элементы формы)
Агент планировщика, который координирует использование двух вышеуказанных агентов для выполнения описания задачи высокого уровня, предоставленного пользователем.
Агенты взаимодействуют с браузером через соединение через веб-сокет с изолированной средой браузера, которая имеет конечную точку для принятия кода puppeteer.js для выполнения, а также конечную точку для возврата визуализированного HTML-кода текущей открытой страницы.
Поскольку HTML-документы могут быть довольно длинными и превышать лимит токенов OpenAI, для ответа на запросы об HTML используется следующий подход:
HTML-код, возвращаемый из среды браузера, урезан и упрощен для уменьшения его размера. Это достигается за счет сохранения только самых важных атрибутов, таких как id, name, type и class. Более того, script
, style
, noscript
, img
, svg
, link
, meta
вообще удалены.
Обработанный HTML разбивается на 15 000 токенов (по подсчетам OpenAI), чтобы они могли легко поместиться в контекстное окно размером 16 КБ gpt-3.5-turbo-16k
.
При использовании RAG с встраиваниями OpenAI наиболее релевантный фрагмент предоставляется в качестве контекста вопроса, а затем gpt-3.5-turbo
может ответить на вопрос об HTML.
Генератор кода использует gpt-4
для создания кода puppeteer.js для взаимодействия с браузером. Пользовательский прокси-агент, подключенный к генератору кода, отправляет этот код в среду браузера для выполнения и сообщает о результате, чтобы генератор кода мог изменить код в случае возникновения каких-либо ошибок. Поскольку генерация кода должна быть максимально точной, используется более дорогая модель gpt-4
в пользу более дешевой gpt-3.5-turbo
.
Планировщик получает описание задачи от пользователя и пытается выполнить ее, при необходимости вызывая HTML-помощник и генератор кода. Планировщик, помимо собственного мышления, имеет возможность вызывать две функции:
ask_html_assistant()
чтобы задать помощнику HTML вопрос о текущем HTML (например, извлечь HTML для формы регистрации) и
ask_code_generator()
, чтобы попросить генератор кода создать код puppeteer.js для отправки в браузер. Планировщик также может добавить HTML, полученный от помощника HTML, чтобы предоставить генератору кода больше контекста.