Bromate est un projet expérimental qui explore les capacités des workflows d'agent pour automatiser les interactions du navigateur Web.
Bromate exploite la puissance des modèles de grande langue (LLMS), en particulier les Gémeaux de Google, pour comprendre les demandes des utilisateurs exprimées en langage naturel et les traduire en une série d'actions qui automatisent les tâches de navigation Web.
Il utilise le sélénium pour le contrôle et l'interaction du navigateur, offrant un moyen transparent d'automatiser des workflows complexes dans un environnement de navigateur Web.
Avant d'utiliser le bromate, vous devez obtenir une clé API de Google pour l'API Gemini. Vous pouvez obtenir une clé en suivant ces étapes:
Définition de la clé API dans .env pendant le développement:
Vous pouvez définir la clé API dans un fichier .env dans le référentiel de projet:
GOOGLE_API_KEY=YOUR_API_KEY Vous pouvez vérifier si la touche est configurée en tapant echo $GOOGLE_API_KEY dans votre shell.
Le bromate est disponible sur PYPI et peut être facilement installé à l'aide de PIP:
pip install bromatePour utiliser Bromate, vous pouvez fournir une requête en langage naturel décrivant la tâche que vous souhaitez automatiser. Bromate interagira ensuite avec l'agent (Gemini) pour interpréter la requête et générera une séquence d'actions à exécuter par le sélénium webdriver.
Exemple 1: Abonnez-vous à la newsletter de la communauté Mlops:
Bromate "Ouvrez le site Web https://mlops.community. Cliquez sur le lien" Rejoin ". Écrivez l'adresse" bonjour @ mlops ""
Exemple 2: Trouvez la dernière version de la langue Python:
Bromate ---interaction.stay_open = false --agent.name "gemini-1.5-pro-latest" "Allez sur python.org. Cliquez sur la page de téléchargement. Cliquez sur le lien Pep pour la version future de Python. Résumez les dates de planification de version."
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 fonctionne dans une boucle, en interagissant en continu avec l'agent Gémeaux et le Sélénium WebDriver pour automatiser les tâches du navigateur. Voici une ventilation du comportement de base:
1. Initialisation:
src/bromate/actions.py . Les exemples incluent:get : ouvrez une URL spécifique dans le navigateur.click : cliquez sur un élément identifié par un sélecteur CSS.write : entrez du texte dans un élément.back : Revenez à la page précédente.done : signalez la fin de la tâche d'automatisation.2. Sélection et exécution d'action:
3. Boucle de rétroaction:
done , indiquant que la tâche est terminée, ou un nombre maximum d'interactions est atteinte.Ce processus itératif permet au bromate de s'adapter dynamiquement aux changements dans l'environnement du navigateur et d'effectuer des tâches d'automatisation complexes en fonction des instructions en langage naturel.
Le flux de travail de développement de Bromate est géré à l'aide de Pyinvoke. Les tasks/ dossier contient diverses tâches pour gérer le projet:
Bromate est autorisé sous la licence du MIT. Voir le fichier de licence pour plus de détails.