この記事では、次のことを学びます:
- Azure AI Foundryとは何か?
- なぜAzure AI FoundryでBright DataのSERP APIと統合することが勝利の戦略なのか。
- SERP APIに接続する実際のAzure AIプロンプトフローの構築方法。
さあ、飛び込もう!
Azure AI Foundryとは?
Azure AI Foundryは、AIアプリケーション、エージェント、フローを構築、デプロイ、管理するための一連のツールとサービスを提供する統合プラットフォームだ。言い換えれば、AIシステムの作成プロセスを標準化することで、「AIファクトリー」として機能する。
その主な目的は、コンセプトから本番稼動までを支援することだ。これは、Azure OpenAI、Meta、MistralのようなAIプロバイダーからの幅広いモデルや機能へのアクセスを、開発、デプロイメント、継続的モニタリングのためのツールとともに提供することで達成される。
Bright DataのSERP APIをAzure AI Foundryに統合する理由
Azure AI FoundryはLLMの長いリストを備えているが、どのLLMを選んでも、その知識は固定的だ。例えば、LLMは今日の株式ニュースや昨夜のスポーツの結果などには全く気づいていない。その結果、「陳腐な」あるいは「幻覚のような」回答になってしまう可能性があります。
その制限を克服するために、インターネットからのリアルタイム・データでLLMを「接地」するシステムを構築することができる。このアプローチは、特にRAG(Retrieval-Augmented Generation)ワークフローで一般的であり、LLMは応答を生成する前に外部情報を提供され、その出力が現在の事実に基づいていることを保証する。
Azure AIにはグラウンディングツールが組み込まれているが、データソースとしてBingに限定されており、必ずしも理想的とは言えない。より専門的で柔軟な代替手段は、Bright DataのSERP APIだ!
SERP APIは、検索エンジンの検索クエリをプログラムで実行し、SERPの全コンテンツを取得することができ、AIエージェントやLLMワークフローにシームレスに統合できる新鮮で検証可能なデータの信頼できるソースを提供します。公式ドキュメントでその機能をすべてご覧ください。
Azure AI Foundryでは、サードパーティAPI統合をエージェントとフローの両方に実装できます。ここでは、特にRAGシナリオに適しているプロンプトフローに焦点を当てます。
Azure AIプロンプトフローでSERP APIを使用してWeb検索コンテキストを取得する方法
このガイドセクションでは、ニュース分析のプロンプトフローの一部として、Bright DataのSERP APIをAzure AIフローに統合する方法を紹介します。このワークフローは、4つの主要なステップで構成されています:
- 入力受信:関連するニュースを取得するために、ワークフローに興味のあるトピックを提供します。
- ニュースの取得:専用のPythonノードが入力トピックを受け取り、Bright DataのSERP APIに送信してGoogleからニュース記事を取得します。
- ニュース分析:LLM が SERP API で取得したデータを処理し、読む価値のあるニュースを特定します。
- 出力生成:作成されたMarkdownレポートには、SERPから抽出された各ニュース項目が、短い説明と読む価値があることを示すスコアとともにリストアップされます。
注:これはほんの一例であり、他の多くのシナリオやユースケースでSERP APIを活用することができます。
以下の手順に従って、Azure AI Foundry内でBright DataのSERP APIからの新鮮なデータに基づいたRAGスタイルのワークフローを構築してください!
前提条件
このチュートリアルセクションに従うには、以下を確認してください:
- Microsoftアカウント
- Azureサブスクリプション(無料トライアルでも十分です)。
- 有効なAPIキー(管理者権限)を持つBright Dataアカウント。
公式 Bright Data ガイドに従ってAPI キーを取得してください。すぐに必要になるので、安全な場所に保管してください。
ステップ #1: Azure AI Hubの作成
Azure AIプロンプトフローはAzure AI Hubでのみ利用可能なので、最初のステップはAI Hubを作成することです。
これを行うには、Azureアカウントにログインし、アイコンをクリックするか、検索バーで検索してAzure AI Foundryサービスを開きます:
AI Foundry」管理ページに到達するはずです:
ここで、”Create “ボタンをクリックし、”Hub “オプションを選択する:
次に、Azure AI Hubの作成フォームに以下のように入力する:
リージョンを選択し、既存のリソースグループを選択(または必要に応じて新規作成)し、bright-data-serp-ai-hubなど、ハブに名前を付けます。
次に、”Review + Create” ボタンをクリックします。概要が表示されます:
問題がなければ、「Create」をクリックしてデプロイを開始します。
初期化プロセスには数分かかる場合があります。完了すると、このような確認ページが表示されます:
素晴らしい!これで、プロジェクトを作成してプロンプトフローを初期化できるAzure AI Hubができました。
ステップ #2: AI Hubでプロジェクトを作成する
プロンプトフローを管理するには、まずAI Hub内にプロジェクトを作成する必要があります。まず、左メニューの「AI Hubs」をクリックします:
ハブの名前をクリックし、表示される右側のセクションで「プロジェクトを作成」を選択します:
プロジェクト作成フォームに必要事項を入力します。このとき、プロジェクト名を「SERP-API-FLOW」のようにしてください:
Review + create」ボタンをクリックし、サマリーセクションですべてが正しいことを確認します。最後に「Create」ボタンを押してプロジェクトをデプロイします。
プロジェクトが初期化されるまでしばらく待ちます。準備ができたら、”AI Hubs “ページにプロジェクトが表示されます。それをクリックしてください:
Launch studio” ボタンを押して、Azure AI Foundry スタジオで開きます:
上部に、”SERP API flow “プロジェクト内で操作していることに注意してください。そうでない場合(複数のプロジェクトがある場合など)は、正しいプロジェクトを選択してください。
素晴らしい!Azure AIプロンプトフローを定義する準備ができました。
ステップ #3: LLMをデプロイする
プロンプトフローでLLMノードを使用するために、Azureは最初に利用可能なAIモデルの1つをデプロイする必要があります。
これを行うには、左側のメニューから「モデルカタログ」オプションを選択する。カタログページで、使用したいAIモデルを検索する。例えば、gpt-5-miniを使いたいとします。
gpt-5-mini」を検索して選択します:
モデルのページで、「このモデルを使用する」をクリックして採用する:
表示されたモーダルウィンドウで、”Create resource and deploy “ボタンをクリックし、モデルのデプロイが完了するのを待ちます:
このプロセスには数分かかることがありますので、気長にお待ちください。デプロイが完了すると、以下のように Azure AI プロジェクトで利用可能なモデルが表示されます:
素晴らしい!これで、プロンプトフローを動かすLLMエンジンの準備ができました。
ステップ #4: 新しいプロンプトフローの作成
いよいよプロンプトフローの作成を開始します。左側のメニューから「プロンプト・フロー」を選択し、「作成」ボタンをクリックする:
新しいフローを作成」モーダルで、「標準フロー」カードの「作成」をクリックし、新しい基本的なプロンプトフローを開始します:
フロー名を入力するプロンプトが表示されます。bright-data-SERP-API-flowのような名前にしてください:
Create “ボタンを押して、プロンプト・フローが初期化されるのを待つと、このようなフローができるはずです:
おわかりのように、右側には、フローのDAG(有向非循環グラフ)表現があります。
代わりに左側には、フローのノードを定義できるビジュアルエディターがあります。左側で行った変更は、右側のDAGに自動的に反映されます。
デフォルトの標準フローには、AIにジョークを言わせる簡単な例が含まれています。
既存のノードをすべて削除してゼロから始め、”Start compute session “を押して、フロー開発プラットフォームをライブにします:
注:コンピュート・セッションを開始するとき、Azureは自動的にデフォルトのコンピュート・インスタンスを起動しようとします。しかし、リソースの割り当てに数分から数時間かかる場合があります。長い待ち時間を避けるには、独自のコンピュートインスタンスでカスタム設定を使用してコンピュートセッションを手動で開始することを検討してください。
よくできました!これで、Bright Data SERP APIを利用したAzure AIプロンプトフローを作成する準備が整いました。
ステップ #5: プロンプトフローを設計する
フローを構築する前に、フローに含めるノードを明確に定義する必要があります。
この場合、ゴールはニュースの検索と評価のフローを作成することです。トピックが与えられたら、Bright Data SERP APIを利用してGoogleから関連するニュース記事を取得し、LLMに渡して読む価値に基づいて評価する。そうすることで、読む価値のある記事を素早く特定することができます。
これを実現するために、フローは4つのノードで構成される:
- ニュースウェブ検索を実行するトピックを受け入れる入力ノード。
- 提供されたトピックを使って Bright Data の SERP API を呼び出す Python ツールノード。
- API から返された SERP データを処理してニュース記事を識別・評価する LLM ノード。
- LLM によって生成された最終レポートを表示する出力ノード。
次のステップでは、このAzure AIプロンプトフローの実装方法を学びます!
ステップ #6: 入力ノードの追加
すべてのフローには、入力ノードと出力ノードの両方を含める必要があります。したがって、入力ノードと出力ノードを削除することはできず、すでにフローの一部になっています。
入力ノードを設定するには、フローの「入力」セクションに移動し、「ボタンを追加」ボタンをクリックします:
入力をトピックとして定義し、そのタイプを文字列に設定します:
Amazing!これで入力ノードが設定されました。
ステップ7: SERP APIを呼び出す準備
Bright Data SERP APIを呼び出すカスタムPythonノードを作成する前に、いくつかの準備ステップを踏む必要があります。これらは厳密には必須ではありませんが、統合を単純化し、より安全にします。
まず、APIコールを簡単にするために、Bright Data Python SDKをインストールします。このSDKは、SERP APIを含むBright Data製品と対話するための便利な方法を提供します(HTTPクライアントを使用してAPI経由で直接呼び出す代わりに)。詳しくは公式ドキュメントをご覧ください。
SDKはbrightdata-sdkパッケージとして提供されています。これをフローにインストールするには、左側の “Compute session running “ボタンをクリックし、”Install packages from requirements.txt “オプションを選択します:
フロー定義パネルにrequirements.txtファイルが開きます。以下の行を追加し、”Save and install “オプションをクリックします:
インストールが完了すると、カスタムPythonツールノード内でBright Data Python SDKを使用できるようになります。
次に、SERP API は API キーによる認証が必要で、フローにハードコードしたくないので、Azure にシークレットとして安全に保存する必要があります。これを行うには、左側のメニューから “Management center “を開く(通常は最後のオプションである):
プロジェクト管理の概要で、”Connected resources “セクションの下にある “New connection “をクリックする:
表示されたモーダルで、”Custom keys “オプションを選択します:
これが、Azure AI FoundryにカスタムAPIキーを保存する方法です。
ここで、BRIGHT_DATA_API_KEY のような名前の新しいシークレットキーを作成し、値フィールドに Bright Data API キーを貼り付けます。必ず “is secret” オプションをチェックしてください。次に、接続にbright-dataのようなわかりやすい名前をつけます:
最後に “Add connection” を押して保存します。
よし!フローに戻ります。これで、Bright Data Python SDKと保存したAPIキーを使って、わずか数行のコードでSERP APIを呼び出す方法がわかりました。
ステップ #8: Bright Data の SERP API を呼び出すカスタム Python ノードの定義
フローキャンバスで “Python” ボタンをクリックし、新しいPython ツールノードを作成します:
ノードにserp_api などの名前を付けて、”Add” ボタンを押します:
コードテキストエリアに、以下の Python コードを追加します:
from promptflow import tool
from promptflow.connections import CustomConnection
from brightdata import bdclient
ツール
def serp_api(search_input: str, bd_conn: CustomConnection) -> str:
# Bright Data SDKクライアントを初期化します。
client = bdclient(api_token=bd_conn.BRIGHT_DATA_API_KEY)
# GoogleからSERPをMarkdown形式で取得します。
serp_page = client.search(
search_input、
data_format="markdown"、
country="us"
)
return serp_page
Azure AI Foundryでは、Pythonノードは@toolでアノテーションされた関数としてツールを定義する必要があります。この場合、serp_api()関数は、検索入力文字列とカスタム接続を入力として受け入れます。
カスタム接続から、関数は先に定義したBRIGHT_DATA_API_KEYを読み込み、それを使用して Bright Data API Python SDK クライアントインスタンスを初期化します。そのクライアントを使用して、search()メソッドでSERP APIを呼び出し、data_format="markdown "とcountry="US "オプションを指定して、米国版GoogleからスクレイピングされたSERPページをMarkdownで返します。(AIに取り込むには理想的だ)。
次に、下にスクロールして、ノードの入力要素を定義する。まず、”Validate and parse input “を押して、ノードが有効な入力を認識できるようにする。識別された入力をマッピングして設定する:
bd_connをbright-data(先ほど定義したカスタム接続)にマッピングする。search_inputを${input.topic}にマッピングし、入力ノードからの検索入力がSERP APIに渡されるようにする。
すごい!これで Azure AI Foundry における Bright Data SERP API の統合は完了です。
ステップ #9: LLM ノードの指定
最初の検索トピックに対応する SERP ページができたので、それを LLM に送り、ニュースの抽出と評価を行います。フロー」タブのすぐ下にある「LLM」ボタンを押して、LLMノードを追加する:
LLMノードにllmのような名前を付け、”Add “をクリックして確認する:
このノードでプロンプトフローのコアロジックを定義する。ニュースの抽出と評価の目標を達成するには、次のようなプロンプトを書けばよい:
# システム:
あなたはニュース分析アシスタントで、与えられたトピックに対して最も関連性の高いニュース記事を特定することを任務としている。
# user:
以下のSERPページが与えられたら、最も重要なニュース項目を抽出し、それぞれを読む価値がどの程度あるかに基づいて1から5の尺度で評価してください。
以下を含むMarkdownフォーマットのレポートを返す:
* ニュースのタイトル
* ニュースのURL
* 短い説明(20ワード以内)
* 読む価値(1-5)
SERPページ
{{serp_page}}
システムセクションはアシスタントの役割と全体的な動作を定義し、#ユーザーセクションは具体的なタスクと入力処理の指示を提供する。
次に、LLMノードを先ほど(ステップ#3で)デプロイしたAIモデルに接続するように設定します:
プロンプトにはserp_pageパラメータが含まれており、先に定義したserp_apiノードの出力に設定する必要があることに注意してください。Inputs “セクションで “Validate and parse input “を押し、serp_pageを ${serp_api.output}に代入することで設定します:
クールだ!これで、あなたのAzure AIフローは、SERPの結果を処理し、評価されたニュースレポートを生成できるLLMの “脳 “として機能するようになった。
ステップ #10: 出力ノードの定義
最後のステップは、出力ノードの設定です。Outputs “セクションで、”Add output “をクリックする:
出力名をreportに設定し、${llm.output}変数を使ってLLMノードの出力に割り当てます:
完了したら、”Save “を押してプロンプトフローを保存する:
おめでとうございます!これでAzure AIフローは完全に実装されました。
ステップ #11:すべてをまとめる
フロー開発環境の「グラフ」セクションを見ると、以下のようなDAGが表示されているはずです:
これは、ステップ#5で説明したニュース分析フローを明確に表しており、入力、SERP APIコール、LLM評価、出力がどのように接続されているかを示しています。
ステップ #12: プロンプトフローの起動
Azure AIプロンプトフローをテストするために、例のトピック “株式市場のニュース “を使ってみましょう。Inputs “ノードで、トピックの“Value “に “stock market news “という文字列を記入する:
次に、右上の「実行」ボタンを押してフローを実行する:
データがフローを通過して「Outputs」ノードに到達するまで、各ノードが徐々に緑色に変わっていくのがわかるはずだ:
実行が完了すると、このような通知が表示されます:
View outputs “をクリックすると、フローの結果が表示されます:
予想通り、フローはニュース記事を含むMarkdownレポートを生成する。この場合、以下の内容が含まれます:
- ニュース・タイトル:**米中協議がトランプ大統領との貿易協定締結を示唆、ダウ、S&P500、ナスダック先物は上昇
**ニュースURL:** [ヤフーファイナンス](https://finance.yahoo.com/news/live/stock-market-today-dow-sp-500-nasdaq-futures-climb-as-us-china-talks-tee-up-trade-deal-for-trump-225050786.html)
**Short description:** Live update: トランプ会談を控えた米中貿易協定への期待で米先物が上昇。
**読み応え:** 5
- ニュースタイトル:** 今日の株式市場:ダウ、S&P500、ナスダック先物は上昇、米中会談でトランプ大統領への貿易協定締結を示唆
**ニュースURL:** [ヤフーファイナンス](https://finance.yahoo.com/news/live/stock-market-today-dow-sp-500-nasdaq-futures-climb-as-us-china-talks-tee-up-trade-deal-for-trump-225050786.html)
**今日の株式市場:ダウ、S&P500、ナスダック先物が上昇、米中会談でトランプ大統領との通商取引に期待
**読み応え:** 5
# 簡潔にするため省略...
これらの結果は、フロー実行時の「株式市場ニュース」SERPページを反映している:
SERPページが正しく取得されたことを確認するには、serp_apiノードの “Outputs “セクションの “output “タブを検査する:
そこには、元のSERPのMarkdownバージョンがあります。Bright DataのSERP APIは魔法をかけたのだ!
さて、フローの出力の全容を確認するには、レポート出力をファイルにコピーしてください。それをVisual Studio CodeのようなMarkdownビューアで表示します:
フローによって生成されたレポートが、”株式市場のニュース “のGoogle SERPに表示されたニュースとどのように一致しているかに注目してください。Googleの検索結果をスクレイピングするのは、ボット対策やレートリミッターのために難しいことで有名だ。SERP APIを使用することで、スケーラビリティの制限なく、様々な地域のGoogle(または他のサポートされている検索エンジン)の検索結果をAI対応のMarkdownフォーマットで確実かつ簡単に取得することができます。
この例はシンプルな使用例を示していますが、より複雑なフローを試したり、他のBright Data製品を統合したり、異なるタスクを処理するためにLLMプロンプトを調整したりすることができます。他の多くのユースケースもサポートされています!
さあ、できました!これで、Web 検索データを取得し、RAG スタイルのワークフローでコンテキストとして使用する Azure AI Foundry フローができました。
まとめ
このブログポストでは、Bright DataのSERP APIを使用してGoogleから新鮮なニュース記事を取得し、Azure AIでRAGワークフローに統合する方法を学びました。
ここで示したAIワークフローは、コンテンツをフィルタリングするニュースアシスタントを構築したい人に最適です。より高度なAIのためのワークフローを作成するには、ライブウェブデータを取得、検証、変換するためのBright Dataのツール群をご覧ください。
今すぐ無料のBright Dataアカウントにサインアップして、AIのためのウェブデータソリューションをお試しください!