Pré-requisitos
- Conclua todos os passos necessários no início rápido antes de começar.
- 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:
- Consultar o ponto final a partir do cluster (não é necessário um IP público).
- 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.
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 -
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.
Se tiver o Istio instalado, siga as instruções para obter o IP público do Ingress e defini-lo como
PUBLIC_IP
.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
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
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.