Déployer un conteneur d’extraction d’expressions clés dans le service Azure Kubernetes
Découvrez comment déployer une image de conteneur d’extraction d’expressions clés dans Azure Kubernetes service (AKS). Cette procédure indique comment créer une ressource de langue, comment associer une image de conteneur et comment exercer cette orchestration des deux à partir d’un navigateur. L’utilisation de conteneurs peut détourner l’attention des développeurs de la gestion de l’infrastructure, pour les faire se concentrer sur le développement d’applications. Bien que cet article utilise le conteneur d’extraction d’expressions clés comme exemple, vous pouvez utiliser ce processus pour d’autres conteneurs proposés par Azure AI Language
Prérequis
Cette procédure nécessite plusieurs outils qui doivent être installés et exécutés localement. N’utilisez pas Azure Cloud Shell. Vous avez besoin des éléments suivants :
- Un abonnement Azure. Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.
- Un éditeur de code, par exemple Visual Studio Code.
- Azure CLI installé.
- The Kubernetes CLI installé.
- Une ressource Azure avec le niveau de tarification approprié. Certains niveaux tarifaires ne fonctionnent pas avec ce conteneur :
- Ressource de Azure AI Language avec des niveaux tarifaires F0 ou standard uniquement.
- La ressource Azure AI services avec le niveau tarifaire S0.
Créer une ressource Azure AI Language
Connectez-vous au portail Azure.
Sélectionnez Créer une ressource, puis accédez à IA + Machine Learning>Langue. Vous pouvez également accéder à Créer une ressource Langue.
Entrez tous les paramètres obligatoires :
Paramètre Valeur Nom Entrez un nom (2-64 caractères). Abonnement Sélectionnez l’abonnement approprié. Emplacement Sélectionnez un emplacement proche. Niveau tarifaire Entrez S, le niveau tarifaire standard. Resource group Sélectionnez un groupe de ressources disponible. Sélectionnez Créer et attendez que la ressource soit créée. Votre navigateur vous redirige automatiquement vers la page de la ressource créée.
Collectez
endpoint
configuré et une clé d’API :Onglet Ressource dans le portail Paramètre Valeur Vue d'ensemble Point de terminaison Copiez le point de terminaison. Il ressemble à https://my-resource.cognitiveservices.azure.com/text/analytics/v3.0
.Clés Clé de l’API Copiez l’une des deux clés. Il s’agit d’une chaîne de 32 caractères alphanumériques sans espaces ni tirets, < xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
>.
Créer une ressource de cluster Azure Kubernetes Service
Accédez à Azure Kubernetes Service, puis sélectionnez Créer.
Sous l’onglet De base, entrez les informations suivantes :
Paramètre Valeur Abonnement Sélectionnez un abonnement approprié. Resource group Sélectionnez un groupe de ressources disponible. Nom du cluster Kubernetes Entrer un nom (en minuscules). Région Sélectionnez un emplacement proche. Version de Kubernetes Quelle que soit la valeur marquée (par défaut) . Préfixe du nom DNS Créé automatiquement, mais vous pouvez le remplacer. Taille du nœud Standard DS2 v2 : 2 vCPUs
,7 GB
Nombre de nœuds Conservez la valeur par défaut pour le curseur. Sous l’onglet Pools de nœuds, conservez les valeurs par défaut définies pour Nœuds virtuels et Groupes de machines virtuelles identiques.
Sur l’onglet Authentification, conservez les valeurs par défaut définies pour Principal du service et Activer RBAC.
Sur l’onglet Mise en réseau, entrez les informations suivantes :
Paramètre Valeur Routage d’applications HTTP Non Configuration de la mise en réseau De base Sous l’onglet Intégrations, veillez à définir Supervision de conteneur sur Oui et laissez Espace de travail Log Analytics comme valeur par défaut.
Sur l’onglet Balises, laissez les paires nom/valeur vide pour l’instant.
Sélectionnez Examiner et créer.
Une fois la validation réussie, sélectionnez Créer.
Notes
Si la validation échoue, cela peut être dû à une erreur du « principal du service ». Revenez à l’onglet Authentification, puis à Vérifier + créer, où la validation doit s’exécuter et réussir.
Déployer le conteneur Extraction de phrases clés vers un cluster AKS
Ouvrir Azure CLI et se connecter à Azure.
az login
Connectez-vous au cluster AKS. Remplacez
your-cluster-name
etyour-resource-group
par les valeurs appropriées.az aks get-credentials -n your-cluster-name -g -your-resource-group
Une fois cette commande exécutée, elle signale un message similaire au message suivant :
Merged "your-cluster-name" as current context in /home/username/.kube/config
Avertissement
Si plusieurs abonnements sont disponibles sur votre compte Azure et que la commande
az aks get-credentials
renvoie une erreur, le problème peut être que vous n’utilisez pas l’abonnement approprié. Définissez le contexte de votre session Azure CLI pour utiliser le même abonnement avec lequel vous avez créé les ressources, puis réessayez.az account set -s subscription-id
Ouvrez l’éditeur de texte de votre choix. L’exemple suivant utilise Visual Studio Code.
code .
Dans l’éditeur de texte, créez un nouveau fichier nommé keyphrase.yaml et collez-y le fichier YAML suivant. Assurez-vous de remplacer les valeurs
billing/value
etapikey/value
par vos propres informations.apiVersion: apps/v1beta1 kind: Deployment metadata: name: keyphrase spec: template: metadata: labels: app: keyphrase-app spec: containers: - name: keyphrase image: mcr.microsoft.com/azure-cognitive-services/keyphrase ports: - containerPort: 5000 resources: requests: memory: 2Gi cpu: 1 limits: memory: 4Gi cpu: 1 env: - name: EULA value: "accept" - name: billing value: # {ENDPOINT_URI} - name: apikey value: # {API_KEY} --- apiVersion: v1 kind: Service metadata: name: keyphrase spec: type: LoadBalancer ports: - port: 5000 selector: app: keyphrase-app
Important
N’oubliez pas de supprimer la clé de votre code une fois que vous avez terminé, et ne la postez jamais publiquement. Pour la production, utilisez un moyen sécurisé de stocker et d’accéder à vos informations d’identification comme Azure Key Vault. Pour plus d’informations, consultez l’article sur la sécurité d’Azure AI services.
Enregistrez le fichier et fermez l’éditeur de texte.
Exécutez la commande Kubernetes
apply
avec le fichier keyphrase.yaml comme cible :kubectl apply -f keyphrase.yaml
Une fois la configuration de déploiement correctement appliquée par la commande, un message similaire à la sortie suivante s’affiche :
deployment.apps "keyphrase" created service "keyphrase" created
Vérifiez que le pod a été déployé :
kubectl get pods
Vous obtiendrez ainsi l’état d’exécution du pod :
NAME READY STATUS RESTARTS AGE keyphrase-5c9ccdf575-mf6k5 1/1 Running 0 1m
Vérifiez que le service est disponible et obtenez l’adresse IP.
kubectl get services
Sortie de l’état d’exécution du service KeyPhrase dans le pod :
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.0.0.1 <none> 443/TCP 2m keyphrase LoadBalancer 10.0.100.64 168.61.156.180 5000:31234/TCP 2m
Vérifier l’instance de conteneur Extraction de phrases clés
Sélectionnez l’onglet Vue d’ensemble et copiez l’adresse IP.
Ouvrez un nouvel onglet de navigateur et entrez l’adresse IP. Par exemple, entrez
http://<IP-address>:5000 (http://55.55.55.55:5000
. La page d’accueil du conteneur s’affiche, vous informant que le conteneur est en cours d’exécution.Veuillez sélectionner le lien Description de l’API de service pour accéder à la page Swagger des conteneurs.
Choisissez une des API POST et sélectionnez Essayer. Les paramètres sont affichés, y compris cet exemple d’entrée :
{ "documents": [ { "id": "1", "text": "Hello world" }, { "id": "2", "text": "Bonjour tout le monde" }, { "id": "3", "text": "La carretera estaba atascada. Había mucho tráfico el día de ayer." }, { "id": "4", "text": ":) :( :D" } ] }
Remplacez l’entrée par le contenu JSON suivant :
{ "documents": [ { "language": "en", "id": "7", "text": "I was fortunate to attend the KubeCon Conference in Barcelona, it is one of the best conferences I have ever attended. Great people, great sessions and I thoroughly enjoyed it!" } ] }
Définissez showStats sur
true
.Sélectionnez Exécuter pour déterminer le sentiment du texte.
Le modèle empaqueté dans le conteneur génère un score compris entre 0 et 1, où 0 est négatif et 1 est positif.
La réponse JSON retournée inclut le sentiment pour l’entrée de texte mise à jour :
{ "documents": [ { "id": "7", "keyPhrases": [ "Great people", "great sessions", "KubeCon Conference", "Barcelona", "best conferences" ], "statistics": { "charactersCount": 176, "transactionsCount": 1 } } ], "errors": [], "statistics": { "documentsCount": 1, "validDocumentsCount": 1, "erroneousDocumentsCount": 0, "transactionsCount": 1 } }
Nous pouvons maintenant corréler le document id
des données JSON de la charge utile de réponse avec le document id
de la charge utile de la requête d’origine. Le document résultant possède un tableau keyPhrases
qui contient la liste des phrases clés extraites du document d’entrée correspondant. De plus, il existe différentes statistiques, telles que characterCount
et transactionCount
, pour chaque document résultant.
Étapes suivantes
- Utiliser plus de conteneurs Azure AI
- Présentation de l’extraction de phrases clés