Sauvegarder et récupérer vos modèles de compréhension du langage courant

Lorsque vous créez une ressource de langue dans le portail Azure, 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 Azure AI Language dans des régions différentes, ainsi que la possibilité de synchroniser des modèles CLU dans plusieurs régions.

Si votre application ou votre entreprise dépend de l’utilisation d’un modèle de compréhension du langage courant, 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 du projet, des intentions, des entités et des énoncés. Vous devrez tout de même entraîner et déployer les modèles à utiliser avec les API de runtime.

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 deux régions Azure différentes.

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 présentation de votre ressource sur 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

A screenshot showing the key and endpoint page in the Azure portal.

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-conversations/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. EmailApp
{API-VERSION} Version de l’API que vous appelez. 2023-04-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.

Une fois que vous avez envoyé votre demande d’API, vous recevez une réponse 202 indiquant la réussite. Dans les en-têtes de réponse, extrayez la valeur operation-location. Elle est au format suivant :

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

JOB-ID est utilisé pour identifier votre demande, car cette opération est asynchrone. Utilisez cette URL pour obtenir le JSON du projet exporté à l’aide de la même méthode d’authentification.

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 interroger l’état du travail d’exportation. 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-conversations/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 permettant de localiser l’état de votre travail d’exportation. 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. 2023-04-01

headers

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

Clé Description Valeur
Ocp-Apim-Subscription-Key Clé de votre ressource. Utilisée pour authentifier vos demandes d’API. {YOUR-PRIMARY-RESOURCE-KEY}

Response body

{
  "resultUrl": "{Endpoint}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/export/jobs/xxxxxx-xxxxx-xxxxx-xx/result?api-version={API-VERSION}",
  "jobId": "xxxx-xxxxx-xxxxx-xxx",
  "createdDateTime": "2022-04-18T15:23:07Z",
  "lastUpdatedDateTime": "2022-04-18T15:23:08Z",
  "expirationDateTime": "2022-04-25T15:23:07Z",
  "status": "succeeded"
}

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é Description Valeur
Ocp-Apim-Subscription-Key Clé de votre ressource. Utilisée pour authentifier vos demandes d’API. {PRIMARY-RESOURCE-KEY}

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.

Envoyez une requête POST en utilisant l’URL, les en-têtes et le corps JSON suivants pour importer 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é par vos propres valeurs.

{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/: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 et doit correspondre au nom du projet dans le fichier JSON que vous importez. EmailAppDemo
{API-VERSION} Version de l’API que vous appelez. 2023-04-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

Le corps JSON que vous envoyez est similaire à l’exemple suivant. Pour plus d’informations sur l’objet JSON, consultez la documentation de référence .

{
  "projectFileVersion": "{API-VERSION}",
  "stringIndexType": "Utf16CodeUnit",
  "metadata": {
    "projectKind": "Conversation",
    "settings": {
      "confidenceThreshold": 0.7
    },
    "projectName": "{PROJECT-NAME}",
    "multilingual": true,
    "description": "Trying out CLU",
    "language": "{LANGUAGE-CODE}"
  },
  "assets": {
    "projectKind": "Conversation",
    "intents": [
      {
        "category": "intent1"
      },
      {
        "category": "intent2"
      }
    ],
    "entities": [
      {
        "category": "entity1"
      }
    ],
    "utterances": [
      {
        "text": "text1",
        "dataset": "{DATASET}",
        "intent": "intent1",
        "entities": [
          {
            "category": "entity1",
            "offset": 5,
            "length": 5
          }
        ]
      },
      {
        "text": "text2",
        "language": "{LANGUAGE-CODE}",
        "dataset": "{DATASET}",
        "intent": "intent2",
        "entities": []
      }
    ]
  }
}

Clé Espace réservé Valeur Exemple
{API-VERSION} Version de l’API que vous appelez. 2023-04-01
projectName {PROJECT-NAME} Nom de votre projet. Cette valeur respecte la casse. EmailAppDemo
language {LANGUAGE-CODE} Chaîne spécifiant le code de langue des énoncés utilisés dans votre projet. Si votre projet est multilingue, choisissez le code de langue de la majorité des énoncés. en-us
multilingual true Valeur booléenne qui vous permet d’utiliser des documents en plusieurs langues dans votre jeu de données. Lorsque votre modèle est déployé, vous pouvez interroger le modèle dans n’importe quelle langage prise en charge incluant les langages qui ne sont pas inclus dans vos documents d’apprentissage. true
dataset {DATASET} Consultez Comment entraîner un modèle pour plus d’informations sur le fractionnement de vos données en un jeu de test et un jeu d’entraînement. Les valeurs possibles pour cette propriété sont Train et Test. Train

En cas de requête réussie, la réponse de l’API contient un operation-location en-tête avec une URL que vous pouvez utiliser pour vérifier l’état du travail d’importation. Il est au format suivant :

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

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.

Lorsque vous envoyez une requête d’importation de projet réussie, l’URL de demande complète permettant de vérifier l’état du travail d’importation (y compris votre point de terminaison, le nom du projet et l’ID de travail) est contenue dans l’en-tête de operation-location la réponse.

Utilisez la requête GET suivante pour interroger l’état de la tâche d’importation. Vous pouvez vous servir de l’URL reçue à l’étape précédente ou remplacer les valeurs d’espace réservé par les vôtres.

{ENDPOINT}/language/authoring/analyze-conversations/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 permettant de localiser l’état de votre travail d’importation. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} Version de l’API que vous appelez. 2023-04-01

