はじめに
Browser-Useは、言語モデル(LLM)がウェブサイトと自然に対話できるように特別に設計された、革新的なオープンソースのウェブ自動化ツールです。GPT-4、Claudeなど、主流の言語モデルを幅広くサポートする強力で柔軟なフレームワークを提供します。このツールの最大の特徴は、AI機能とブラウザの自動化をシームレスに統合していることで、視覚認識やHTML抽出、マルチタブページの自動管理、インテリジェントな要素検出などをサポートしています。Browser-Useは、単純なウェブ閲覧タスクを実行するだけでなく、フォームの自動入力、アプリケーションの送信、情報の検索などの複雑な対話シナリオも処理します。AIエージェントが人間のように自然にブラウザを使用できるように設計されており、ウェブ自動化の開発プロセスを大幅に簡素化します。このツールは、ウェブ自動化、データ収集、バッチ処理を必要とする開発者に特に適しています。
機能一覧
- HTMLコンテンツの視覚的認識とインテリジェントな抽出をサポート
- 自動マルチタブページ管理システム
- クリックした要素のXPathパスを抽出し、正確なLLM操作を再現します。
- カスタムアクションのサポート(ファイルの保存、データベースのプッシュ、通知の送信、手動入力の取得など)
- 自己修正能力
- LangChainがサポートするすべての言語モデルに対応
- 複数のAIエージェントの並列実行をサポート
- 設定可能なブラウザ・セキュリティ機能
- クッキー永続保存機能
- 柔軟なページ読み込み待ち時間の設定
ヘルプの使用
1.インストール構成
- まずpipでBrowser-Useパッケージをインストールする:
pip install browser-use
- (オプション)脚本家をインストールする:
劇作家インストール
- 環境変数を設定する:
確立環境
ファイルを開き、必要なAPIキーを追加する:
OPENAI_API_KEY=あなたのOpenAI APIキー
ANTHROPIC_API_KEY=あなたのAnthropic APIキーです。
2.基本的な使い方
2.1 簡単なAIエージェントの作成
from langchain_openai import ChatOpenAI
from browser_use import エージェント
インポート asyncio
async def main(): agent = Agent()
エージェント = エージェント(
task="Find information about a specific flight", llm=ChatOpenAI(model="ChatOpenAI", "ChatOpenAI")
llm=ChatOpenAI(model="gpt-4"), )
)
result = await agent.run()
print(result)
asyncio.run(main())
2.2 カスタムアクションの登録
カスタム・アクションはデコレーターを使って追加できる:
from browser_use.controller.service import コントローラ
コントローラ = コントローラ()
@controller.action('ユーザーに情報を求める')
def ask_human(question: str, display_question: bool) -> str.
return input(f'♪n{question}nInput: ')
2.3 Pydanticを用いたパラメトリックモデルの定義
from pydantic import BaseModel
from typing import Optional
class JobDetails(BaseModel).
title: str
company: str
job_link: str
salary: Optional[str] = None
controller.action('仕事の詳細を保存', param_model=JobDetails, requires_browser=True)
非同期 def save_job(params: JobDetails, browser: Browser):
print(params)
page = browser.get_current_page()
page.go_to(params.job_link)
3.高度な機能の使用
3.1 並列化エージェント
単一のブラウザインスタンスを使用し、各エージェントのコンテキストを並列化することを推奨します:
ブラウザ = ブラウザ()
for i in range(10): async with browser.new_context() as context.
async with browser.new_context() as context.
エージェント = エージェント(
task=f "タスク {i}", llm=model, task=f "タスク {i}", async with browser.new_context()
task=f "タスク {i}", llm=model, browser_context=context
ブラウザ_コンテキスト=コンテキスト
)
# タスクの処理
3.2 ブラウザの設定
ブラウザの動作は、BrowserConfigとBrowserContextConfigクラスで設定できます:
browser_config = BrowserConfig(
headless=False, # ヘッドレスモードを使用するかどうか。
keep_open=True, # スクリプト終了後もブラウザを開いたままにする
disable_security=True, # セキュリティ機能を無効にする
cookies_file="cookies.json", # クッキー保存ファイル
minimum_wait_page_load_time=1.0, # ページロード時間の最小待ち時間
wait_for_network_idle_page_load_time=2.0, # ネットワークアイドル待ち時間
max_wait_page_load_time=10.0 # 最大ページ読み込み待ち時間
)
4.パフォーマンス最適化の推奨
- 過剰な待ち時間を避けるために、適切なページ読み込み待ち時間を使用する。
- 並列化機能の合理的な使用による処理効率の向上
- 適切な場合はヘッドレスモードを有効にし、リソースの使用量を減らす。
- クッキーの永続化で重複認証を減らす
- 必要に応じて安全装備の構成を調整する
5.トラブルシューティング
- クロスドメインリクエストで問題が発生した場合は、以下の設定を有効にしてください。
セキュリティの無効化
オプション - 調整可能な待ち時間パラメータによるページロードタイムアウト
- APIキーが正しく設定されていることを確認する。
- ネットワーク接続状況の確認
- ブラウザのコンソールログでエラーメッセージの詳細を確認する