Início rápido: consulte a API

Pré-requisitos

  1. Conclua todos os passos necessários no início rápido antes de começar.
  2. Implemente a API.

Vista geral

Pode consultar a API através dos mesmos métodos, independentemente do método de instalação que usou. A forma como consulta a API depende de ter ou não configurado um ponto final público. Se o seu ponto final não for público, tem de determinar como expor a API. Existem muitas opções para o fazer, incluindo a criação de um Ingress se o seu cluster o suportar, a publicação do serviço criado, a execução do Istio e assim sucessivamente.

Os passos descritos abaixo explicam como consultar um ponto final. Existem dois métodos:

  1. Consultar o ponto final a partir do cluster (não é necessário um IP público).
  2. Consultar um IP público.

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

Este exemplo executa uma consulta a partir do cluster usando o nome do Serviço de Nomes de Domínio (DNS) atribuído ao serviço: $NAME.$NAMESPACE, como speech.speech.. Pode definir as variáveis de ambiente ou substituí-las pelo valor real nos comandos.

  1. Crie uma nova tarefa no cluster a partir da qual consultar a API. Se esta tarefa já existir no cluster, deve removê-la primeiro.

    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 registos 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
    

Consultar um IP público

Se instalou o Istio no seu cluster, certifique-se de que tem o Istio Ingress Gateway em execução com um IP público. Se não tiver instalado o Istio, pode definir o valor de $PUBLIC_IP. Quando esta ação estiver concluída, pode enviar consultas de transcrição para um ponto final público.

  1. Se tiver o Istio instalado, siga as instruções para obter o IP público do Ingress e defini-lo como PUBLIC_IP.

  2. Se não tiver o Istio instalado, valide se o endereço IP foi associado. Deve aparecer em EXTERNAL-IP abaixo. Se não aparecer após alguns minutos, navegue para o seu cluster na consola para resolução de problemas.

    kubectl get service $NAME --namespace $NAMESPACE
    
    1. Copie o ficheiro 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 ficheiro binário onprem_client para enviar uma consulta:

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

O que se segue?

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