headers

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

Clé Description Valeur
Ocp-Apim-Subscription-Key Clé de votre ressource. Utilisée pour authentifier vos demandes d’API. {YOUR-PRIMARY-RESOURCE-KEY}

Response body

Une fois que vous avez envoyé la requête, vous recevrez la réponse suivante. Continuez à interroger ce point de terminaison jusqu’à ce que le paramètre status passe à « réussi ».

{
  "jobId": "xxxxx-xxxxx-xxxx-xxxxx",
  "createdDateTime": "2022-04-18T15:17:20Z",
  "lastUpdatedDateTime": "2022-04-18T15:17:22Z",
  "expirationDateTime": "2022-04-25T15:17:20Z",
  "status": "succeeded"
}

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.

Créez une requête POST en utilisant l’URL, les en-têtes et le corps JSON suivants pour envoyer un travail d’apprentissage.

URL de la demande

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

{ENDPOINT}/language/authoring/analyze-conversations/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. EmailApp
{API-VERSION} Version de l’API que vous appelez. 2023-04-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 l’objet suivant dans votre demande. Le modèle sera nommé d’après la valeur que vous utilisez pour le paramètre une fois la formationmodelLabel terminée.

{
  "modelLabel": "{MODEL-NAME}",
  "trainingMode": "{TRAINING-MODE}",
  "trainingConfigVersion": "{CONFIG-VERSION}",
  "evaluationOptions": {
    "kind": "percentage",
    "testingSplitPercentage": 20,
    "trainingSplitPercentage": 80
  }
}
Clé Espace réservé Valeur Exemple
modelLabel {MODEL-NAME} Nom de votre modèle. Model1
trainingConfigVersion {CONFIG-VERSION} Version du modèle de configuration de formation. Par défaut, la dernière version du modèle est utilisée. 2022-05-01
trainingMode {TRAINING-MODE} Mode d’entraînement à utiliser pour l’entraînement. Les modes pris en charge sont Entraînement standard (entraînement plus rapide, mais uniquement disponible pour l’anglais) et Entraînement avancé (pris en charge pour d’autres langues et les projets multilingues, mais supposant des temps d’entraînement plus longs). Apprenez-en davantage sur les modes d’apprentissage. standard
kind percentage Méthodes de fractionnement. Les valeurs possibles sont percentage ou manual. Pour plus d’informations, consultez Comment entraîner 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 demande d’API, vous recevez une réponse 202 indiquant la réussite. Dans les en-têtes de réponse, extrayez la valeur operation-location. Elle est au format suivant :

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

Vous pouvez utiliser cette URL pour obtenir l’état du travail d’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.

