事前準備
總覽
無論您使用哪種安裝方法,都可以使用相同的方法查詢 API。您可以透過以下方式查詢 API:如果端點不是公開,您必須自行決定如何公開 API。您可以透過多種方式執行這項操作,包括在叢集支援的情況下建立 Ingress、發布已建立的服務、執行 Istio 等等。
請按照下列步驟查詢端點。有兩種方法:
- 從叢集內部查詢端點 (不需要公開 IP)。
- 查詢公開 IP。
查詢內部 DNS 名稱 (不需要公開 IP)
本範例會使用指派給服務的網域名稱服務 (DNS) 名稱:$NAME.$NAMESPACE
在叢集中執行查詢,例如 speech.speech.
。您可以設定環境變數,也可以在指令中將其替換為實際值。
在叢集內建立新工作,以便查詢 API。如果這個工作已存在於叢集中,請先將其移除。
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 -
請查看記錄檔,確認轉錄稿:
kubectl logs -n $NAMESPACE --follow $(kubectl get po -n $NAMESPACE -l app=query -o=jsonpath='{.items[0].metadata.name}') -c entrypoint
查詢公開 IP
如果您在叢集中安裝 Istio,請確認 Istio Ingress Gateway 是否已透過公開 IP 執行。如果您尚未安裝 Istio,可以設定 $PUBLIC_IP
的值。完成後,您就可以將轉錄查詢提交至公開端點。
如果您已安裝 Istio,請按照操作說明取得 Ingress 公開 IP,並將其設為
PUBLIC_IP
。如果您未安裝 Istio,請確認 IP 位址是否已繫結。應會顯示在下方的
EXTERNAL-IP
下方。如果幾分鐘後仍未顯示,請前往控制台中的叢集進行疑難排解。kubectl get service $NAME --namespace $NAMESPACE
從 Docker 映像檔複製
onprem_client
二進位檔: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
使用
onprem_client
二進位檔提交查詢:./onprem_client --address ${PUBLIC_IP}:443 --file_paths /path/to/audio.wav
後續步驟
瞭解如何傳送轉錄要求給 Speech-to-Text On-Prem API。