NISHIO Hirokazu[日本語][English]

Chrome拡張からLLMへタブ情報を連携

o1 Pro.icon Chrome拡張から開いているタブの情報をファイルシステムに書き出し、LLMに渡すまでの大まかな流れは以下です。
  1. 権限設定

    • tabs パーミッションを使用し、開いているタブ情報を取得。
      • Manifest V3の場合は permissions"tabs" を加える。
  2. タブ情報の取得

    • chrome.tabs.query({}) などでURLやタイトルなどを取得。
  3. ファイル書き込み

    • Chrome拡張は直接ローカルファイルへの書き込みが難しいため、以下いずれかの方法を取る。
      • バックエンド経由: XMLHttpRequest/fetchでサーバへPOSTし、サーバ側でファイルに書き込む。
        • File System Access API: ユーザ操作を伴うが、ブラウザ上からファイルにアクセスできる(対応状況には注意)。
      • storage API: chrome.storage.local などに一時的に保存し、別の仕組みで取り出してファイル化。
  4. LLMへの入力

    • ファイルへ保存したタブ情報(URLやタイトル、テキストなど)をLLMの入力として読み込む。
      • ローカルでLLMを動かすなら、ファイルを直接処理。Web API経由ならテキストデータをリクエストとして送る。

ポイントとしては、Chrome拡張ではセキュリティ上、直接ローカルファイルに書き込むのが制限されているため、たいていはサーバやstorage APIを使う形になります。こうして取得したタブ情報をまとめて出力し、LLMに入力することで状況を把握しやすくできます。


(C)NISHIO Hirokazu / Converted from Markdown (ja)
Source: [GitHub] / [Scrapbox]