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

Requisitos previos

  1. Completa todos los pasos obligatorios de la guía de inicio rápido Antes de empezar.
  2. Despliega la API.

Información general

Puedes consultar la API con los mismos métodos, independientemente del método de instalación que hayas usado. La forma de consultar la API depende de si has configurado un endpoint público o no. Si tu endpoint no es público, tendrás que determinar cómo exponer la API. Hay muchas formas de hacerlo, como crear un Ingress si tu clúster lo admite, publicar el servicio creado, ejecutar Istio, etc.

En los pasos que se indican a continuación se explica cómo consultar un endpoint. Hay dos métodos:

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

Consultar el nombre de DNS interno (no se necesita una IP pública)

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

  1. Crea un trabajo en el clúster para consultar la API. Si este trabajo ya existe en el clúster, primero debes eliminarlo.

    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. Consulta 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
    

Consultar una IP pública

Si has instalado Istio en tu clúster, asegúrate de que Istio Ingress Gateway se esté ejecutando con una IP pública. Si no has instalado Istio, puedes definir el valor de $PUBLIC_IP. Una vez que haya completado este paso, podrá enviar consultas de transcripción a un endpoint público.

  1. Si tienes instalado Istio, sigue las instrucciones para obtener la IP pública de Ingress y asignarla a PUBLIC_IP.

  2. Si no tienes instalado Istio, comprueba que la dirección IP se haya enlazado. Debería aparecer en EXTERNAL-IP, más abajo. Si no aparece después de unos minutos, ve a tu clúster en la consola para solucionar el problema.

    kubectl get service $NAME --namespace $NAMESPACE
    
    1. Copia el archivo 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 onprem_client binario para enviar una consulta:

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

Siguientes pasos

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