Bromate - это экспериментальный проект, который исследует возможности рабочих процессов агента для автоматизации взаимодействия веб -браузеров.
Bromate использует силу моделей крупных языков (LLMS), в частности Google Gemini, для понимания запросов пользователей, выраженных на естественном языке, и перевести их в серию действий, которые автоматизируют задачи просмотра веб -страниц.
Он использует селен для управления и взаимодействия браузеров, предлагая беспроблемный способ автоматизации сложных рабочих процессов в среде веб -браузера.
Перед использованием бромата необходимо получить ключ API от Google для API Gemini. Вы можете получить ключ, выполнив эти шаги:
Установка ключа API в .env во время разработки:
Вы можете установить ключ API в файле .env в репозитории проекта:
GOOGLE_API_KEY=YOUR_API_KEY Вы можете проверить, настроен ли ключ путем ввода echo $GOOGLE_API_KEY в вашей оболочке.
Бромат доступен на PYPI и может быть легко установлен с помощью PIP:
pip install bromateЧтобы использовать бромат, вы можете предоставить запрос естественного языка, описывающий задачу, которую вы хотите автоматизировать. Затем бромат будет взаимодействовать с агентом (Близнецом), чтобы интерпретировать запрос и генерировать последовательность действий, которые будут выполнены Webdriver Selenium.
Пример 1: Подпишитесь на информационный бюллетень сообщества MLOPS:
Bromate "Откройте веб -сайт https://mlops.comnity. Нажмите на ссылку" присоединиться ". Напишите адрес" hello@mlops '"
Пример 2: Найдите последнюю версию языка Python:
Bromate-interaction.stay_open = false -agent.name "Gemini-1.5-pro-latest" "Перейти на python.org. Нажмите на страницу загрузки. Нажмите на ссылку PEP для будущего выпуска Python. Суммируйте даты расписания выпуска".
bromate -h
usage: bromate [-h] [--agent JSON] [--agent.api_key {SecretStr,null}] [--agent.name str] [--agent.temperature float] [--agent.candidate_count int]
[--agent.max_output_tokens int] [--agent.system_instructions str] [--action JSON] [--action.sleep_time float] [--driver JSON]
[--driver.name {Chrome,Firefox}] [--driver.keep_alive bool] [--driver.maximize_window bool] [--execution JSON] [--execution.stop_actions list[str]]
[--execution.default_message str] [--interaction JSON] [--interaction.stay_open bool] [--interaction.interactive bool] [--interaction.max_interactions int]
QUERY
Execute actions on web browser from a user query in natural language.
positional arguments:
QUERY User query in natural language
options:
-h , --help show this help message and exit
agent options:
Configuration of the agent
--agent JSON set agent from JSON string
--agent.api_key {SecretStr,null}
API key of the agent platform (Google) (default: ********** )
--agent.name str Name of the agent to use (default: gemini-1.5-flash-latest)
--agent.temperature float
Temperature of the agent (default: 0.0)
--agent.candidate_count int
Number of candidates to generate (default: 1)
--agent.max_output_tokens int
Maximum output tokens to generate (default: 1000)
--agent.system_instructions str
System instructions for the agent (default: You are a browser automation system. Your goal is to understand the user request and execute actions
on its browser using the tools at your disposal. After each step, you will receive a screenshot and the page source of the current browser
window.)
action options:
Configuration for all actions
--action JSON set action from JSON string
--action.sleep_time float
Time to sleep after loading a page (default: 0.5)
driver options:
Configuration of the web driver
--driver JSON set driver from JSON string
--driver.name {Chrome,Firefox}
Name of the driver to use (default: Chrome)
--driver.keep_alive bool
Keep the browser open at the end of the execution (default: True)
--driver.maximize_window bool
Maximize the browser window at the start of the execution (default: True)
execution options:
Configuration of the execution
--execution JSON set execution from JSON string
--execution.stop_actions list[str]
Name of actions that can stop the execution (default: [ ' done ' ])
--execution.default_message str
Default message to send to the agent when no input is provided by the user (default: Continue the execution if necessary or call the done tool if
you are done)
interaction options:
Configuration of the interaction
--interaction JSON set interaction from JSON string
--interaction.stay_open bool
Keep the browser open before exiting (default: True)
--interaction.interactive bool
Ask for user input after every action (default: False)
--interaction.max_interactions int
Maximum number of interactions for the agent (default: 5)Bromate работает в цикле, постоянно взаимодействуя с агентом Gemini и Webdriver Selenium для автоматизации задач браузера. Вот разрушение основного поведения:
1. Инициализация:
src/bromate/actions.py . Примеры включают:get : Откройте конкретный URL в браузере.click : нажмите на элемент, идентифицированный селектором CSS.write : введите текст в элемент.back : перейдите на предыдущую страницу.done : сигнализируйте о конце задачи автоматизации.2. Выбор и выполнение действия:
3. Петля обратной связи:
done действие, указав, что задача завершена, либо достигнуто максимальное количество взаимодействий.Этот итеративный процесс позволяет бромату динамически адаптироваться к изменениям в среде браузера и выполнять сложные задачи автоматизации на основе инструкций естественного языка.
Рабочий процесс разработки Bromate управляется с использованием Pyinvoke. tasks/ папка содержит различные задачи для управления проектом:
Бромат лицензирован по лицензии MIT. Смотрите файл лицензии для получения более подробной информации.