Rychlý start: Odeslání žádosti o hledání do rozhraní REST API Bingu pro vyhledávání entit pomocí Pythonu

Upozornění

30. října 2020 se rozhraní API Vyhledávání Bingu přesunula ze služeb Azure AI na Vyhledávání Bingu Services. Tato dokumentace je k dispozici pouze pro referenci. Aktualizovanou dokumentaci najdete v dokumentaci k rozhraní API bingu pro vyhledávání. Pokyny k vytváření nových prostředků Azure pro vyhledávání Bingem najdete v tématu Vytvoření prostředku Vyhledávání Bingu prostřednictvím Azure Marketplace.

Pomocí tohoto rychlého startu provedete první volání rozhraní API Bingu pro vyhledávání entit a zobrazíte odpověď JSON. Tato jednoduchá aplikace Pythonu odešle do rozhraní API dotaz pro vyhledávání zpráv a zobrazí odpověď. Zdrojový kód pro tuto ukázku je k dispozici na GitHubu.

I když je tato aplikace napsaná v Pythonu, rozhraní API je webová služba RESTful kompatibilní s většinou programovacích jazyků.

Požadavky

Vytvoření prostředku Azure

Začněte používat rozhraní API Bingu pro vyhledávání entit vytvořením jednoho z následujících prostředků Azure.

Prostředek Vyhledávání entit Bingu

  • Dostupné prostřednictvím Azure Portal, dokud prostředek neodstraníte.
  • K vyzkoušení služby použijte bezplatnou cenovou úroveň a později upgradujte na placenou úroveň pro produkční prostředí.
  • Vyhledávání entit Bingu je také nabízeno na placených úrovních prostředku Vyhledávání Bingu v7.

Prostředek s více službami

  • Dostupné prostřednictvím Azure Portal, dokud prostředek neodstraníte.
  • Pro aplikace používejte stejný klíč a koncový bod napříč několika službami Azure AI.

Vytvoření a inicializace aplikace

  1. Ve svém oblíbeném integrovaném vývojovém prostředí nebo editoru vytvořte nový soubor Pythonu a přidejte následující importy. Vytvořte proměnné pro klíč předplatného, koncový bod, trh a vyhledávací dotaz. Globální koncový bod můžete použít v následujícím kódu nebo vlastní koncový bod subdomény zobrazený v Azure Portal pro váš prostředek.

    import http.client, urllib.parse
    import json
    
    subscriptionKey = 'ENTER YOUR KEY HERE'
    host = 'api.bing.microsoft.com'
    path = '/v7.0/search'
    mkt = 'en-US'
    query = 'italian restaurants near me'
    
  2. Vytvořte adresu URL požadavku tak, že k parametru připojíte proměnnou ?mkt= trhu. Zakódujte svůj dotaz pomocí adresy URL a připojte ho k parametru &q= .

    params = '?mkt=' + mkt + '&q=' + urllib.parse.quote (query)
    

Odeslání požadavku a získání odpovědi

  1. Vytvořte funkci s názvem get_suggestions().

  2. V této funkci přidejte klíč předplatného do slovníku jako Ocp-Apim-Subscription-Key klíč.

  3. Slouží http.client.HTTPSConnection() k vytvoření objektu klienta HTTPS. GET Odešlete požadavek pomocí request() cesty, parametrů a informací o hlavičce.

  4. Uložte odpověď pomocí getresponse()a vraťte response.read().

    def get_suggestions ():
     headers = {'Ocp-Apim-Subscription-Key': subscriptionKey}
     conn = http.client.HTTPSConnection (host)
     conn.request ("GET", path + params, None, headers)
     response = conn.getresponse ()
     return response.read()
    
  5. Zavolejte get_suggestions()a vytiskněte odpověď JSON.

    result = get_suggestions ()
    print (json.dumps(json.loads(result), indent=4))
    

Příklad odpovědi JSON

Úspěšná odpověď se vrátí ve formátu JSON, jak je znázorněno v následujícím příkladu:

{
  "_type": "SearchResponse",
  "queryContext": {
    "originalQuery": "italian restaurant near me",
    "askUserForLocation": true
  },
  "places": {
    "value": [
      {
        "_type": "LocalBusiness",
        "webSearchUrl": "https://www.bing.com/search?q=sinful+bakery&filters=local...",
        "name": "Liberty's Delightful Sinful Bakery & Cafe",
        "url": "https://www.contoso.com/",
        "entityPresentationInfo": {
          "entityScenario": "ListItem",
          "entityTypeHints": [
            "Place",
            "LocalBusiness"
          ]
        },
        "address": {
          "addressLocality": "Seattle",
          "addressRegion": "WA",
          "postalCode": "98112",
          "addressCountry": "US",
          "neighborhood": "Madison Park"
        },
        "telephone": "(800) 555-1212"
      },

      . . .
      {
        "_type": "Restaurant",
        "webSearchUrl": "https://www.bing.com/search?q=Pickles+and+Preserves...",
        "name": "Munson's Pickles and Preserves Farm",
        "url": "https://www.princi.com/",
        "entityPresentationInfo": {
          "entityScenario": "ListItem",
          "entityTypeHints": [
            "Place",
            "LocalBusiness",
            "Restaurant"
          ]
        },
        "address": {
          "addressLocality": "Seattle",
          "addressRegion": "WA",
          "postalCode": "98101",
          "addressCountry": "US",
          "neighborhood": "Capitol Hill"
        },
        "telephone": "(800) 555-1212"
      },
      
      . . .
    ]
  }
}

Další kroky