快速入門導覽課程:查詢 API

事前準備

  1. 先完成所有必要步驟,再開始使用快速入門。
  2. 部署 API

總覽

無論您使用哪種安裝方法,都可以使用相同的方法查詢 API。您可以透過以下方式查詢 API:如果端點不是公開,您必須自行決定如何公開 API。您可以透過多種方式執行這項操作,包括在叢集支援的情況下建立 Ingress發布已建立的服務、執行 Istio 等等。

請按照下列步驟查詢端點。有兩種方法:

  1. 從叢集內部查詢端點 (不需要公開 IP)。
  2. 查詢公開 IP。

查詢內部 DNS 名稱 (不需要公開 IP)

本範例會使用指派給服務的網域名稱服務 (DNS) 名稱:$NAME.$NAMESPACE 在叢集中執行查詢,例如 speech.speech.。您可以設定環境變數,也可以在指令中將其替換為實際值。

  1. 在叢集內建立新工作,以便查詢 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 -
    
  2. 請查看記錄檔,確認轉錄稿:

    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 的值。完成後,您就可以將轉錄查詢提交至公開端點。

  1. 如果您已安裝 Istio,請按照操作說明取得 Ingress 公開 IP,並將其設為 PUBLIC_IP

  2. 如果您未安裝 Istio,請確認 IP 位址是否已繫結。應會顯示在下方的 EXTERNAL-IP 下方。如果幾分鐘後仍未顯示,請前往控制台中的叢集進行疑難排解。

    kubectl get service $NAME --namespace $NAMESPACE
    
    1. 從 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
      
    2. 使用 onprem_client 二進位檔提交查詢:

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

後續步驟

瞭解如何傳送轉錄要求給 Speech-to-Text On-Prem API。