Prérequis
- Suivez toutes les étapes requises dans le guide de démarrage rapide Avant de commencer.
- Déployez l'API.
Présentation
Quelle que soit votre méthode d'installation, vous pouvez interroger l'API en utilisant les mêmes méthodes. La procédure à suivre pour interroger l'API varie selon que vous avez configuré ou non un point de terminaison public. Si votre point de terminaison n'est pas public, vous devez déterminer comment exposer vous-même l'API. Plusieurs options permettent d'effectuer cette opération, y compris la création d'un objet Ingress si votre cluster le permet, la publication du service créé, l'exécution d'Istio, etc.
Les étapes décrites ci-dessous vous expliquent comment interroger un point de terminaison. Il existe deux méthodes :
- Interroger le point de terminaison depuis votre cluster (aucune adresse IP publique requise)
- Interroger une adresse IP publique
Interroger le nom DNS interne (aucune adresse IP publique requise)
Cet exemple exécute une requête depuis le cluster en utilisant le nom DNS (Domain Name Service) attribué au service : $NAME.$NAMESPACE
, par exemple speech.speech.
. Vous pouvez définir les variables d'environnement ou les remplacer par la valeur réelle des commandes.
Créez un job dans le cluster à partir duquel interroger l'API. Si cette tâche existe déjà dans le cluster, commencez par la supprimer.
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 -
Consultez les journaux pour afficher la transcription :
kubectl logs -n $NAMESPACE --follow $(kubectl get po -n $NAMESPACE -l app=query -o=jsonpath='{.items[0].metadata.name}') -c entrypoint
Interroger une adresse IP publique
Si vous avez installé Istio dans le cluster, assurez-vous que la passerelle d'entrée Istio s'exécute avec une adresse IP publique. Si vous n'avez pas installé Istio, vous pouvez définir la valeur de $PUBLIC_IP
. Une fois cette opération effectuée, vous pouvez envoyer des requêtes de transcription à un point de terminaison public.
Si vous avez installé Istio, suivez les instructions pour obtenir l'adresse IP publique de l'objet Ingress et la définir sur
PUBLIC_IP
.Si vous n'avez pas installé Istio, vérifiez que l'adresse IP a été associée. Elle doit s'afficher sous
EXTERNAL-IP
comme suit. Si elle ne s'affiche pas au bout de quelques minutes, accédez à votre cluster dans la console pour résoudre le problème.kubectl get service $NAME --namespace $NAMESPACE
Copiez le binaire
onprem_client
à partir de l'image 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
Envoyez une requête à l'aide du binaire
onprem_client
:./onprem_client --address ${PUBLIC_IP}:443 --file_paths /path/to/audio.wav
Étape suivante
Découvrez comment envoyer une requête de transcription à l'API de reconnaissance vocale sur site.