Guia de início rápido

A API Cloud Inference permite a fácil integração das tecnologias de Pesquisa e análise do Google para dados de série temporal nos seus aplicativos. A API Cloud Inference permite que você:

  • Processe conjuntos de dados de série temporal:
    • Ingestão de JSON para formatos internos com eficiência de consulta
    • Remover conjuntos de dados enviados anteriormente do sistema.
    • Listar conjuntos de dados ativos no sistema enviado pelo seu projeto
  • Execute consultas de inferência em conjuntos de dados carregados:
    • Como os valores de tipos diferentes são correlacionados? Por exemplo: com um conjunto de dados de notícias rotuladas, quais rótulos estão relacionados a artigos sobre férias?
    • Como a frequência do evento varia ao longo do tempo? Por exemplo: quais dias têm um número excepcionalmente alto de eventos relacionados a tópicos específicos?
    • Qual é a probabilidade de fundo de um evento no sistema? Por exemplo: com que frequência imagens de vários esportes aparecem nos artigos?

Consulte O que é a API Cloud Inference? para mais informações.

Antes de começar

  1. Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
  2. No Console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  3. Verifique se o faturamento está ativado para seu projeto na nuvem. Saiba como confirmar se o faturamento está ativado para o projeto.

  4. Ative a API Cloud Inference.

    Ative a API

  5. Crie uma conta de serviço:

    1. No Console do Cloud, acesse a página Criar conta de serviço.

      Acesse Criar conta de serviço
    2. Selecione um projeto.
    3. No campo Nome da conta de serviço, insira um nome. O Console do Cloud preenche o campo ID da conta de serviço com base nesse nome.

      No campo Descrição da conta de serviço, insira uma descrição. Por exemplo, Service account for quickstart.

    4. Clique em Criar e continuar.
    5. Clique no campo Selecionar um papel.

      Em Acesso rápido, clique em Básico e em Proprietário.

    6. Clique em Continuar.
    7. Clique em Concluído para terminar a criação da conta de serviço.

      Não feche a janela do navegador. Você vai usá-lo na próxima etapa.

  6. Crie uma chave de conta de serviço:

    1. No Console do Cloud, clique no endereço de e-mail da conta de serviço que você criou.
    2. Clique em Chaves.
    3. Clique em Adicionar chave e em Criar nova chave.
    4. Clique em Criar. O download de um arquivo de chave JSON é feito no seu computador.
    5. Clique em Fechar.
  7. Defina a variável de ambiente GOOGLE_APPLICATION_CREDENTIALS como o caminho do arquivo JSON que contém a chave da conta de serviço. Essa variável só se aplica à sessão de shell atual. Dessa maneira, se você abrir uma nova sessão, defina a variável novamente.

  8. Instale e inicialize o SDK do Cloud..

Fazer upload de um conjunto de dados

Você criará um conjunto de dados da API Cloud Inference usando o método REST createdataset.

  1. Crie um arquivo de solicitação JSON com o seguinte texto e salve-o como um arquivo de texto simples create-gdelt-dataset.json:

    {
      "name":"gdelt_2018_04_data",
      "data_names": [
        "PageURL",
        "PageDomain",
        "PageCountry",
        "PageLanguage",
        "PageTextTheme",
        "PageTextGeo",
        "ImageURL",
        "ImagePopularityRawScore",
        "ImagePopularity",
        "ImageSafeSearch",
        "ImageLabel",
        "ImageWebEntity",
        "ImageWebEntityBestGuessLabel",
        "ImageGeoLandmark",
        "ImageFaceToneHas"
      ],
      "data_sources": [
        { "uri":"gs://inference-gdelt-demo/inference-gdelt-demo.201804.json" },
      ]
    }
    

    Este snippet JSON indica que queremos criar um conjunto de dados com artigos de notícias anotados do GDELT sobre o qual queremos executar consultas da API Cloud Inference, graças a Kalev Leetaru do GDELT por tornar isso disponível!). O conjunto de dados é de acesso público. Portanto, você não precisará de credenciais de autenticação para acessá-lo. No entanto, é necessário ter credenciais de autenticação para usar a API.

  2. Verifique se você tem um token de autorização:

    gcloud auth application-default print-access-token
      
  3. Use curl para fazer uma solicitação createdataset, passando o token de acesso para ela e o nome do arquivo da solicitação JSON configurada na etapa 1:

    curl -s -H "Content-Type: application/json" \
      -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
      https://infer.googleapis.com/v1/projects/PROJECT_NUMBER/datasets \
      -d @create-gdelt-dataset.json
      

    Para passar o nome do arquivo ao curl use a opção -d (de "dados") e coloque o sinal @ na frente do nome do arquivo. Este arquivo deve estar no mesmo diretório em que você executa o comando curl.

    Uma resposta semelhante a esta será exibida:

    {
      "name": "gdelt_2018_04_data",
      "state": "STATE_PENDING"
    }
    

