Prerequisiti
- Completa tutti i passaggi richiesti nella prima di iniziare.
- Distribuisci l'API .
Panoramica
Puoi eseguire query sull'API utilizzando gli stessi metodi, indipendentemente dal metodo di installazione utilizzato. Il modo in cui esegui le query sull'API dipende dal fatto che tu abbia o meno configurato un endpoint pubblico. Se il tuo endpoint non è pubblico, è necessario per determinare come esporre l'API autonomamente. Esistono molte opzioni per farlo, tra cui la creazione di un Ingress se il tuo cluster lo supporta, la pubblicazione del servizio creato, l'esecuzione di Istio e così via.
I passaggi descritti di seguito illustrano come eseguire query su un endpoint. Esistono due metodi metodo:
- Esegui una query sull'endpoint dall'interno del cluster (non è necessario un IP pubblico).
- Esegui una query su un IP pubblico.
Esegui una query sul nome DNS interno (non è richiesto un IP pubblico)
Questo esempio esegue una query dall'interno del cluster utilizzando il nome del servizio DNS (Domain Name System) assegnato al servizio: $NAME.$NAMESPACE
, ad esempio speech.speech.
. Puoi impostare le variabili di ambiente o sostituirle con il valore effettivo nei comandi.
Crea un nuovo job all'interno del cluster da cui eseguire query sull'API. Se questo job esiste già nel cluster, devi prima rimuoverla.
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 -
Controlla i log per visualizzare la trascrizione:
kubectl logs -n $NAMESPACE --follow $(kubectl get po -n $NAMESPACE -l app=query -o=jsonpath='{.items[0].metadata.name}') -c entrypoint
Esegui una query su un IP pubblico
Se hai installato Istio nel cluster, assicurati di avere Istio Ingress
Gateway in esecuzione con un IP pubblico. Se non hai installato Istio, puoi impostare il valore per $PUBLIC_IP
. Al termine, potrai inviare la trascrizione
a un endpoint pubblico.
Se hai installato Istio, segui le istruzioni per ottenere l'IP pubblico di Ingress e impostarlo su
PUBLIC_IP
.Se non hai installato Istio, verifica che l'indirizzo IP sia associato. it dovrebbe apparire in
EXTERNAL-IP
di seguito. Se non viene visualizzata dopo alcune minuti, passa a il tuo cluster nella console per la risoluzione dei problemi.kubectl get service $NAME --namespace $NAMESPACE
Copia il programma binario
onprem_client
dall'immagine 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
Usa il programma binario
onprem_client
per inviare una query:./onprem_client --address ${PUBLIC_IP}:443 --file_paths /path/to/audio.wav
Passaggi successivi
Scopri come inviare una richiesta di trascrizione all'API Speech-to-Text On-Prem.