Partager via


Sauvegarder et récupérer vos modèles de classification de texte personnalisée

Lorsque vous créez une ressource de langue, vous devez spécifier la région dans laquelle la créer. À partir de là, votre ressource et toutes les opérations associées s’effectueront dans la région du serveur Azure spécifiée. Il est rare, mais pas impossible, de rencontrer un problème réseau qui touche une région entière. Si votre solution doit toujours être disponible, vous devez la concevoir de manière à ce qu’elle bascule vers une autre région. Cela nécessite donc d’avoir deux ressources de langue Azure AI dans deux régions différentes, ainsi que la possibilité de synchroniser des modèles personnalisés dans plusieurs régions.

Si votre application ou votre entreprise dépend de l’utilisation d’un modèle de classification de texte personnalisée, nous vous recommandons de créer un réplica de votre projet dans une autre région prise en charge. Si une panne régionale se produit, vous pourrez alors accéder à votre modèle dans l’autre région de basculement où vous avez répliqué votre projet.

La réplication d’un projet signifie que vous exportez les métadonnées et les éléments de votre projet, et que vous les importez dans un nouveau projet. Cela crée uniquement une copie des paramètres de votre projet et des données étiquetées. Vous devrez tout de même entraîner et déployer les modèles à utiliser avec les API de prédiction.

Dans cet article, vous allez apprendre à utiliser les API d’exportation et d’importation pour répliquer votre projet d’une ressource vers une autre dans différentes régions géographiques prises en charge. Cet article donne également des explications sur la façon de garder vos projets synchronisés et sur les modifications qui sont nécessaires à la consommation du runtime.

Prérequis

  • Deux ressources de langue Azure AI situées dans des régions Azure différentes. Créez une ressource de langue et connectez les deux ressources de langue à un compte de stockage Azure. Il est recommandé de connecter vos ressources de langue au même compte de stockage, même si cela peut entraîner une latence légèrement supérieure lors de l’importation de votre projet et de la formation d’un modèle.

Obtenir vos clés de ressource et votre point de terminaison

Effectuez les étapes suivantes pour récupérer les clés et le point de terminaison de vos ressources primaires et secondaires. Ces éléments seront utilisés dans les étapes suivantes.

  • Accédez à la page de vue d’ensemble de votre ressource dans le portail Azure

  • Dans le menu de gauche, sélectionnez Clés et point de terminaison. Vous utilisez le point de terminaison et la clé pour les demandes d’API

Capture d’écran montrant la page de la clé et du point de terminaison sur le Portail Azure.

Conseil

Notez les clés et les points de terminaison pour les ressources primaires et secondaires. Utilisez ces valeurs pour remplacer les espaces réservés suivants : {PRIMARY-ENDPOINT}, {PRIMARY-RESOURCE-KEY}, {SECONDARY-ENDPOINT} et {SECONDARY-RESOURCE-KEY}. Notez également le nom de votre projet, le nom de votre modèle et le nom de votre déploiement. Utilisez ces valeurs pour remplacer les espaces réservés suivants : {PROJECT-NAME}, {MODEL-NAME} et {DEPLOYMENT-NAME}.

Exporter les éléments de votre projet primaire

Commencez par exporter les éléments du projet dans votre ressource principale.

Envoyer le travail d’exportation

Remplacez les espaces réservés dans la requête suivante par vos {PRIMARY-ENDPOINT} et {PRIMARY-RESOURCE-KEY} que vous avez obtenus à la première étape.

Créez une demande POST en utilisant l’URL, les en-têtes et le corps JSON suivants pour exporter votre projet.

URL de la demande

Utilisez l’URL suivante quand vous créez votre demande d’API. Remplacez les valeurs d’espace réservé suivantes par vos valeurs :

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/:export?stringIndexType=Utf16CodeUnit&api-version={API-VERSION}
Espace réservé Valeur Exemple
{ENDPOINT} Point de terminaison pour l’authentification de votre demande d’API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nom de votre projet. Cette valeur respecte la casse. MyProject
{API-VERSION} Version de l’API que vous appelez. La valeur référencée ici est la dernière version du modèle publiée. 2022-05-01

