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

Requisitos previos

  1. Completa todos los pasos necesarios de la guía de inicio rápido antes de comenzar.
  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 hayas usado. 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 exponer la API. Hay muchas opciones para hacerlo, como crear un Ingress si el clúster lo admite, publicar el servicio creado y ejecutar Istio, etcétera.

Sigue los pasos que se describen a continuación para realizar consultas en un extremo. Existen dos métodos:

  1. Consulta el extremo desde dentro del clúster (no necesitas IP pública).
  2. Consulta una IP pública.

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

En este ejemplo, se ejecuta una consulta desde dentro del 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 con el valor real en los comandos.

  1. Crea un trabajo nuevo dentro del clúster para consultar la API. Si este trabajo ya existe en el clúster, primero debes 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 puerta de enlace de entrada de Istio se ejecute con una IP pública. Si aún no instalaste Istio, puedes establecer el valor para $PUBLIC_IP. Una vez hecho esto, puedes 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 configurarla 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, navega a tu clúster en 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?

Aprende a enviar una solicitud de transcripción a la API de Speech-to-Text On-Prem.