AutoBrowse は、Web を閲覧できる自律型 AI エージェントです。 AutoBrowse にタスクを与えるだけで、人間であるかのように Web ブラウザと対話してタスクを完了します。
指定できるタスクの例をいくつか示します。
Booking.com にアクセスして、11 月 2 日から 2 泊、1 泊あたり 200 ユーロ未満でマドリッドの 2 名様向けのホテルを見つけてください。
電子メール: [email protected] とパスワード C0mplexPassword! を使用して ryanair.com にサインアップします。
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/
の README を確認してください。
次の内容を含むファイル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 コードを生成するコード ジェネレーター エージェント (つまり、新しいページに移動する、ボタンをクリックする、フォーム要素に入力する)
ユーザーが提供した高レベルのタスクの説明を実行するために、上記の 2 つのエージェントの使用を調整するプランナー エージェント。
エージェントは、実行する puppeteer.js コードを受け入れるエンドポイントと、現在開いているページのレンダリングされた HTML を返すエンドポイントを備えたサンドボックス ブラウザ環境への WebSocket 接続を介してブラウザと対話します。
HTML ドキュメントは非常に長くなり、OpenAI のトークン制限を超える可能性があるため、HTML に関するクエリに答えるために次のアプローチが取られます。
ブラウザ環境から返される HTML は、サイズを減らすために必要なものが取り除かれ、単純化されます。これは、 id、name、type、class などの最も重要な属性のみを保持することによって行われます。さらに、 script
、 style
、 noscript
、 img
、 svg
、 link
、 meta
タグは完全に削除されます。
処理された HTML はgpt-3.5-turbo-16k
の 16K コンテキスト ウィンドウに簡単に収まるように、15,000 トークン (OpenAI によってカウントされる) に分割されます。
RAG と OpenAI 埋め込みを使用すると、最も関連性の高いチャンクが質問のコンテキストとして提供され、 gpt-3.5-turbo
HTML に関する質問に答えることができます。
コード ジェネレーターはgpt-4
使用して、ブラウザーと対話するための puppeteer.js コードを生成します。コード ジェネレーターに接続されたユーザー プロキシ エージェントは、このコードをブラウザ環境に送信して実行し、結果をレポートします。これにより、コード ジェネレーターは、エラーがあった場合にコードを修正できます。コード生成は可能な限り正確である必要があるため、安価なgpt-3.5-turbo
ではなく、より高価なgpt-4
モデルが使用されます。
プランナーはユーザーからタスクの説明を受け取り、必要に応じて HTML アシスタントとコード ジェネレーターを呼び出してタスクを完了しようとします。プランナーは、独自の思考に加えて、次の 2 つの機能を呼び出すことができます。
ask_html_assistant()
HTML アシスタントに現在の HTML に関する質問をします (たとえば、サインアップ フォームの HTML を抽出します)。
ask_code_generator()
は、ブラウザに送信する puppeteer.js コードを生成するようにコード ジェネレーターに要求します。プランナは、HTML アシスタントから取得した HTML を追加して、コード ジェネレータにさらに多くのコンテキストを提供することもできます。