headers

Utilisez l’en-tête suivant pour authentifier votre demande.

Clé Valeur
Ocp-Apim-Subscription-Key Clé de votre ressource. Utilisée pour authentifier vos demandes d’API.

Corps

Utilisez le code JSON suivant dans le corps de votre requête en spécifiant que vous souhaitez exporter tous les éléments.

{
  "assetsToExport": ["*"]
}

Une fois que vous avez envoyé votre requête API, vous recevez une réponse 202 indiquant que le travail a été envoyé correctement. Dans les en-têtes de réponse, extrayez la valeur operation-location. Elle est au format suivant :

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/export/jobs/{JOB-ID}?api-version={API-VERSION}

{JOB-ID} est utilisé pour identifier votre demande, car cette opération est asynchrone. Vous utilisez cette URL à l’étape suivante pour obtenir l’état du travail d’importation.

Obtenir l’état de la tâche d’exportation

Remplacez les espaces réservés dans la requête suivante par vos {PRIMARY-ENDPOINT} et {PRIMARY-RESOURCE-KEY} que vous avez obtenus à la première étape.

Utilisez la requête GET suivante pour obtenir l’état de vos ressources d’importation. Remplacez les valeurs d’espace réservé suivantes par vos valeurs :

URL de la demande

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/export/jobs/{JOB-ID}?api-version={API-VERSION}
Espace réservé Valeur Exemple
{ENDPOINT} Point de terminaison pour l’authentification de votre demande d’API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nom de votre projet. Cette valeur respecte la casse. myProject
{JOB-ID} ID de localisation de l’état d’entraînement de votre modèle. Il s’agit de la valeur d’en-tête location que vous avez reçue à l’étape précédente. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} Version de l’API que vous appelez. La valeur référencée ici concerne la dernière version publiée. En savoir plus sur les autres versions d’API disponibles 2022-05-01

headers

Utilisez l’en-tête suivant pour authentifier votre demande.

Clé Valeur
Ocp-Apim-Subscription-Key Clé de votre ressource. Utilisée pour authentifier vos demandes d’API.

Response body

{
  "resultUrl": "{RESULT-URL}",
  "jobId": "string",
  "createdDateTime": "2021-10-19T23:24:41.572Z",
  "lastUpdatedDateTime": "2021-10-19T23:24:41.572Z",
  "expirationDateTime": "2021-10-19T23:24:41.572Z",
  "status": "unknown",
  "errors": [
    {
      "code": "unknown",
      "message": "string"
    }
  ]
}

Utilisez l’URL de la clé resultUrl située dans le corps pour afficher les éléments exportés à partir de ce travail.

Obtenir les résultats de l’exportation

Envoyez une requête GET à l’aide de la {RESULT-URL} que vous avez reçue à l’étape précédente pour afficher les résultats du travail d’exportation.

headers

Utilisez l’en-tête suivant pour authentifier votre demande.

Clé Valeur
Ocp-Apim-Subscription-Key Clé de votre ressource. Utilisée pour authentifier vos demandes d’API.

Copiez le corps de la réponse, car vous l’utiliserez comme corps pour le travail d’importation suivant.

Importer dans un nouveau projet

À présent, importez les éléments de projet exportés dans le nouveau projet situé dans la région secondaire afin de pouvoir les répliquer.

Envoyer le travail d’importation

Remplacez les espaces réservés dans la requête suivante par vos {SECONDARY-ENDPOINT} et {SECONDARY-RESOURCE-KEY} que vous avez obtenus à la première étape.

Soumettez une demande POST en utilisant l’URL, les en-têtes et le corps JSON suivants pour importer votre fichier d’étiquettes. Vérifiez que votre fichier d’étiquettes respecte le format accepté.

Si un projet portant le même nom existe déjà, les données de ce projet sont remplacées.

