Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

Python

Bing AIのAPIを疎通(HelloWorld)

投稿日:2023年8月4日 更新日:

 

<目次>

(1) Bing AIのAPIを疎通(HelloWorld)
 やりたいこと/概要
 前提条件
 STEP1:Bing Web Search APIにサインアップ
 STEP2:APIキーの取得
 STEP3:Python環境のセットアップ(パッケージインストール)
 STEP4:サンプルプログラムの実行

(1) Bing AIのAPIを疎通(HelloWorld)

やりたいこと/概要


やりたいこと

  • Bing AIの概要について理解する
  • Bing AIのAPIをコールしてみる
概要
  • Microsoftは2023年5月、BingとEdgeでのAIイノベーションの次の波を発表しました。
  • Bingは「瞬時翻訳」や「ライブ翻訳」といった新機能が追加されました。
  • Edgeは以下のような新機能が追加された
  • 「スマートフィード」はユーザーの好みや興味に基づいてコンテンツを推奨する機能
  • 「スマートショッピング」はユーザーが興味を持っている商品を自動的に見つけてくれます
  • 「スマートアシスタント」はAIがユーザーのために作業を自動化する。
  • 例えば重要なメールの返信や、会議の予定を調整するなどの作業を効率的に行えます。
  • ユーザーはより効率的に作業を行い、より個人に最適化された体験を得られます

前提条件

STEP1:Bing Web Search APIにサインアップ

・①「TRY NOW」
 
(図111)
・②Bing検索リソースの作成
(図112)
・③「ご契約条件」にチェックを入れて「確認と作成」
(図113)
 
(参考)

Microsoft Bing APIの利用に関するポイントをまとめます。

  • Bing APIは、商用および非商用目的で利用できます。
  • 利用にはMicrosoftの利用規約に同意が必要です。
  • 利用規約にはAPIの使用に関する制限が含まれます。
  • APIキーを取得して利用する必要があります。
  • 利用量制限があり、超過した場合は停止される可能性があります。
  • 利用に関してMicrosoftの承認や保証は受けられません。
  • 利用規約に違反した場合、APIの利用が停止され、Microsoftは責任を負いません。
Microsoft Bing Web Search APIのディスプレイ要件に関するポイントをまとめます。
  • APIを使用する際には、Bingブランドの表示方法や検索結果の表示方法に関する要件に従う必要があります。
  • 要件には、検索結果の最小高さやテキストサイズ、注釈のテキストや表示方法に関する制限が含まれます。
  • 要件の目的は、Bingブランドの保護やユーザーエクスペリエンスの向上、検索結果の信頼性の確保です。
  • 要件に違反した場合、MicrosoftはAPIの利用を停止することができます。

STEP2:APIキーの取得

・①「キーの管理」
(図121)
・②キー1を取得
(図122)

STEP3:Python環境のセットアップ(パッケージインストール)

> pip install requests
 
(図211)

STEP4:サンプルプログラムの実行

●サンプルプログラム

import requests
bing_subscription_key = 'xxxxxxx'

def bing_web_search(subscription_key, query):
    # set parameters
    search_url = "https://api.bing.microsoft.com/v7.0/search"
    headers = {"Ocp-Apim-Subscription-Key": subscription_key}
    params = {
        "q": query,
        "textDecorations": True,
        "textFormat": "HTML"}
    # get response
    response = requests.get(search_url, headers=headers, params=params)
    response.raise_for_status()
    return response.json()

def main():
    result = bing_web_search(
        bing_subscription_key,
        "SUUMOで次の条件に合致する中古マンションのURLを教えて。①JR藤沢駅、②3LDK、徒歩5分以内、③築年数15年以内、④4000万円以内"
    )
    print(result)

if __name__ == "__main__":
    main()
(図311)
 

●レスポンス構造

 ・必ず含まれる構造
{
    "_type": "SearchResponse",
    "queryContext": {...},
    "rankingResponse": {...}
}
・質問の内容によって、含まれたり含まれなかったりする構造
{
    "_type": "SearchResponse",
    "queryContext": {...},
    "webPages": {...},
    "images": {...},
    "relatedSearches": {...},
    "videos": {...},
    "news": {...},
    "spellSuggestion": {...},
    "computation": {...},
    "timeZone": {...},
    "rankingResponse": {...},
    "entities": {...},
    "places": {...},
    "translations": {...},
}
 

●実行例

