Bromate adalah proyek eksperimental yang mengeksplorasi kemampuan alur kerja agen untuk mengotomatisasi interaksi browser web.
Bromat memanfaatkan kekuatan model bahasa besar (LLM), khususnya Google Gemini, untuk memahami permintaan pengguna yang diungkapkan dalam bahasa alami dan menerjemahkannya ke dalam serangkaian tindakan yang mengotomatiskan tugas penelusuran web.
Ini menggunakan selenium untuk kontrol dan interaksi browser, menawarkan cara yang mulus untuk mengotomatisasi alur kerja yang kompleks dalam lingkungan browser web.
Sebelum menggunakan Bromate, Anda perlu mendapatkan kunci API dari Google untuk Gemini API. Anda bisa mendapatkan kunci dengan mengikuti langkah -langkah ini:
Mengatur kunci API di .env selama pengembangan:
Anda dapat mengatur tombol API di file .env di repositori proyek:
GOOGLE_API_KEY=YOUR_API_KEY Anda dapat memeriksa apakah kunci dikonfigurasi dengan mengetik echo $GOOGLE_API_KEY di shell Anda.
Bromat tersedia di PYPI dan dapat dengan mudah diinstal menggunakan PIP:
pip install bromateUntuk menggunakan Bromate, Anda dapat memberikan kueri bahasa alami yang menggambarkan tugas yang ingin Anda otomatisasi. Bromat kemudian akan berinteraksi dengan agen (Gemini) untuk menafsirkan kueri dan menghasilkan urutan tindakan yang akan dieksekusi oleh selenium webdriver.
Contoh 1: Berlangganan buletin komunitas MLOPS:
Bromate "Buka situs web https://mlops.community. Klik tautan 'bergabung'. Tulis alamat 'Hello@mlops'"
Contoh 2: Temukan versi terbaru dari bahasa Python:
bromate --terteraction.stay_open = false --agent.name "gemini-1.5-pro-latest" "Pergi ke python.org. Klik pada halaman unduhan. Klik pada tautan PEP untuk rilis Python di masa depan. Ringkas tanggal jadwal rilis."
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 beroperasi dalam satu loop, terus berinteraksi dengan agen Gemini dan selenium webdriver untuk mengotomatisasi tugas browser. Berikut ini rincian perilaku inti:
1. Inisialisasi:
src/bromate/actions.py . Contohnya termasuk:get : Buka URL tertentu di browser.click : Klik pada elemen yang diidentifikasi oleh pemilih CSS.write : Masukkan teks ke dalam suatu elemen.back : Navigasi kembali ke halaman sebelumnya.done : Sinyal akhir dari tugas otomatisasi.2. Pemilihan dan Eksekusi Tindakan:
3. Loop Umpan Balik:
done , menunjukkan tugas selesai, atau jumlah maksimum interaksi tercapai.Proses iteratif ini memungkinkan bromat untuk secara dinamis beradaptasi dengan perubahan dalam lingkungan browser dan melakukan tugas otomatisasi yang kompleks berdasarkan instruksi bahasa alami.
Alur kerja pengembangan Bromat dikelola menggunakan pyinvoke. tasks/ folder berisi berbagai tugas untuk mengelola proyek:
Bromat dilisensikan di bawah lisensi MIT. Lihat file lisensi untuk lebih jelasnya.