{Endpoint}/language/authoring/analyze-text/projects/{projectName}/:import?api-version={API-VERSION}
Espace réservé Valeur Exemple
{ENDPOINT} Point de terminaison pour l’authentification de votre demande d’API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nom de votre projet. Cette valeur respecte la casse. myProject
{API-VERSION} Version de l’API que vous appelez. La valeur référencée ici concerne la dernière version publiée. En savoir plus sur les autres versions d’API disponibles 2022-05-01

headers

Utilisez l’en-tête suivant pour authentifier votre demande.

Clé Valeur
Ocp-Apim-Subscription-Key Clé de votre ressource. Utilisée pour authentifier vos demandes d’API.

body

Utilisez le code JSON suivant dans votre demande. Remplacez les valeurs d’espace réservé suivantes par vos valeurs :

{
  "projectFileVersion": "{API-VERSION}",
  "stringIndexType": "Utf16CodeUnit",
  "metadata": {
    "projectName": "{PROJECT-NAME}",
    "storageInputContainerName": "{CONTAINER-NAME}",
    "projectKind": "customMultiLabelClassification",
    "description": "Trying out custom multi label text classification",
    "language": "{LANGUAGE-CODE}",
    "multilingual": true,
    "settings": {}
  },
  "assets": {
    "projectKind": "customMultiLabelClassification",
    "classes": [
      {
        "category": "Class1"
      },
      {
        "category": "Class2"
      }
    ],
    "documents": [
      {
        "location": "{DOCUMENT-NAME}",
        "language": "{LANGUAGE-CODE}",
        "dataset": "{DATASET}",
        "classes": [
          {
            "category": "Class1"
          },
          {
            "category": "Class2"
          }
        ]
      },
      {
        "location": "{DOCUMENT-NAME}",
        "language": "{LANGUAGE-CODE}",
        "dataset": "{DATASET}",
        "classes": [
          {
            "category": "Class2"
          }
        ]
      }
    ]
  }
}

Clé Espace réservé Valeur Exemple
api-version {API-VERSION} Version de l’API que vous appelez. La version utilisée ici doit être la même version d’API dans l’URL. En savoir plus sur les autres versions d’API disponibles 2022-05-01
projectName {PROJECT-NAME} Nom de votre projet. Cette valeur respecte la casse. myProject
projectKind customMultiLabelClassification Type de projet. customMultiLabelClassification
langage {LANGUAGE-CODE} Chaîne spécifiant le code de langue des documents utilisés dans votre projet. Si votre projet est un projet multilingue, choisissez le code de langue de la majorité des documents. Consultez Prise en charge de la langue pour en savoir plus sur la prise en charge multilingue. en-us
multilingue true Valeur booléenne permettant à l’ensemble de données de contenir des documents dans plusieurs langues. Quand votre modèle est déployé, vous pouvez interroger le modèle dans n’importe quelle langue prise en charge (pas nécessairement incluse dans vos documents d’apprentissage). Consultez Prise en charge de la langue pour en savoir plus sur la prise en charge multilingue. true
storageInputContainerName {CONTAINER-NAME} Nom du conteneur de stockage Azure dans lequel vous avez chargé vos documents. myContainer
Classes [] Tableau contenant l’ensemble des classes contenues dans le projet. Il s’agit des classes selon lesquelles vous souhaitez classifier vos documents. []
dans des documents [] Tableau contenant tous les documents de votre projet et les classes étiquetées pour ce document. []
location {DOCUMENT-NAME} Emplacement des documents dans le conteneur de stockage. Étant donné que tous les documents se trouvent à la racine du conteneur, il doit s’agir du nom du document. doc1.txt
dataset {DATASET} Jeu de test où ce document va être placé lors du fractionnement avant l’entraînement. Pour plus d’informations, consultez Guide pratique pour effectuer l’apprentissage d’un modèle. Les valeurs possibles pour cette propriété sont Train et Test. Train