{
  "_type": "SearchResponse",
  "queryContext": {
    "originalQuery": "SUUMOで次の条件に合致する中古マンションのURLを教えて。①JR藤沢駅、②3LDK、徒歩5分以内、③築年数15年以内、④4000万円以内"
  },
  "webPages": {
    "webSearchUrl": "https://www.bing.com/search?q=SUUMO%E3%81%A7%E6%AC%A1%E3%81%AE%E6%9D%A1%E4%BB%B6%E3%81%AB%E5%90%88%E8%87%B4%E3%81%99%E3%82%8B%E4%B8%AD%E5%8F%A4%E3%83%9E%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AEURL%E3%82%92%E6%95%99%E3%81%88%E3%81%A6%E3%80%82%E2%91%A0JR%E8%97%A4%E6%B2%A2%E9%A7%85%E3%80%81%E2%91%A13LDK%E3%80%81%E5%BE%92%E6%AD%A95%E5%88%86%E4%BB%A5%E5%86%85%E3%80%81%E2%91%A2%E7%AF%89%E5%B9%B4%E6%95%B015%E5%B9%B4%E4%BB%A5%E5%86%85%E3%80%81%E2%91%A34000%E4%B8%87%E5%86%86%E4%BB%A5%E5%86%85",
    "totalEstimatedMatches": 479000,
    "value": [
      {
        "id": "https://api.bing.microsoft.com/api/v7/#WebPages.0",
        "name": "【SUUMO】中古マンション購入情報サイト",
        "url": "https://suumo.jp/ms/chuko/",
        "isFamilyFriendly": true,
        "displayUrl": "https://<b>suumo</b>.jp/ms/chuko",
        "snippet": "<b>中古マンションの</b>購入情報探しなら<b>SUUMO</b> (スーモ)<b>中古マンション</b>. 便利な使い方. <b>中古マンション</b>を買うなら、<b>SUUMO</b> (スーモ)<b>に</b>お任せ下さい ...",
        "deepLinks": [
          {
            "name": "関東",
            "url": "https://suumo.jp/ms/chuko/kanto/",
            "snippet": "【SUUMO(スーモ)中古マンション】関東で中古マンションを買うなら、リクルートの物件情報検索サイトSUUMOにお任せください。中古マンシ ョンの ..."
          },
          ~繰り返し~
        ],
        "dateLastCrawled": "2023-05-12Txx:xx:00.0000000Z",
        "language": "ja",
        "isNavigational": true
      },
	  ~繰り返し~
    ]
  },
  "rankingResponse": {
    "mainline": {
      "items": [
        {
          "answerType": "WebPages",
          "resultIndex": 0,
          "value": {
            "id": "https://api.bing.microsoft.com/api/v7/#WebPages.0"
          }
        },
        ~繰り返し~
      ]
    }
  }
}

(図312)
 

●備考:jsonの特定の値を抽出

1つ目のURLを抽出したい場合
    print(result['webPages']['value'][0]['url'])
(参考)

Adsense審査用広告コード


Adsense審査用広告コード


-Python
-

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

Pythonで「ERROR: Could not install packages due to an OSError: [WinError 2]」が出た時の原因と対処方法について

  <目次> (1) Pythonで「ERROR: Could not install packages due to an OSError: [WinError 2]」が出た時の原因と対処 …

PythonでSQLAlchemyを使ってOracleDBに接続する方法

(0)目次&概説 (1) 記事の目的  (1-1) 目的  (1-2) 前提条件 (2) 事前準備  (2-1) 準備1(cx_oracleパッケージの導入)   (2-1-1) インストール資源の入 …

Slackでコマンドを作る方法をご紹介(自作スラッシュコマンド)

  <目次> (1) Slackでコマンドを作る方法をご紹介(自作スラッシュコマンド)  (1-0) やりたいこと  (1-1) STEP1:Slackボットの開発(所要時間:60分)  ( …

PythonのdatapackageとSQLAlchemy、SQLiteを使ってcsvデータをSELECTする

(0)目次&概説 (1) 今回の目的  (1-1) 目的  (1-2) 前提条件 (2) 実施手順  (2-0) 事前作業  (2-1) データ(csv)のロード  (2-2) エンジンの作成  (2 …

Pythonでcsvのカラム名・テーブルのレコードを取得する方法

今回PythonのPandasライブラリを用いてcsvファイルを読み込み、カラム名やテーブルのレコードを取得する方法をご紹介します。 <目次> (1) Pythonでcsvのカラム名・テーブルのレコー …

  • English (United States)
  • 日本語
Top