Compartilhar via


Início Rápido: Obtenha insights de imagem usando a API REST da Pesquisa Visual do Bing e o Python

Aviso

Em 30 de outubro de 2020, as APIs de Pesquisa do Bing foram migradas dos serviços de IA do Azure para os Serviços de Pesquisa do Bing. Esta documentação é fornecida apenas para referência. Para obter a documentação atualizada, consulte a documentação da API de pesquisa do Bing. Para obter instruções sobre como criar novos recursos do Azure para a Pesquisa do Bing, consulte Criar um recurso de Pesquisa do Bing por meio do Azure Marketplace.

Use este início rápido para fazer sua primeira chamada à API da Pesquisa Visual do Bing. Este aplicativo Python carrega uma imagem na API e exibe as informações retornadas por ela. Embora esse aplicativo seja escrito em Python, a API é um serviço Web RESTful compatível com a maioria das linguagens de programação.

Pré-requisitos

Criar um recurso do Azure

Comece a usar a API da Pesquisa Visual do Bing criando um dos seguintes recursos do Azure:

Recurso de Pesquisa do Bing v7

  • Disponível por meio do portal do Azure até que você exclua o recurso.
  • Selecione o tipo de preço S9.

Recurso de vários serviços

  • Disponível por meio do portal do Azure até que você exclua o recurso.
  • Use a mesma chave e ponto de extremidade para seus aplicativos nos vários serviços de IA do Azure.

Inicializar o aplicativo

  1. Crie um arquivo do Python em seu IDE ou editor favorito e adicione a seguinte instrução import:

    import requests, json
    
  2. Crie variáveis para a chave de assinatura, o ponto de extremidade e o caminho para a imagem que você está carregando. Para o valor de BASE_URI, você pode usar o ponto de extremidade global no código a seguir ou usar o ponto de extremidade do subdomínio personalizado exibido no portal do Azure para seu recurso.

    
    BASE_URI = 'https://api.cognitive.microsoft.com/bing/v7.0/images/visualsearch'
    SUBSCRIPTION_KEY = 'your-subscription-key'
    imagePath = 'your-image-path'
    
  3. Quando você carrega uma imagem local, os dados do formulário precisam incluir o cabeçalho Content-Disposition. Defina o parâmetro name como "imagem" e o parâmetro filename como o nome de arquivo da sua imagem. O conteúdo do formulário inclui os dados binários da imagem. O tamanho máximo da imagem que pode ser carregada é 1 MB.

    --boundary_1234-abcd
    Content-Disposition: form-data; name="image"; filename="myimagefile.jpg"
    
    ÿØÿà JFIF ÖÆ68g-¤CWŸþ29ÌÄøÖ‘º«™æ±èuZiÀ)"óÓß°Î= ØJ9á+*G¦...
    
    --boundary_1234-abcd--
    
  4. Crie um objeto de dicionário para armazenar as informações de cabeçalho da solicitação. Associe sua chave de assinatura à cadeia de caracteres Ocp-Apim-Subscription-Key.

    HEADERS = {'Ocp-Apim-Subscription-Key': SUBSCRIPTION_KEY}
    
  5. Crie outro dicionário para conter a imagem, que será aberta e carregada quando você enviar a solicitação.

    file = {'image' : ('myfile', open(imagePath, 'rb'))}
    

Analisar a resposta JSON

Crie um método chamado print_json() para aceitar a resposta da API e imprima o JSON.

def print_json(obj):
    """Print the object as json"""
    print(json.dumps(obj, sort_keys=True, indent=2, separators=(',', ': ')))

Enviar a solicitação

Use requests.post() para enviar uma solicitação para a API da Pesquisa Visual do Bing. Inclua a cadeia de caracteres para o ponto de extremidade, o cabeçalho e as informações do arquivo. Imprima response.json() com print_json().

try:
    response = requests.post(BASE_URI, headers=HEADERS, files=file)
    response.raise_for_status()
    print_json(response.json())
    
except Exception as ex:
    raise ex

Próximas etapas