Ver o status dos conjuntos de dados enviados

Você pode ver o status de todos os conjuntos de dados que enviou para processamento na API Cloud Inference do projeto do cliente usando o método REST ListDataSets.

  1. Receba um token de acesso como fizemos para Criar conjunto de dados acima.

  2. Use curl para fazer uma solicitação listdatasets, passando o token de acesso a ela:

    curl -s -H "Content-Type: application/json" \
      -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
      https://infer.googleapis.com/v1/projects/PROJECT_NUMBER/datasets
      

Consultar um conjunto de dados carregado

  1. Crie um arquivo de solicitação JSON com o seguinte texto e salve-o como um arquivo de texto simples query-gdelt-dataset.json:

    {
      "name": "gdelt_2018_04_data",
      "queries": [{
        "query": {
          "type": "TYPE_TERM",
          "term": {
          "name": "ImageWebEntity",
          "value": "Vacation"
          }
        },
        "distribution_configs": {
          "bgprob_exp": 0.7,
          "data_name": "ImageLabel",
          "max_result_entries": 5,
        }
      }]
    }

    Este snippet JSON indica que queremos consultar o conjunto de dados 'gdelt_2018_04_data' que enviamos anteriormente à API Cloud Inference com uma solicitação createdataset que foi informada como estando em STATE_LOADED. A própria consulta indica que queremos agregar ImageLabels de todos os artigos que contêm "Férias" como entidade e retornar os cinco rótulos mais bem avaliados.

  2. Receba um token de acesso como fizemos para Criar conjunto de dados acima.

  3. Use curl para fazer uma solicitação query, passando o token de acesso e o nome do arquivo da solicitação JSON configurada na etapa 1:

    curl -s -H "Content-Type: application/json" \
      -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
      https://infer.googleapis.com/v1/projects/PROJECT_NUMBER/datasets/gdelt_2018_04_data:query \
      -d @query-gdelt-dataset.json
      

    Para passar o nome do arquivo ao curl use a opção -d (de "dados") e coloque o sinal @ na frente do nome do arquivo. Este arquivo deve estar no mesmo diretório em que você executa o comando curl.

    Uma resposta semelhante a esta será exibida:

    {
      "results": [
        {
          "distributions": [
            {
              "dataName": "ImageLabel",
              "matchedGroupCount": "39124",
              "totalGroupCount": "7616785",
              "entries": [
                {
                  "value": "ImageLabel=vacation",
                  "score": 31.515648,
                  "matchedGroupCount": "37806",
                  "totalGroupCount": "52331"
                },
                {
                  "value": "ImageLabel=beach",
                  "score": 15.222198,
                  "matchedGroupCount": "6825",
                  "totalGroupCount": "12527"
                },
                {
                  "value": "ImageLabel=summer",
                  "score": 13.984301,
                  "matchedGroupCount": "6704",
                  "totalGroupCount": "13780"
                },
                {
                  "value": "ImageLabel=travel",
                  "score": 13.344194,
                  "matchedGroupCount": "6837",
                  "totalGroupCount": "15158"
                },
                {
                  "value": "ImageLabel=sun_tanning",
                  "score": 12.208676,
                  "matchedGroupCount": "2048",
                  "totalGroupCount": "2999"
                }
              ]
            }
          ]
        }
      ]
    }
      

    A resposta retornada é uma distribuição de eventos ImageLabel pontuados por correlação para ImageWebEntity=Vacation. Os eventos de maior pontuação são correlacionados positivamente com artigos sobre férias.