- はじめに
- Bing Search コネクタはWeb検索には対応していない
- Bing Search APIとは
- 準備作業-Azure PortalでBing Serach リソースを作成する
- フロー全体図
- フロー解説
- 参考にしたページ
- 気になった点
はじめに
Microsoft の検索エンジン Bing にはプログラムから検索を行うことができるAPIが用意されています。今回は、Power Automate クラウドフローからAPIを使ったBing検索を試してみました。
※HTTPコネクタを利用する為Power AUtomate Premiumライセンスなどが必要になります。
Bing Search コネクタはWeb検索には対応していない
Power Automate では Bing Searchコネクタを利用することができますが、残念ながらニュースを検索するアクションしかありません(2024年5月時点)。まだプレビューとなっているコネクタですので今後の機能強化に期待しましょう。
※Bing Search コネクタはPremiumコネクタではありませんが、利用するためにはAzure PortalでBing Searchリソースを作成する必要があります。
Bing Search APIとは
Microsoft の検索エンジン Bingの検索をプログラムから行うことができるインターフェースです。
- Web Search API
- Image Search API
- News Search API
- Video Search API
- Visual Search API
- Custom Search API
- Entity Search API
- Spell Check API
- Autosuggest API
等多数のAPIが含まれておりWebページだけでなく画像やビデオ、ニュースなどを取得するAPIも提供されています。
これらのうち、今回はWeb Search APIを利用します。
【重要】Bing Search API の要件を確認しておきましょう
こちらのページにBing Search APIの要件があります。禁止事項などがありますので必ず確認しておきましょう。
また、Power AutomateでBing の検索結果を取得したら生成AIに渡してあれこれしたくなってきますが、こちらのページでLLMとBingSearch APIを組わせて使う場合の要件が説明されています。そういった用途の場合は必ずこちらのページを確認しましょう。
準備作業-Azure PortalでBing Serach リソースを作成する
※Azureアカウント、サブスクリプション、リソースグループはあらかじめ作成済みの状態から説明しています。
1.Bing Search API のページを開き、「Try Now」をクリック
https://www.microsoft.com/en-us/bing/apis
2.Azure PortalにサインインしBing Search リソースを作成する
- サブスクリプション
- あらかじめ作成しておく必要があります
- リソースグループ
- 複数のリソースをまとめて管理するためのグループです。作成済みのリソースグループがある場合は選択し、ない場合はこのページから新規作成もできます。
- 名前
- Bing Search リソースの名前を付けます
- リージョン
- グローバルのまま変更不要
- 価格レベル
- Bing Search APIは従量課金制です。
- F1を選択すれば無料枠で試すことができます。
全て設定したら契約条件に同意するチェックをオンにし「確認と作成」をクリックします。
3.選択した内容を確認し問題なければ「作成」をクリックするとリソースが作成され舞す
4.作成が完了したらリソースに移動します
5.作成したBing Searchリソースを開くとこんな画面が表示されます
ページ中央「お試しください」の下で実際に検索を試すことができます。
6.画面中央右のキーの管理の「click here to manage keys 」をクリックします
7.Key1の右端のアイコンをクリックしAPIキーをクリップボードにコピーします
コピーしたキーは安全な場所に保管しておきます。
以上で、Azure Portalでの準備作業は完了です。
フロー全体図
フロー解説
1.[Flow button for mobile]フローを手動でトリガーする
テストフローなのでこちらをトリガーにしています。
2.[Data Control]作成-API Key
本来は Azure Key Valutを使って安全な状態でキーを管理すべきですが、作成環境の都合で今回は作成アクションにキーを格納しています。
- 入力
- Bing Serach APIのキー
3.[HTTP]HTTP-Bing Web Search API
Bing Web Search APIを呼びます。
- URI
-
https://api.bing.microsoft.com/v7.0/search?q=@{encodeUriComponent('ここに検索キーワード')}&mkt=ja-JP&responseFilter=Webpages
- パラメータはqのみ必須ですが、mkt=ja-JPも指定すると日本向けに望ましい結果となります
- 他にも多数のパラメータが利用できます
-
- Method
- GET
- Headers
- Ocp-Apim-Subscription-Key
- @{outputs('作成-API_Key')}
- Ocp-Apim-Subscription-Key
こんな感じのjsonで返されます。
こちらのページに応答jsonオブジェクトの説明があります。WebPagesに関するところはこちらです。
参考にしたページ
気になった点
site: オプションは機能しない?
Bingで検索する時例えば「apple キーボード site:yodobashi.com」とsite:を使ってドメインを指定する事が出来ます。
リファレンスページにはこのように検索オプションが使用できることが明記されています。しかし、試した限り site: (検索結果をドメイン指定でフィルターリングするオプション)を指定してもWebページと同様に指定すると結果を返さなくなり、リファレンスページように+でキーワードを結合しても異なるドメインが含まれることがあり意図した結果になりませんでした。この辺りコツがいるのかもしれません。
今回はあまり深く追求していません。特定ドメインを検索するのであれば「Bing Custom Search API」がありますのでそちらを使う事にしました。
「Bing Custom Search API」に続きます。