Une fois que vous avez envoyé votre requête API, vous recevez une réponse 202 indiquant que le travail a été envoyé correctement. Dans les en-têtes de réponse, extrayez la valeur operation-location. Elle est au format suivant :

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/import/jobs/{JOB-ID}?api-version={API-VERSION}

{JOB-ID} est utilisé pour identifier votre demande, car cette opération est asynchrone. Vous utilisez cette URL à l’étape suivante pour obtenir l’état du travail d’importation.

Scénarios d’erreur possibles pour cette requête :

  • La ressource sélectionnée n’a pas les autorisations appropriées pour le compte de stockage.
  • Le storageInputContainerName spécifié n’existe pas.
  • Le code de langue utilisé est non valide ou si le type de code de langue n’est pas une chaîne.
  • La valeur multilingual est une chaîne et non pas une valeur booléenne.

Obtenir l’état de la tâche d’importation

Remplacez les espaces réservés dans la requête suivante par vos {SECONDARY-ENDPOINT} et {SECONDARY-RESOURCE-KEY} que vous avez obtenus à la première étape.

Utilisez la requête GET suivante pour obtenir l’état de votre projet d’importation. Remplacez les valeurs d’espace réservé suivantes par vos valeurs :

URL de la demande

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/import/jobs/{JOB-ID}?api-version={API-VERSION}
Espace réservé Valeur Exemple
{ENDPOINT} Point de terminaison pour l’authentification de votre demande d’API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nom de votre projet. Cette valeur respecte la casse. myProject
{JOB-ID} ID de localisation de l’état d’entraînement de votre modèle. Il s’agit de la valeur d’en-tête location que vous avez reçue à l’étape précédente. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} Version de l’API que vous appelez. La valeur référencée ici concerne la dernière version publiée. En savoir plus sur les autres versions d’API disponibles 2022-05-01

headers

Utilisez l’en-tête suivant pour authentifier votre demande.

Clé Valeur
Ocp-Apim-Subscription-Key Clé de votre ressource. Utilisée pour authentifier vos demandes d’API.

Entraîner votre modèle

Après l’importation de votre projet, vous avez copié uniquement les éléments et métadonnées du projet. Il vous reste encore à entraîner votre modèle, ce qui engendrera des frais d’utilisation dans votre compte.

Soumettre un travail de formation

Remplacez les espaces réservés dans la requête suivante par vos {SECONDARY-ENDPOINT} et {SECONDARY-RESOURCE-KEY} que vous avez obtenus à la première étape.

Envoyez une requête POST en utilisant l’URL, les en-têtes et le corps JSON suivants pour envoyer un travail de formation. Remplacez les valeurs d’espace réservé suivantes par vos valeurs :

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/:train?api-version={API-VERSION}
Espace réservé Valeur Exemple
{ENDPOINT} Point de terminaison pour l’authentification de votre demande d’API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nom de votre projet. Cette valeur respecte la casse. myProject
{API-VERSION} Version de l’API que vous appelez. La valeur référencée ici concerne la dernière version publiée. En savoir plus sur les autres versions d’API disponibles 2022-05-01

headers

Utilisez l’en-tête suivant pour authentifier votre demande.

Clé Valeur
Ocp-Apim-Subscription-Key Clé de votre ressource. Utilisée pour authentifier vos demandes d’API.

Corps de la demande

Utilisez le code JSON suivant dans le corps de la demande. Le modèle reçoit le {MODEL-NAME} une fois l’apprentissage effectué. Seuls les travaux d’apprentissage réussis produisent des modèles.

