Guia de início rápido: consultar a API

Pré-requisitos

  1. Conclua todas as etapas necessárias no guia de início rápido antes de começar.
  2. Implante a API.

Visão geral

Consulte a API usando os mesmos métodos, independentemente do método de instalação usado. A maneira de consultar a API depende de você ter ou não configurado um endpoint público. Se o endpoint não for público, você precisará determinar como expor a API por conta própria. Há muitas opções para fazer isso, incluindo a criação de uma Entrada caso seu cluster seja compatível, a publicação do serviço criado, executando o Istio, e assim por diante.

Nas etapas descritas abaixo, você verá como consultar um endpoint. Há dois métodos:

  1. Consulte o endpoint no cluster (não é necessário um IP público).
  2. Consulte um IP público.

Consulte o nome de DNS interno (não é necessário um IP público)

Este exemplo executa uma consulta no cluster usando o nome de Serviço de Nome de Domínio (DNS) atribuído ao serviço: $NAME.$NAMESPACE, como speech.speech.. É possível definir as variáveis de ambiente ou substituí-las por um valor real nos comandos.

  1. Crie um novo job no cluster para consultar a API. Remova esse job primeiro se ele já existir no cluster.

    kubectl delete jobs.batch -n $NAMESPACE query-api
    
    echo "apiVersion: batch/v1
    kind: Job
    metadata:
      name: query-api
      namespace: $NAMESPACE
    spec:
      template:
        metadata:
          annotations:
            sidecar.istio.io/inject: 'false'
          labels:
            app: query
        spec:
          containers:
          - name: entrypoint
            image: gcr.io/cloud-marketplace/speech-onprem/speech-to-text-on-prem:$VERSION
            command: ["/bin/sh", "-c"]
            args:
            - curl https://raw.githubusercontent.com/GoogleCloudPlatform/python-docs-samples/master/speech/snippets/resources/commercial_mono.wav --output /tmp/audio.wav;
              /bin/onprem_client --address=$NAME.$NAMESPACE:443 --file_paths /tmp/audio.wav
          restartPolicy: Never
    " | kubectl apply -f -
    
  2. Verifique os registros para ver a transcrição:

    kubectl logs -n $NAMESPACE --follow $(kubectl get po -n $NAMESPACE -l
    app=query -o=jsonpath='{.items[0].metadata.name}') -c entrypoint
    

Consulte um IP público

Se você instalou o Istio no cluster, verifique se o Gateway de Entrada do Istio está em execução com um IP público. Se você não tiver instalado o Istio, defina o valor como $PUBLIC_IP. Depois de fazer isso, é possível enviar consultas de transcrição a um endpoint público.

  1. Se você tiver o Istio instalado, siga as instruções para conseguir o IP público do Ingress e defina-o como PUBLIC_IP.

  2. Se você não tiver o Istio instalado, confirme se o endereço IP foi vinculado. Ele aparecerá abaixo de EXTERNAL-IP. Se ele não aparecer após alguns minutos, navegue até o cluster no console para resolver o problema.

    kubectl get service $NAME --namespace $NAMESPACE
    
    1. Copie o binário onprem_client da imagem do docker:

      kubectl cp -n $NAMESPACE $(kubectl get pod -n $NAMESPACE -l
      app.kubernetes.io/name=$NAME -o=jsonpath='{.items[0].metadata.name}'
      ):/bin/onprem_client ./onprem_client
      
      kubectl cp -n $NAMESPACE $(kubectl get pod -n $NAMESPACE -l
      app.kubernetes.io/name=$NAME -o=jsonpath='{.items[0].metadata.name}'
      ):/usr/grte.tar ./grte.tar
      
      sudo tar -xvf grte.tar -C /
      
      chmod a+x ./onprem_client
      
    2. Use o binário onprem_client para enviar uma consulta:

      ./onprem_client --address ${PUBLIC_IP}:443
      --file_paths /path/to/audio.wav
      

A seguir

Saiba como enviar uma solicitação de transcrição para a API Speech-to-Text On-Prem.