Partager via


Sauvegarder et récupérer vos modèles NER personnalisés

Lorsque vous créez une ressource de langue, vous devez spécifier la région dans laquelle la créer. Dès lors, votre ressource et toutes les opérations associées s’effectuent dans la région du serveur Azure spécifiée. Il est rare, mais pas impossible, de rencontrer un problème au niveau du 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 deux ressources Azure AI Language dans des régions différentes, ainsi qu’une synchronisation des modèles personnalisés dans plusieurs régions.

Si votre application ou entreprise dépend de l’utilisation d’un modèle NER personnalisé, 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. Cette opération 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 Azure AI Language situées dans des régions Azure différentes. Créez vos ressources et connectez-les à un compte de stockage Azure. Il est recommandé de connecter chacune de vos ressources Language à différents comptes de stockage. Chaque compte de stockage doit se trouver dans les mêmes régions que les ressources Language correspondantes. Vous pouvez suivre le guide de démarrage rapide pour créer une ressource Language et un compte de stockage supplémentaires.

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.

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

  2. 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 principale et secondaire ainsi que les noms des conteneurs principal et secondaire. Utilisez ces valeurs pour remplacer les espaces réservés suivants : {PRIMARY-ENDPOINT}, {PRIMARY-RESOURCE-KEY}, {PRIMARY-CONTAINER-NAME}, {SECONDARY-ENDPOINT}, {SECONDARY-RESOURCE-KEY} et {SECONDARY-CONTAINER-NAME}. 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. 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.

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 les {SECONDARY-ENDPOINT}, {SECONDARY-RESOURCE-KEY} et {SECONDARY-CONTAINER-NAME} 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. 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.

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}",
        "projectKind": "CustomEntityRecognition",
        "description": "Trying out custom NER",
        "language": "{LANGUAGE-CODE}",
        "multilingual": true,
        "storageInputContainerName": "{CONTAINER-NAME}",
        "settings": {}
    },
    "assets": {
    "projectKind": "CustomEntityRecognition",
        "entities": [
            {
                "category": "Entity1"
            },
            {
                "category": "Entity2"
            }
        ],
        "documents": [
            {
                "location": "{DOCUMENT-NAME}",
                "language": "{LANGUAGE-CODE}",
                "dataset": "{DATASET}",
                "entities": [
                    {
                        "regionOffset": 0,
                        "regionLength": 500,
                        "labels": [
                            {
                                "category": "Entity1",
                                "offset": 25,
                                "length": 10
                            },
                            {
                                "category": "Entity2",
                                "offset": 120,
                                "length": 8
                            }
                        ]
                    }
                ]
            },
            {
                "location": "{DOCUMENT-NAME}",
                "language": "{LANGUAGE-CODE}",
                "dataset": "{DATASET}",
                "entities": [
                    {
                        "regionOffset": 0,
                        "regionLength": 100,
                        "labels": [
                            {
                                "category": "Entity2",
                                "offset": 20,
                                "length": 5
                            }
                        ]
                    }
                ]
            }
        ]
    }
}
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-03-01-preview
projectName {PROJECT-NAME} Nom de votre projet. Cette valeur respecte la casse. myProject
projectKind CustomEntityRecognition Type de projet. CustomEntityRecognition
language {LANGUAGE-CODE} Chaîne spécifiant le code de langue des documents utilisés dans votre projet. Si votre projet est un multilingue, choisissez le code de langue de la majorité des documents. en-us
multilingual 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 plus d’informations sur la prise en charge multilingue. true
storageInputContainerName {CONTAINER-NAME} Nom du conteneur de stockage Azure dans lequel vous avez chargé vos documents. myContainer
entities Tableau contenant l’ensemble des types d’entité contenus dans le projet. Il s’agit des types d’entités qui seront extraits de vos documents.
documents Tableau contenant tous les documents de votre projet et la liste des entités étiquetées dans chaque 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 dans lequel ce fichier est envoyé lors du fractionnement avant l’apprentissage. Consultez Guide pratique pour effectuer l’apprentissage d’un modèle pour plus d’informations sur la façon dont vos données sont fractionnées. Les valeurs possibles pour ce champ 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. 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.

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. 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 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} est utilisé pour identifier votre demande, car cette opération est asynchrone. Vous pouvez utiliser cette URL pour obtenir l’état de l’apprentissage.

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. 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 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} est utilisé pour 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. 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. 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. La fréquence à laquelle vous vérifiez si la synchronisation de vos projets est importante. Nous vous conseillons d’effectuer cette vérification tous les jours afin de garantir la mise à jour des données de votre modèle secondaire.

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

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": "CustomEntityRecognition",
        "storageInputContainerName": "{CONTAINER-NAME}",
        "projectName": "{PROJECT-NAME}",
        "multilingual": false,
        "description": "Project description",
        "language": "{LANGUAGE-CODE}"
    }

Répétez les mêmes étapes pour votre projet répliqué à l’aide de {SECONDARY-ENDPOINT} et {SECONDARY-RESOURCE-KEY}. Comparez la valeur lastModifiedDateTime retournée 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, d’entraînement et de déploiement.

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