このワークフローについて
Perplexity、Gemini AI、Bright Data を使用した Web データの検索と要約(Webhook へ)– ワークフロー分析
この N8n ワークフローテンプレートは、Bright Data の Web スクレーパー API 経由の Perplexity を使用して Web 上の情報を検索し、Google Gemini AI を使用して HTML レスポンスから読み取り可能なコンテンツを抽出し、LangChain を利用した要約チェーンを通じて抽出されたデータを要約するプロセスを自動化します。最終的な要約出力は、Webhook 通知を介して外部サービスに送信されます。AI によるデータ抽出と処理のために設計されたこのワークフローは、n8n オートメーションプラットフォーム内での Web スクレイピング、言語モデル、および条件付きロジック間の高度な統合を示しています。
ワークフローの機能
ワークフローは Perplexity.ai(Bright Data のデータセットトリガーシステム経由)で検索クエリを開始し、結果のスナップショットが準備できるまで待機し、それをダウンロードし、Google Gemini を使用して HTML レスポンスからクリーンで人間が読めるテキストを抽出し、別の Gemini モデルを使用してコンテンツを要約し、最後に要約を設定可能な Webhook エンドポイントに送信します。これには、エラー処理、ポーリングメカニズム、および構造化された AI 処理が含まれており、自動化されたリサーチタスクの堅牢性と精度を保証します。
非構造化された Web コンテンツを簡潔で実行可能な要約に効果的に変換します。これは、競合インテリジェンス、市場調査、または知識集約システムに最適です。
主な機能と能力
- 自動化された Web リサーチ: Bright Data の API を使用して Perplexity でリアルタイム検索をトリガーします。
- AI によるコンテンツ抽出: Google Gemini を使用して、複雑な HTML から関連する「読み取り可能なコンテンツ」のみを抽出します。
- ドキュメント要約: LangChain の要約チェーンと Gemini Flash モデルを活用して、凝縮されたインサイトを生成します。
- ポーリングメカニズム: スクレーパーが完了したスナップショットを返すまでジョブステータスを確認するループを実装します。
- エラー処理: ダウンロードに進む前に、スクレイピング中にエラーが発生したかどうかを評価します。
- Webhook 統合: HTTP POST を介して最終結果を任意の外部システムに出力します。
- モジュール式 AI ノードの使用: LLM チェーン、ドキュメントローダー、テキストスプリッターのために
@n8n/nodes-langchainノードの使用を示します。 - 認証情報管理: Bright Data および Google Gemini API の両方の保存された認証情報を安全に使用します。
主要ノードとその目的
| ノード名 | タイプ | 目的 |
|---|---|---|
| 「ワークフローをテスト」をクリックしたとき | 手動トリガー | テスト目的でワークフローを手動で開始します。 |
| Perplexity 検索リクエスト | HTTP リクエスト | Bright Data の API に POST リクエストを送信し、定義済みのプロンプト(「BrightData について教えてください」)で Perplexity.ai で検索をトリガーします。 |
| スナップショット ID を設定 | 設定 | 後でポーリングとダウンロードに使用するために、最初のトリガーから返された snapshot_id を保存します。 |
| スナップショットステータスを確認 | HTTP リクエスト | プログレスをクエリすることにより、スナップショット生成が完了したかどうかを確認するために Bright Data API をポーリングします。 |
| もし(ステータスチェック) | 条件分岐 | レスポンスの status フィールドが "ready" と等しいかどうかを確認し、それに応じて実行をルーティングします。 |
| 待機 | 待機 | まだ準備ができていない場合にステータスチェックを再試行する前に、30 秒間実行を一時停止します。 |
| エラーを確認 | 条件分岐 | ダウンロードに進む前に errors のカウントがゼロかどうかを検証します。 |
| スナップショットをダウンロード | HTTP リクエスト | snapshot_id を使用して、完了したスナップショットの完全な JSON 結果を取得します。 |
| 読み取り可能なデータ抽出器 | 情報抽出器 (LangChain) | Google Gemini を使用して answer_html を解析し、「読み取り可能なコンテンツ」のみをプレーンテキストとして抽出します。 |
| Google Gemini チャットモデル1 | LLM ノード | データ抽出器の言語モデルバックエンドを提供します(gemini-2.0-flash-exp を使用)。 |
| 検索結果の要約 | 要約チェーン (LangChain) | クリーンなテキストを取得し、ドキュメントローダーパターンを使用して簡潔な要約を生成します。 |
| デフォルトデータローダー | ドキュメントローダー (LangChain) | 処理されたドキュメントを要約チェーンにフィードします。 |
| 再帰的文字テキストスプリッター | テキストスプリッター (LangChain) | 長いテキストを管理可能なチャンクに分割して準備します(100 文字のオーバーラップあり)。 |
| Google Gemini チャットモデル | LLM ノード | 要約チェーンの LLM エンジンを提供します(実験的な gemini-2.0-flash-thinking-exp-01-21 モデルを使用)。 |
| Webhook ノティファイア | HTTP リクエスト | 最終的な output(要約)を外部 URL(webhook.site プレースホルダー)に送信します。 |
| 付箋 | 注釈 | 認証情報の設定やフローロジックの理解のために、キャンバス内にドキュメントとガイダンスを提供します。 |
ユースケースとメリット
ユースケース:
- 市場インテリジェンス収集: 競合分析、製品レビュー、業界トレンドを自動的に要約します。
- コンテンツ集約システム: オンライン記事や Q&A プラットフォームをプルして凝縮することにより、内部ナレッジベースを構築します。
- リサーチ自動化: 手動でのブラウジングとメモ取りを、AI 主導の検索と要約パイプラインに置き換えます。
- リード生成とアウトリーチ準備: アウトリーチ前に企業や個人の背景情報を迅速に収集します。
- ニュース監視: Perplexity がキュレーションした回答などのソース全体で、ブランド、テクノロジー、またはイベントの言及を追跡します。
メリット:
- 時間効率: 手動での読み取りと要約に費やす時間を数時間削減します。
- 精度: AI により、意味のあるコンテンツのみが保持され、要約されます。
- スケーラビリティ: 複数のクエリに対してスケジュールまたは一括でトリガーできます。
- 統合しやすい: Webhook 経由で配信される出力により、Slack、CRM、データベース、またはメールエンジンに接続できます。
- エラー耐性: 内蔵ループと条件分岐により、タイミングの問題や一時的なエラーによる障害を防ぎます。
ステップバイステップのワークフローロジック
-
トリガー実行
- ユーザーが「ワークフローをテスト」をクリック → 手動トリガーノードをアクティブ化します。
-
検索クエリの開始
https://api.brightdata.com/datasets/v3/triggerに POST リクエストを送信します。- 対象 URL:
https://www.perplexity.ai - プロンプト:
"tell me about BrightData" - 国:
"US" - データセット ID と認証ヘッダーが含まれます。
- 対象 URL:
- レスポンスには
snapshot_idが含まれます。
-
スナップショット ID の保存
Set Snapshot Idノードは、ポーリングとダウンロードのために前のレスポンスからsnapshot_idを保存します。
-
完了のポーリング
Check Snapshot Statusは.../progress/{snapshot_id}でプログレスをリクエストします。- If ノードは
status === "ready"かどうかを確認します。- true の場合 → 続行します。
- false の場合 → Wait (30s) をトリガー → ステータスを再確認するためにループバックします。
-
エラー検証
- ステータスが準備完了になったら、別の If ノードが
errors.toString() === "0"かどうかを確認します。 - 続行する前にスクレイピング中にエラーが発生しなかったことを確認します。
- ステータスが準備完了になったら、別の If ノードが
-
最終結果のダウンロード
- 検証が成功したら、
.../snapshot/{snapshot_id}から JSON 形式でスナップショットをダウンロードします。
- 検証が成功したら、
-
読み取り可能なコンテンツの抽出
answer_htmlフィールドが Readable Data Extractor に渡されます。- Google Gemini Flash Exp によって強化され、ノイズの多い HTML からクリーンで読み取り可能なテキストを分離します。
-
要約の準備
- 抽出されたテキストが Summarization Chain にフィードされます。
- 要約する前に、次の処理を行います。
- Recursive Character Text Splitter → 大きなテキストをチャンクに分割します。
- Default Data Loader → 分割されたテキストを AI 用のドキュメントとしてロードします。
-
要約の生成
- Summarization of search result ノードは、2 番目の Gemini モデル(
thinking-exp)を使用して、一貫性のある高レベルの要約を作成します。
- Summarization of search result ノードは、2 番目の Gemini モデル(
-
Webhook 経由での出力送信
- 最終要約(
$json.output)が POST 経由でhttps://webhook.site/...に送信されます。 - 任意の目的のエンドポイント(例: Slack、Airtable、カスタム API)に置き換えることができます。
- 最終要約(
このワークフローは、n8n がローコードオートメーションと強力な AI 機能を組み合わせて、生の Web データをインテリジェントな出力に変換する方法を示しています。これは、情報処理ワークフローをスケーリングしたい開発者、研究者、およびビジネスアナリストに最適です。
使い方:JSON をダウンロードし、n8n で「ファイルからインポート」を選択します。