Bromat ist ein experimentelles Projekt, das die Funktionen von Agent -Workflows zur Automatisierung von Webbrowser -Interaktionen untersucht.
Bromat nutzt die Kraft von großsprachigen Modellen (LLMs), insbesondere von Googles Gemini, um Benutzeranfragen in der natürlichen Sprache zu verstehen und sie in eine Reihe von Aktionen zu übersetzen, die das Browsing -Aufgaben des Webbrows automatisieren.
Es verwendet Selen für die Browser -Steuerung und -interaktion und bietet eine nahtlose Möglichkeit, komplexe Workflows in einer Webbrowser -Umgebung zu automatisieren.
Bevor Sie Bromat verwenden, müssen Sie einen API -Schlüssel von Google für die Gemini -API erhalten. Sie können einen Schlüssel erhalten, indem Sie folgende Schritte folgen:
Festlegen des API -Schlüssels in .env während der Entwicklung:
Sie können den API -Schlüssel in einer .env -Datei im Projektrepository festlegen:
GOOGLE_API_KEY=YOUR_API_KEY Sie können überprüfen, ob der Schlüssel konfiguriert wird, indem echo $GOOGLE_API_KEY in Ihrer Shell eingetragen wird.
Bromat ist auf PYPI erhältlich und kann einfach mit PIP installiert werden:
pip install bromateUm Bromat zu verwenden, können Sie eine natürliche Sprachabfrage bereitstellen, die die Aufgabe beschreibt, die Sie automatisieren möchten. Bromat interagiert dann mit dem Agenten (Gemini), um die Abfrage zu interpretieren und eine Folge von Aktionen zu erzeugen, die vom Selenium -Webdriver ausgeführt werden sollen.
Beispiel 1: Abonnieren Sie den MLOPS Community Newsletter:
Bromat "Öffnen Sie die Website https://mlops.community. Klicken Sie auf den Link" Join ". Schreiben Sie die Adresse" hello@mlops "" "
Beispiel 2: Finden Sie die neueste Version der Python -Sprache:
Bromat-Interaktion.Stay_open = false --agent.Name "Gemini-1.5-pro-latest" "Gehen Sie zu Python.org. Klicken Sie auf die Seite Downloads. Klicken Sie auf den PEP-Link für die zukünftige Python-Veröffentlichung. Fassen Sie die Veröffentlichungsplan-Daten zusammen."
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)Bromat arbeitet in einer Schleife und interagiert kontinuierlich mit dem Gemini -Agenten und dem Selen -Webdriver, um Browseraufgaben zu automatisieren. Hier ist eine Aufschlüsselung des Kernverhaltens:
1. Initialisierung:
src/bromate/actions.py definiert. Beispiele sind:get : Öffnen Sie eine bestimmte URL im Browser.click : Klicken Sie auf ein Element, das von einem CSS -Selektor identifiziert wurde.write : Geben Sie den Text in ein Element ein.back : Navigieren Sie zurück zur vorherigen Seite.done : Signalen Sie das Ende der Automatisierungsaufgabe.2. Auswahl und Ausführung der Aktion:
3. Rückkopplungsschleife:
done , wodurch die Aufgabe abgeschlossen ist oder eine maximale Anzahl von Wechselwirkungen erreicht ist.Dieser iterative Prozess ermöglicht es Bromat, sich dynamisch an Änderungen in der Browserumgebung anzupassen und komplexe Automatisierungsaufgaben basierend auf Anweisungen für natürliche Sprache auszuführen.
Der Entwicklungsworkflow von Bromat wird mit Pyinvoke verwaltet. Die tasks/ Ordner enthält verschiedene Aufgaben für die Verwaltung des Projekts:
Bromat ist unter der MIT -Lizenz lizenziert. Weitere Informationen finden Sie in der Lizenzdatei.