Vorbereitung
- Führen Sie alle erforderlichen Schritte in der Kurzanleitung aus.
- Stellen Sie die API bereit.
Übersicht
Sie können die API unabhängig von der verwendeten Installationsmethode abfragen. Wie Sie die API abfragen, hängt davon ab, ob Sie einen öffentlichen Endpunkt konfiguriert haben. Wenn der Endpunkt nicht öffentlich ist, müssen Sie festlegen, wie die API bereitgestellt werden soll. Dafür gibt es viele Möglichkeiten. Beispielsweise können Sie eine Ingress-Ressource erstellen, wenn Ihr Cluster dies unterstützt, den erstellten Dienst veröffentlichen und den folgenden Befehl ausführen: Istio usw.
Die folgenden Schritte führen Sie durch die Abfrage eines Endpunkts. Dazu gibt es zwei Methoden:
- Fragen Sie den Endpunkt innerhalb des Clusters ab (keine öffentliche IP-Adresse erforderlich).
- Öffentliche IP-Adresse abfragen
Internen DNS-Namen abfragen (keine öffentliche IP-Adresse erforderlich)
In diesem Beispiel wird eine Abfrage innerhalb des Clusters mit dem dem Dienst zugewiesenen DNS-Namen (DNS) ausgeführt: $NAME.$NAMESPACE, z. B. speech.speech. Sie können entweder die Umgebungsvariablen festlegen oder sie durch einen tatsächlichen Wert in den Befehlen ersetzen.
Erstellen Sie einen neuen Job innerhalb des Clusters, um die API abzufragen. Wenn dieser Job bereits im Cluster vorhanden ist, sollten Sie ihn zuerst entfernen.
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 -Prüfen Sie die Logs, um das Transkript anzusehen:
kubectl logs -n $NAMESPACE --follow $(kubectl get po -n $NAMESPACE -l app=query -o=jsonpath='{.items[0].metadata.name}') -c entrypoint
Öffentliche IP-Adresse abfragen
Wenn Sie Istio in Ihrem Cluster installiert haben, prüfen Sie, ob das Istio Ingress Gateway mit einer öffentlichen IP ausgeführt wird. Wenn Sie Istio nicht installiert haben, können Sie den Wert für $PUBLIC_IP festlegen. Danach können Sie Transkriptionsanfragen an einen öffentlichen Endpunkt senden.
Wenn Sie Istio installiert haben, folgen Sie der Anleitung, um die öffentliche IP-Adresse des Ingress zu erhalten und auf
PUBLIC_IPfestzulegen.Wenn Istio noch nicht installiert ist, prüfen Sie, ob die IP-Adresse gebunden wurde. Es sollte unter
EXTERNAL-IPangezeigt werden. Wenn es nach einigen Minuten noch nicht angezeigt wird, rufen Sie zur Fehlerbehebung den Cluster in der Console auf.kubectl get service $NAME --namespace $NAMESPACEKopieren Sie die Binärdatei
onprem_clientaus dem Docker-Image: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_clientVerwenden Sie die Binärdatei
onprem_client, um eine Abfrage zu senden:./onprem_client --address ${PUBLIC_IP}:443 --file_paths /path/to/audio.wav
Nächste Schritte
Informationen zum Senden einer Transkriptionsanfrage an die Speech-to-Text-On-Prem API