Lorsque vous envoyez une requête de formation réussie, l’URL de demande complète permettant de vérifier l’état du travail (y compris votre point de terminaison, le nom du projet et l’ID de travail) est contenue dans l’en-tête de operation-location la réponse.

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-conversations/projects/{PROJECT-NAME}/train/jobs/{JOB-ID}?api-version={API-VERSION}
Espace réservé Valeur Exemple
{YOUR-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. EmailApp
{JOB-ID} ID de localisation de l’état d’entraînement de votre modèle. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} Version de l’API que vous appelez. 2023-04-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 ».

{
  "result": {
    "modelLabel": "{MODEL-LABEL}",
    "trainingConfigVersion": "{TRAINING-CONFIG-VERSION}",
    "trainingMode": "{TRAINING-MODE}",
    "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": "xxxxx-xxxxx-xxxx-xxxxx-xxxx",
  "createdDateTime": "2022-04-18T15:44:44Z",
  "lastUpdatedDateTime": "2022-04-18T15:45:48Z",
  "expirationDateTime": "2022-04-25T15:44:44Z",
  "status": "running"
}
Clé Valeur Exemple
modelLabel Le nom du modèle Model1
trainingConfigVersion Version de configuration de formation. Par défaut, la dernière version est utilisée. 2022-05-01
trainingMode Votre mode d’entraînement sélectionné. standard
startDateTime Le moment où la formation a commencé 2022-04-14T10:23:04.2598544Z
status L’état du travail de formation running
estimatedEndDateTime Durée estimée pour l’achèvement du travail de formation 2022-04-14T10:29:38.2598544Z
jobId Votre ID de travail de formation xxxxx-xxxx-xxxx-xxxx-xxxxxxxxx
createdDateTime Date et heure de création d’un travail de formation 2022-04-14T10:22:42Z
lastUpdatedDateTime Date et heure de la dernière mise à jour du travail de formation 2022-04-14T10:23:45Z
expirationDateTime Date et heure d’expiration du travail de formation 2022-04-14T10:22:42Z

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.

Créez une requête PUT en utilisant l’URL, les en-têtes et le corps JSON suivants pour commencer à déployer un modèle de compréhension du langage courant.

URL de la demande

{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-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
{DEPLOYMENT-NAME} Le nom de votre déploiement. Cette valeur respecte la casse. staging
{API-VERSION} Version de l’API que vous appelez. 2023-04-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

{
  "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 demande d’API, vous recevez une réponse 202 indiquant la réussite. Dans les en-têtes de réponse, extrayez la valeur operation-location. Elle est au format suivant :

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

Vous pouvez utiliser cette URL pour obtenir l’état du travail de 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.

Lorsque vous envoyez une requête de déploiement réussie, l’URL de demande complète permettant de vérifier l’état du travail (y compris votre point de terminaison, le nom du projet et l’ID de travail) est contenue dans l’en-tête de operation-location la réponse.

Utilisez la requête GET suivante pour obtenir l’état de votre travail de déploiement. Remplacez les valeurs d’espace réservé par vos propres valeurs.

URL de la demande

{ENDPOINT}/language/authoring/analyze-conversations/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} Le 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. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} Version de l’API que vous appelez. 2023-04-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 requête, vous recevrez la réponse suivante. Continuez à interroger ce point de terminaison jusqu’à ce que le paramètre status passe à « réussi ».

{
    "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 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 votre {YOUR-SECONDARY-ENDPOINT} et la clé secondaire. 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. 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-conversations/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. 2023-04-01

headers

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

Clé Description Valeur
Ocp-Apim-Subscription-Key Clé de votre ressource. Utilisée pour authentifier vos demandes d’API. {YOUR-PRIMARY-RESOURCE-KEY}

Response body

{
  "createdDateTime": "2022-04-18T13:53:03Z",
  "lastModifiedDateTime": "2022-04-18T13:53:03Z",
  "lastTrainedDateTime": "2022-04-18T14:14:28Z",
  "lastDeployedDateTime": "2022-04-18T14:49:01Z",
  "projectKind": "Conversation",
  "projectName": "{PROJECT-NAME}",
  "multilingual": true,
  "description": "This is a sample conversation project.",
  "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, 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.