🦔

Browser Useの料金・トークン数を出力する方法

に公開

Browser Useの触ってみたのですが、いかにもトークン消費が激しそうなツールなので、料金がわからないと怖いです。Browser Useには直接トークン消費量を出力するオプションはありませんが、langchain.callbacks.get_openai_callbackを使い、total_tokensやtotal_costを出力することができたので、その方法を紹介します。

結論

Browser Useの通りにセットアップされていることが前提です。

Quick startに下記のスクリプトが載っています。

from langchain_openai import ChatOpenAI
from browser_use import Agent
import asyncio

async def main():
    agent = Agent(
        task="Find a one-way flight from Bali to Oman on 12 January 2025 on Google Flights. Return me the cheapest option.",
        llm=ChatOpenAI(model="gpt-4o"),
    )
    result = await agent.run()
    print(result)

asyncio.run(main())

これを修正して料金とトークン数を出力するようにしたものが下記です。

from langchain_openai import ChatOpenAI
from browser_use import Agent
from langchain.callbacks import get_openai_callback
import asyncio

async def main():
    agent = Agent(
        task="Find a one-way flight from Bali to Oman on 12 January 2025 on Google Flights. Return me the cheapest option.",
        llm=ChatOpenAI(model="gpt-4o"),
    )

    with get_openai_callback() as cb:
        result = await agent.run()
        print("Task Result:", result)

    print(f"Total Tokens: {cb.total_tokens}")
    print(f"Prompt Tokens: {cb.prompt_tokens}")
    print(f"Completion Tokens: {cb.completion_tokens}")
    print(f"Total Cost (USD): ${cb.total_cost:.6f}")

asyncio.run(main())

langchain.callbacks.get_openai_callbackを使用して、Agent.run()の処理中のトークン消費量を出力しました。このコールバックで次のデータが取得できます。

  • total_tokens: prompt_tokens+completion_tokens
  • prompt_tokens
  • completion_tokens
  • total_cost: トークン消費に基づいたコスト(USD)

Browser Useのコストがどんなものか評価

実際に簡単なタスクを実行してみたときのコストはこんな感じでした。

  • タスク: キーワード'browser_use'でweb検索し、最初の記事を要約してください
  • model: gpt-4o-mini ※$0.150/1M 入力トークン
  • total_tokens: 26677
  • prompt_tokens: 26242
  • completion_tokens: 435
  • total_cost (USD): $0.004014899999999999(≒0.63円)

こうして見ると、トークン消費量の99%以上がprompt_tokensだとわかります。completion_tokensは誤差のようなものですし、通常のOpenAI APIを使った質問応答と同程度です。

Browser Useを使わずに、プロンプトで要約の指示と記事本文を渡した場合、日本語1文字あたり1.5トークン、1記事の文字数を2000文字とすると、prompt_tokensは約3000トークンになります。前述のBrowser Useを使った場合のprompt_tokensは26242なので、8倍以上となる計算です。

prompt_tokens

  • Browser Useを使った場合: 約26,000
  • 要約指示と記事本文をプロンプトに含めて質問した場合: 約3,000

Browser Useの場合は、記事に到達するまでに必要な操作の回数や記事ページに含まれる本文以外のコンテンツの量によっても料金が変わりそうですが、通常の質問の何百倍といったスケールではなさそうなので安心しました。

まとめ

  • get_openai_callbackでBrowser Useのコストを可視化できる
  • 通常の質問応答に比べ、Browser Useのトークン消費量は8倍以上になる可能性がある
  • Browser Useのトークン消費量の99%以上はprompt_tokens

通常の質問応答に比べるとたしかに高額ですが、怖くて触れないというほどではなさそうです。
参考になれば幸いです。

Discussion