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
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.
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour