快速入门:查询 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,请确保使用公共 IP 运行 Istio 入站流量网关。如果尚未安装 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 发送转录请求