Quickstart: Obtenha insights de imagem usando a API de pesquisa visual Bing e Python

Aviso

Em 30 de outubro de 2020, as APIs de pesquisa de Bing passaram dos Serviços Cognitivos para Bing Serviços de Busca. Esta documentação é fornecida apenas para referência. Para obter documentação atualizada, consulte a documentação Bing pesquisar a API. Para obter instruções sobre a criação de novos recursos Azure para Bing pesquisa, consulte Criar um recurso de pesquisa Bing através do Azure Marketplace.

Use este quickstart para fazer a sua primeira chamada para a API de pesquisa visual Bing. Esta aplicação Python envia uma imagem para a API e exibe a informação que retorna. Embora esta aplicação esteja escrita em Python, a API é um serviço Web RESTful compatível com a maioria das linguagens de programação.

Pré-requisitos

Criar um recurso Azure

Comece a utilizar a API de Pesquisa Visual Bing, criando um dos seguintes recursos Azure:

Bing Procurar recurso v7

  • Disponível através do portal do Azure até eliminar o recurso.
  • Selecione o S9 nível de preços.

Recurso multi-serviço

  • Disponível através do portal do Azure até eliminar o recurso.
  • Use a mesma chave e ponto final para as suas aplicações, através de vários Serviços Cognitivos.

Inicializar a aplicação

  1. Crie um novo ficheiro Python no seu IDE ou editor favorito e adicione a seguinte import declaração:

    import requests, json
    
  2. Crie variáveis para a sua chave de subscrição, ponto final e o caminho para a imagem que está a carregar. Para o valor de BASE_URI, pode utilizar o ponto final global no seguinte código, ou utilizar o ponto final personalizado subdomínio apresentado no portal do Azure para o seu recurso.

    
    BASE_URI = 'https://api.cognitive.microsoft.com/bing/v7.0/images/visualsearch'
    SUBSCRIPTION_KEY = 'your-subscription-key'
    imagePath = 'your-image-path'
    
  3. Ao carregar uma imagem local, os dados do formulário devem incluir o Content-Disposition cabeçalho. Desaveie o seu name parâmetro para "imagem", e desave o filename parâmetro para o nome do ficheiro da sua imagem. O conteúdo do formulário inclui os dados binários da imagem. O tamanho máximo de imagem que pode carregar é de 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 guardar as informações do cabeçalho do seu pedido. Ligue a chave de subscrição à cadeia Ocp-Apim-Subscription-Key.

    HEADERS = {'Ocp-Apim-Subscription-Key': SUBSCRIPTION_KEY}
    
  5. Crie outro dicionário para conter a sua imagem, que é aberta e carregada quando envia o pedido.

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

Parse a resposta JSON

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

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

Enviar o pedido

Utilize requests.post() para enviar um pedido à API de Pesquisa Visual Bing. Inclua o fio para o seu ponto final, cabeçalho e informações de arquivo. Imprimir 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

Passos seguintes