Guía de inicio rápido: Consulta la API

Requisitos

  1. Completa todos los pasos necesarios de la guía de inicio rápido antes de empezar.
  2. Implementa la API.

Descripción general

Puedes consultar la API con los mismos métodos, sin importar el método de instalación que usaste. La forma de consultar la API depende de si configuraste o no un extremo público. Si tu extremo no es público, tendrás que determinar cómo expondrás la API. Hay muchas opciones para hacerlo, como crear un Ingress si el clúster lo admite, publicar el servicio creado y ejecutar Istio, entre otros.

Sigue los pasos que se describen a continuación para realizar consultas a un extremo. A continuación, se explican los dos métodos existentes:

  1. Consulta el extremo desde tu clúster (no se requiere una IP pública).
  2. Consulta una IP pública.

Consulta el nombre de DNS interno (no se requiere una IP pública)

En este ejemplo, se ejecuta una consulta desde el clúster con el nombre del servicio de nombres de dominio (DNS) asignado al servicio: $NAME.$NAMESPACE, como speech.speech.. Puedes configurar las variables de entorno o reemplazarlas por el valor real en los comandos.

  1. Crea un trabajo nuevo en el clúster desde el cual puedas consultar la API. Si este trabajo ya existe en el clúster, primero deberás quitarlo.

    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. Revisa los registros para ver la transcripción:

    kubectl logs -n $NAMESPACE --follow $(kubectl get po -n $NAMESPACE -l
    app=query -o=jsonpath='{.items[0].metadata.name}') -c entrypoint
    

Consulta una IP pública

Si instalaste Istio en tu clúster, asegúrate de que la puerta de enlace Istio Ingress se ejecute con una IP pública. Si aún no instalaste Istio, puedes establecer el valor para $PUBLIC_IP. Una vez que completes este paso, podrás enviar las consultas de transcripción a un extremo público.

  1. Si instalaste Istio, sigue las instrucciones para obtener la IP pública de Ingress y establecerla en PUBLIC_IP.

  2. Si no tiene Istio instalado, verifica que la dirección IP esté vinculada. Debería aparecer debajo de EXTERNAL-IP a continuación. Si no aparece después de unos minutos, accede a tu clúster desde la consola para solucionar problemas.

    kubectl get service $NAME --namespace $NAMESPACE
    
    1. Copia el objeto binario onprem_client de la imagen de 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
      
    2. Usa el objeto binario onprem_client para enviar una consulta:

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

¿Qué sigue?

Obtén información para enviar una solicitud de transcripción a la API de Speech-to-Text On-Prem.