AutoBrowse 是一個可以瀏覽網頁的自主人工智慧代理。您只需給 AutoBrowse 一個任務,它就會像人類一樣透過與網頁瀏覽器互動來完成該任務。
您可以給它的一些任務範例:
從 11 月 2 日開始,前往 booking.com 在馬德里尋找一家適合 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
啟動瀏覽器環境
檢查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
然後系統將提示您向 AutoBrowse 指派任務。
您可以透過修改agent_config.py
檔案來修改代理程式配置。您可以編輯系統提示、變更使用的 OpenAI 模型等。
AutoBrowse 使用 autogen 代理程式和瀏覽器控制台來規劃和執行任務。
設計由 3 個代理組成:
HTML 助手,用於回答瀏覽器中開啟的目前頁面的 HTML 的問題。
程式碼產生器代理,產生 puppeteer.js 程式碼以與瀏覽器互動(即導航至新頁面、點擊按鈕、填寫表單元素)
一個規劃代理,協調上述兩個代理的使用,以完成使用者提供的高階任務描述。
代理程式透過與沙盒瀏覽器環境的 Websocket 連線與瀏覽器交互,該環境具有接受要執行的 puppeteer.js 程式碼的端點,以及傳回目前開啟頁面的渲染 HTML 的端點。
由於 HTML 文件可能很長且可能超出 OpenAI 的令牌限制,因此採用以下方法來回答有關 HTML 的查詢:
從瀏覽器環境傳回的 HTML 被剝離和簡化以減少其大小。這是透過僅保留最重要的屬性(如 id、name、type 和 class)來完成的。此外, script
、 style
、 noscript
、 img
、 svg
、 link
、 meta
標籤都被刪除。
處理後的 HTML 被分成 15,000 個令牌(由 OpenAI 計算),以便它們可以輕鬆適應gpt-3.5-turbo-16k
的 16K 上下文視窗。
使用帶有 OpenAI 嵌入的 RAG,提供最相關的區塊作為問題的上下文,然後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,以為程式碼產生器提供更多上下文。