{
	"modelLabel": "{MODEL-NAME}",
	"trainingConfigVersion": "{CONFIG-VERSION}",
	"evaluationOptions": {
		"kind": "percentage",
		"trainingSplitPercentage": 80,
		"testingSplitPercentage": 20
	}
}
Clé Espace réservé Valeur Exemple
modelLabel {MODEL-NAME} Nom attribué à votre modèle une fois l’apprentissage réussi. myModel
trainingConfigVersion {CONFIG-VERSION} Il s’agit de la version du modèle utilisée pour effectuer l’apprentissage du modèle. 2022-05-01
evaluationOptions Option permettant de fractionner vos données entre des jeux d’apprentissage et de test. {}
kind percentage Méthodes de fractionnement. Les valeurs possibles sont percentage ou manual. Pour plus d’informations, consultez Guide pratique pour effectuer l’apprentissage d’un modèle. percentage
trainingSplitPercentage 80 Pourcentage de vos données étiquetées à inclure dans le jeu d’apprentissage. La valeur recommandée est 80. 80
testingSplitPercentage 20 Pourcentage de vos données étiquetées à inclure dans le jeu de test. La valeur recommandée est 20. 20

Notes

Les trainingSplitPercentage et testingSplitPercentage sont nécessaires uniquement si Kind est défini sur percentage. La somme des deux pourcentages doit être égale à 100.

Une fois que vous avez envoyé votre requête API, vous recevez une réponse 202 indiquant que le travail a été envoyé correctement. Dans les en-têtes de réponse, extrayez la valeur location. Elle est au format suivant :

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/train/jobs/{JOB-ID}?api-version={API-VERSION}

{JOB-ID} sert à identifier votre demande, car cette opération est asynchrone. Vous pouvez utiliser cette URL pour obtenir l’état de la formation.

Obtenir l’état de l’entraînement

Remplacez les espaces réservés dans la requête suivante par vos {SECONDARY-ENDPOINT} et {SECONDARY-RESOURCE-KEY} que vous avez obtenus à la première étape.

Utilisez la requête GET suivante pour obtenir l’état de progression du processus d’apprentissage de votre modèle. Remplacez les valeurs d’espace réservé suivantes par vos valeurs :

URL de la demande

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/train/jobs/{JOB-ID}?api-version={API-VERSION}
Espace réservé Valeur Exemple
{ENDPOINT} Point de terminaison pour l’authentification de votre demande d’API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nom de votre projet. Cette valeur respecte la casse. myProject
{JOB-ID} ID de localisation de l’état d’entraînement de votre modèle. Il s’agit de la valeur d’en-tête location que vous avez reçue à l’étape précédente. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} Version de l’API que vous appelez. La valeur référencée ici concerne la dernière version publiée. Pour plus d’informations sur les autres versions d’API disponibles, consultez Cycle de vie du modèle. 2022-05-01

headers

Utilisez l’en-tête suivant pour authentifier votre demande.

Clé Valeur
Ocp-Apim-Subscription-Key Clé de votre ressource. Utilisée pour authentifier vos demandes d’API.

Corps de la réponse

Une fois que vous avez envoyé la demande, vous recevez la réponse suivante.

{
  "result": {
    "modelLabel": "{MODEL-NAME}",
    "trainingConfigVersion": "{CONFIG-VERSION}",
    "estimatedEndDateTime": "2022-04-18T15:47:58.8190649Z",
    "trainingStatus": {
      "percentComplete": 3,
      "startDateTime": "2022-04-18T15:45:06.8190649Z",
      "status": "running"
    },
    "evaluationStatus": {
      "percentComplete": 0,
      "status": "notStarted"
    }
  },
  "jobId": "{JOB-ID}",
  "createdDateTime": "2022-04-18T15:44:44Z",
  "lastUpdatedDateTime": "2022-04-18T15:45:48Z",
  "expirationDateTime": "2022-04-25T15:44:44Z",
  "status": "running"
}

Déployer votre modèle

C’est ici que vous rendez votre modèle entraîné disponible à la consommation par le biais de l’API de prédiction du runtime.

Conseil

Utilisez le même nom de déploiement que celui de votre projet primaire afin de faciliter la maintenance et d’effectuer le moins de modifications possible sur votre système pour gérer la redirection de votre trafic.

Envoyer un travail de déploiement

Remplacez les espaces réservés dans la requête suivante par vos {SECONDARY-ENDPOINT} et {SECONDARY-RESOURCE-KEY} que vous avez obtenus à la première étape.

Envoyez une requête PUT en utilisant l’URL, les en-têtes et le corps JSON suivants pour envoyer un travail de déploiement. Remplacez les valeurs d’espace réservé suivantes par vos valeurs :

{Endpoint}/language/authoring/analyze-text/projects/{projectName}/deployments/{deploymentName}?api-version={API-VERSION}
Espace réservé Valeur Exemple
{ENDPOINT} Point de terminaison pour l’authentification de votre demande d’API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nom de votre projet. Cette valeur respecte la casse. myProject
{DEPLOYMENT-NAME} Nom de votre déploiement. Cette valeur respecte la casse. staging
{API-VERSION} Version de l’API que vous appelez. La valeur référencée ici concerne la dernière version publiée. En savoir plus sur les autres versions d’API disponibles 2022-05-01

headers

Utilisez l’en-tête suivant pour authentifier votre demande.

Clé Valeur
Ocp-Apim-Subscription-Key Clé de votre ressource. Utilisée pour authentifier vos demandes d’API.

Corps de la demande

Utilisez le code JSON suivant dans le corps de la demande. Utilisez le nom du modèle que vous attribuez au déploiement.

{
  "trainedModelLabel": "{MODEL-NAME}"
}
Clé Espace réservé Valeur Exemple
trainedModelLabel {MODEL-NAME} Nom du modèle qui est attribué à votre déploiement. Vous pouvez uniquement attribuer des modèles entraînés avec succès. Cette valeur respecte la casse. myModel

Une fois que vous avez envoyé votre requête API, vous recevez une réponse 202 indiquant que le travail a été envoyé correctement. Dans les en-têtes de réponse, extrayez la valeur operation-location. Elle est au format suivant :

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}

{JOB-ID} sert à identifier votre demande, car cette opération est asynchrone. Vous pouvez utiliser cette URL pour obtenir l’état du déploiement.

Obtenir l’état du déploiement

Remplacez les espaces réservés dans la requête suivante par vos {SECONDARY-ENDPOINT} et {SECONDARY-RESOURCE-KEY} que vous avez obtenus à la première étape.

Utilisez la requête GET suivante pour interroger l’état du processus de déploiement de votre modèle. Vous pouvez utiliser l’URL que vous avez reçue à l’étape précédente ou remplacer les valeurs d’espace réservé ci-dessous par vos propres valeurs.

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}
Espace réservé Valeur Exemple
{ENDPOINT} Point de terminaison pour l’authentification de votre demande d’API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nom de votre projet. Cette valeur respecte la casse. myProject
{DEPLOYMENT-NAME} Nom de votre déploiement. Cette valeur respecte la casse. staging
{JOB-ID} ID de localisation de l’état d’entraînement de votre modèle. Il s’agit de la valeur d’en-tête location que vous avez reçue à l’étape précédente. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} Version de l’API que vous appelez. La valeur référencée ici concerne la dernière version publiée. En savoir plus sur les autres versions d’API disponibles 2022-05-01

headers

Utilisez l’en-tête suivant pour authentifier votre demande.

Clé Valeur
Ocp-Apim-Subscription-Key Clé de votre ressource. Utilisée pour authentifier vos demandes d’API.

Corps de la réponse

Une fois que vous avez envoyé la demande, vous recevez la réponse suivante. Continuez à interroger ce point de terminaison jusqu’à ce que le paramètre status passe à « réussi ». Vous devez normalement obtenir un code 200 pour indiquer la réussite de la demande.

{
    "jobId":"{JOB-ID}",
    "createdDateTime":"{CREATED-TIME}",
    "lastUpdatedDateTime":"{UPDATED-TIME}",
    "expirationDateTime":"{EXPIRATION-TIME}",
    "status":"running"
}

Modifications de l’appel du runtime

Sur votre système, à l’étape où vous appelez l’API de prédiction du runtime, vérifiez le code de réponse retourné par l’API d’envoi de tâches. Si vous observez une défaillance systématique lors de l’envoi de la requête, cela peut indiquer une panne dans votre région primaire. Un seul échec n’est pas synonyme de panne. Il peut s’agir d’un problème temporaire. Réessayez d’envoyer la tâche par le biais de la ressource secondaire que vous avez créée. Pour la deuxième requête, utilisez vos {SECONDARY-ENDPOINT} et {SECONDARY-RESOURCE-KEY}. Si vous avez suivi les étapes ci-dessus, {PROJECT-NAME} et {DEPLOYMENT-NAME} ne changeront pas, il n’est donc pas nécessaire de modifier le corps de la requête.

Si vous revenez à l’utilisation de votre ressource secondaire, vous constaterez une légère augmentation de la latence en raison de la différence qui existe entre les régions où votre modèle est déployé.

Regarder si vos projets ne sont pas synchronisés

La synchronisation des deux projets est une part importante du processus. Vous devez régulièrement vérifier si des mises à jour ont été apportées à votre projet primaire afin de les dupliquer sur votre projet secondaire. De cette façon, si votre région primaire connaît un échec et vous pousse à basculer vers la région secondaire, vous pouvez vous attendre à des performances de modèle similaires, puisqu’elle contient déjà les dernières mises à jour. Il est important de configurer la fréquence de vérification de l’état de synchronisation de vos projets. Nous vous recommandons d’effectuer cette vérification quotidiennement afin de garantir que les données de votre modèle secondaire sont à jour.

Obtenir les détails du projet

Utilisez l’URL suivante pour obtenir les détails de votre projet, l’une des clés retournées dans le corps indique la dernière date de modification du projet. Répétez l’étape suivante deux fois, une fois pour votre projet principal et une autre fois pour votre projet secondaire et comparez l’horodatage retourné pour les deux fois afin de vérifier si les valeurs ne sont pas synchronisées.

Utilisez la requête GET suivante pour obtenir les détails de votre projet. Remplacez les valeurs d’espace réservé suivantes par vos valeurs :

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}?api-version={API-VERSION}
Espace réservé Valeur Exemple
{ENDPOINT} Point de terminaison pour l’authentification de votre demande d’API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nom de votre projet. Cette valeur respecte la casse. myProject
{API-VERSION} Version de l’API que vous appelez. La valeur référencée ici concerne la dernière version publiée. En savoir plus sur les autres versions d’API disponibles 2022-05-01

headers

Utilisez l’en-tête suivant pour authentifier votre demande.

Clé Valeur
Ocp-Apim-Subscription-Key Clé de votre ressource. Utilisée pour authentifier vos demandes d’API.

Response body

    {
        "createdDateTime": "2021-10-19T23:24:41.572Z",
        "lastModifiedDateTime": "2021-10-19T23:24:41.572Z",
        "lastTrainedDateTime": "2021-10-19T23:24:41.572Z",
        "lastDeployedDateTime": "2021-10-19T23:24:41.572Z",
        "projectKind": "customMultiLabelClassification",
        "storageInputContainerName": "{CONTAINER-NAME}",
        "projectName": "{PROJECT-NAME}",
        "multilingual": false,
        "description": "Project description",
        "language": "{LANGUAGE-CODE}"
    }

Une fois que vous avez envoyé votre demande d’API, vous recevrez une réponse 200 confirmant la réussite et un corps de réponse JSON avec les détails de votre projet.

Répétez les mêmes étapes pour votre projet répliqué à l’aide de {SECONDARY-ENDPOINT} et {SECONDARY-RESOURCE-KEY}. Comparez le lastModifiedDateTime retourné par les deux projets. Si votre projet primaire a été modifié avant votre projet secondaire, vous devez répéter les étapes d’exportation, d’importation, de formation et de déploiement de votre modèle.

Étapes suivantes

Dans cet article, vous avez vu comment utiliser les API d’exportation et d’importation pour répliquer votre projet vers une ressource de langue secondaire située dans une autre région. À présent, vous pouvez explorer la documentation de référence sur les API pour voir ce que vous pouvez faire d’autre avec les API de création.