Copia de seguridad y recuperación de los modelos de reconocimiento del lenguaje conversacional

Al crear un recurso de Lenguaje en Azure Portal, especifica una región en la que se va a crear. A partir de entonces, el recurso y todas las operaciones relacionadas con él tienen lugar en la región del servidor de Azure especificada. No suele ser habitual, aunque tampoco imposible, encontrar un problema de red que afecte a toda una región. Si la solución debe estar siempre disponible, debe diseñarla para conmutar por error a otra región. Esto requiere dos recursos de Lenguaje de Azure AI en regiones diferentes y la capacidad de sincronizar modelos de reconocimiento del lenguaje conversacional entre regiones.

Si la aplicación o la empresa dependen del uso de un modelo de reconocimiento del lenguaje conversacional, se recomienda crear una réplica del proyecto en otra región admitida. De este modo, si se produce una interrupción regional, puede acceder al modelo en la otra región de conmutación por error en la que replicó el proyecto.

La replicación de un proyecto implica exportar los metadatos y recursos del proyecto, e importarlos en un nuevo proyecto. Esto solo realiza una copia de la configuración, las intenciones, las entidades y las expresiones del proyecto. Todavía tiene que entrenar e implementar los modelos para que estén disponibles para su uso con las API en tiempo de ejecución.

En este artículo, aprenderá a usar las API de exportación e importación para replicar el proyecto de un recurso en otro existente en diferentes regiones geográficas admitidas, obtendrá instrucciones sobre cómo mantener los proyectos sincronizados y conocerá los cambios necesarios para el consumo en tiempo de ejecución.

Requisitos previos

  • Dos recursos de Lenguaje de Azure AI en diferentes regiones de Azure, cada uno de ellos en una región diferente.

Obtención del punto de conexión y las claves del recurso

Siga los pasos a continuación para obtener las claves y el punto de conexión de los recursos principales y secundarios. Se usarán en los pasos siguientes.

Vaya a la página de información general del recurso en Azure Portal. En el menú de la izquierda, seleccione Claves y punto de conexión. Usará el punto de conexión y la clave para las solicitudes de API.

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

Sugerencia

Anote las claves y los puntos de conexión de los recursos principales y secundarios. Use estos valores para reemplazar los siguientes marcadores de posición: {PRIMARY-ENDPOINT}, {PRIMARY-RESOURCE-KEY}, {SECONDARY-ENDPOINT} y {SECONDARY-RESOURCE-KEY}. Anote también el nombre del proyecto, el nombre del modelo y el nombre de implementación. Use estos valores para reemplazar los siguientes marcadores de posición: {PROJECT-NAME}, {MODEL-NAME} y {DEPLOYMENT-NAME}.

Exportación de los recursos principales del proyecto

Para empezar, exporte los recursos del proyecto desde el proyecto en el recurso principal.

Envío del trabajo de exportación

Reemplace los marcadores de posición de la siguiente solicitud por {PRIMARY-ENDPOINT} y {PRIMARY-RESOURCE-KEY} que obtuvo en el primer paso.

Cree una solicitud POST con la dirección URL, los encabezados y el cuerpo JSON siguientes para exportar el proyecto.

URL de la solicitud

Use la siguiente dirección URL al crear la solicitud de API. Reemplace los valores de los marcadores de posición por sus propios valores.

{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/:export?stringIndexType=Utf16CodeUnit&api-version={API-VERSION}
Marcador de posición Valor Ejemplo
{ENDPOINT} Punto de conexión para autenticar la solicitud de API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nombre del proyecto. Este valor distingue mayúsculas de minúsculas. EmailApp
{API-VERSION} La versión de la API a la que llama. 2023-04-01

encabezados

Use el siguiente encabezado para autenticar la solicitud.

Clave Valor
Ocp-Apim-Subscription-Key Clave para el recurso. Se usa para autenticar las solicitudes de API.

Una vez que envíe la solicitud de API, recibirá una respuesta 202 que indica que se ha realizado correctamente. En los encabezados de respuesta, extraiga el valor operation-location. Tendrá el formato siguiente:

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

JOB-ID se usa para identificar la solicitud, ya que esta operación es asincrónica. Use esta dirección URL para obtener el JSON del proyecto exportado mediante el mismo método de autenticación.

Obtención del estado del trabajo de exportación

Reemplace los marcadores de posición de la siguiente solicitud por los elementos {PRIMARY-ENDPOINT} y {PRIMARY-RESOURCE-KEY} que obtuvo en el primer paso.

Use la siguiente solicitud GET para consultar el estado del trabajo de exportación. Puede usar la dirección URL que recibió en el paso anterior o reemplazar los valores de los marcadores de posición siguientes por sus propios valores.

{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/export/jobs/{JOB-ID}?api-version={API-VERSION}
Marcador de posición Valor Ejemplo
{ENDPOINT} Punto de conexión para autenticar la solicitud de API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nombre del proyecto. Este valor distingue mayúsculas de minúsculas. myProject
{JOB-ID} Identificador para buscar el estado del trabajo de exportación. Se encuentra en el valor de encabezado location que recibió en el paso anterior. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} La versión de la API a la que llama. 2023-04-01

encabezados

Use el siguiente encabezado para autenticar la solicitud.

Clave Descripción Valor
Ocp-Apim-Subscription-Key Clave para el recurso. Se usa para autenticar las solicitudes de 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"
}

Use the url from the resultUrl key in the body to view the exported assets from this job.

Obtención de los resultados de exportación

Envíe una solicitud GET con la {RESULT-URL} que recibió en el paso anterior para ver los resultados del trabajo de exportación.

encabezados

Use el siguiente encabezado para autenticar la solicitud.

Clave Descripción Valor
Ocp-Apim-Subscription-Key Clave para el recurso. Se usa para autenticar las solicitudes de API. {PRIMARY-RESOURCE-KEY}

Copie el cuerpo de la respuesta, ya que lo usará como cuerpo para el siguiente trabajo de importación.

Importación a un nuevo proyecto

Ahora, tome los recursos del proyecto exportados e impórtelos al nuevo proyecto en la región secundaria para poder replicarlo.

Envío del trabajo de importación

Reemplace los marcadores de posición de la siguiente solicitud por {SECONDARY-ENDPOINT} y {SECONDARY-RESOURCE-KEY} que obtuvo en el primer paso.

Envíe una solicitud POST con la dirección URL, los encabezados y el cuerpo JSON que se incluyen a continuación para importar el proyecto.

URL de la solicitud

Use la siguiente dirección URL al crear la solicitud de API. Reemplace los valores de los marcadores de posición por sus propios valores.

{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/:import?api-version={API-VERSION}
Marcador de posición Valor Ejemplo
{ENDPOINT} Punto de conexión para autenticar la solicitud de API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nombre del proyecto. Este valor distingue mayúsculas de minúsculas y debe coincidir con el nombre del proyecto en el archivo JSON que va a importar. EmailAppDemo
{API-VERSION} Versión de la API a la que se llama. 2023-04-01

encabezados

Use el siguiente encabezado para autenticar la solicitud.

Clave Valor
Ocp-Apim-Subscription-Key Clave para el recurso. Se usa para autenticar las solicitudes de API.

Body

El cuerpo JSON que envía es similar al ejemplo siguiente. Consulte la documentación de referencia para obtener más detalles sobre el objeto JSON.

{
  "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": []
      }
    ]
  }
}

Clave Marcador de posición Valor Ejemplo
{API-VERSION} Versión de la API a la que se llama. 2023-04-01
projectName {PROJECT-NAME} Nombre del proyecto. Este valor distingue mayúsculas de minúsculas. EmailAppDemo
language {LANGUAGE-CODE} Una cadena que especifica el código de idioma de las expresiones que se usan en el proyecto. Si el proyecto es un proyecto multilingüe, elija el código de idioma de la mayoría de las expresiones. en-us
multilingual true Valor booleano que permite tener documentos en varios idiomas en el conjunto de datos. Cuando el modelo se implementa, se puede consultar en cualquier lenguaje admitido incluido en los documentos de entrenamiento. true
dataset {DATASET} Consulte cómo entrenar un modelo para obtener información sobre cómo dividir los datos entre un conjunto de pruebas y entrenamiento. Los valores posibles que admite este campo son Train y Test. Train

Tras una solicitud correcta, la respuesta de la API contendrá un encabezado operation-location con una dirección URL que puede usar para comprobar el estado del trabajo de importación. Tendrá el formato siguiente:

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

Obtención del estado del trabajo de importación

Reemplace los marcadores de posición de la siguiente solicitud por los elementos {SECONDARY-ENDPOINT} y {SECONDARY-RESOURCE-KEY} que obtuvo en el primer paso.

Cuando se envía una solicitud de importación del proyecto correcta, la dirección URL de solicitud completa para comprobar el estado de la implementación del trabajo (incluido el punto de conexión, el nombre del proyecto y el id. de trabajo) se encuentra en el encabezado de respuesta operation-location.

Use la siguiente solicitud GET para consultar el estado del trabajo de importación. Puede usar la dirección URL que recibió en el paso anterior o reemplazar los valores de los marcadores de posición por sus propios valores.

{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/import/jobs/{JOB-ID}?api-version={API-VERSION}
Marcador de posición Valor Ejemplo
{ENDPOINT} Punto de conexión para autenticar la solicitud de API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nombre del proyecto. Este valor distingue mayúsculas de minúsculas. myProject
{JOB-ID} Identificador para buscar el estado del trabajo de importación. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} La versión de la API a la que llama. 2023-04-01

encabezados

Use el siguiente encabezado para autenticar la solicitud.

Clave Descripción Valor
Ocp-Apim-Subscription-Key Clave para el recurso. Se usa para autenticar las solicitudes de API. {YOUR-PRIMARY-RESOURCE-KEY}

Response body

Una vez que envíe la solicitud, recibirá la siguiente respuesta. Siga sondeando este punto de conexión hasta que el parámetro status cambie a "succeeded".

{
  "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"
}

Entrenamiento de un modelo

Después de importar el proyecto, solo ha copiado los recursos y los metadatos del proyecto. Todavía tiene que entrenar el modelo, por lo que la cuenta incurrirá en gastos de uso.

Envío de un trabajo de aprendizaje

Reemplace los marcadores de posición de la siguiente solicitud por {SECONDARY-ENDPOINT} y {SECONDARY-RESOURCE-KEY} que obtuvo en el primer paso.

Cree una solicitud POST mediante la dirección URL, los encabezados y el cuerpo JSON para enviar un trabajo de entrenamiento.

URL de la solicitud

Use la siguiente dirección URL al crear la solicitud de API. Reemplace los valores de los marcadores de posición por sus propios valores.

{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/:train?api-version={API-VERSION}
Marcador de posición Valor Ejemplo
{ENDPOINT} Punto de conexión para autenticar la solicitud de API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nombre del proyecto. Este valor distingue mayúsculas de minúsculas. EmailApp
{API-VERSION} La versión de la API a la que llama. 2023-04-01

encabezados

Use el siguiente encabezado para autenticar la solicitud.

Clave Valor
Ocp-Apim-Subscription-Key Clave para el recurso. Se usa para autenticar las solicitudes de API.

Cuerpo de la solicitud

Use el siguiente objeto en la solicitud. El nombre del modelo será el mismo que use para el parámetro modelLabel una vez completado el entrenamiento.

{
  "modelLabel": "{MODEL-NAME}",
  "trainingMode": "{TRAINING-MODE}",
  "trainingConfigVersion": "{CONFIG-VERSION}",
  "evaluationOptions": {
    "kind": "percentage",
    "testingSplitPercentage": 20,
    "trainingSplitPercentage": 80
  }
}
Clave Marcador de posición Valor Ejemplo
modelLabel {MODEL-NAME} Nombre del modelo. Model1
trainingConfigVersion {CONFIG-VERSION} Versión del modelo de configuración de entrenamiento. De manera predeterminada, se usa la versión más reciente del modelo. 2022-05-01
trainingMode {TRAINING-MODE} El modo de entrenamiento que se va a usar para el entrenamiento. Los modos admitidos son el entrenamiento estándar, el entrenamiento más rápido, pero solo está disponible en inglés, y el entrenamiento avanzado, que es compatible con otros idiomas y proyectos multilingües, pero implica tiempos de entrenamiento más largos. Más información sobre los modos de entrenamiento. standard
kind percentage Métodos de división. Los valores posibles son percentage o manual. Vea cómo entrenar un modelo para obtener más información. percentage
trainingSplitPercentage 80 Porcentaje de los datos etiquetados que se incluirán en el conjunto de entrenamiento. El valor recomendado es 80. 80
testingSplitPercentage 20 Porcentaje de los datos etiquetados que se incluirán en el conjunto de pruebas. El valor recomendado es 20. 20

Nota

trainingSplitPercentage y testingSplitPercentage solo son necesarios si Kind está establecido en percentage y la suma de ambos porcentajes es igual a 100.

Una vez que envíe la solicitud de API, recibirá una respuesta 202 que indica que se ha realizado correctamente. En los encabezados de respuesta, extraiga el valor operation-location. Tendrá el formato siguiente:

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

Puede usar esta dirección URL para obtener el estado del trabajo de entrenamiento.

Get Training Status

Reemplace los marcadores de posición de la siguiente solicitud por {SECONDARY-ENDPOINT} y {SECONDARY-RESOURCE-KEY} que obtuvo en el primer paso.

Cuando se envía una solicitud de entrenamiento correcta, la dirección URL de solicitud completa para comprobar el estado del trabajo (incluido el punto de conexión, el nombre del proyecto y el id. de trabajo) se encuentra en el encabezado de respuesta operation-location.

Use la siguiente solicitud GET para obtener el estado del proceso de entrenamiento del modelo. Reemplace los valores de los marcadores de posición por sus propios valores.

URL de la solicitud

{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/train/jobs/{JOB-ID}?api-version={API-VERSION}
Marcador de posición Valor Ejemplo
{YOUR-ENDPOINT} Punto de conexión para autenticar la solicitud de API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nombre del proyecto. Este valor distingue mayúsculas de minúsculas. EmailApp
{JOB-ID} Id. para buscar el estado del entrenamiento del modelo. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} La versión de la API a la que llama. 2023-04-01

encabezados

Use el siguiente encabezado para autenticar la solicitud.

Clave Valor
Ocp-Apim-Subscription-Key Clave para el recurso. Se usa para autenticar las solicitudes de API.

Cuerpo de la respuesta

Una vez que envíe la solicitud, recibirá la siguiente respuesta. Siga sondeando este punto de conexión hasta que el parámetro status cambie a "succeeded".

{
  "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"
}
Clave Valor Ejemplo
modelLabel El nombre del modelo Model1
trainingConfigVersion La versión de configuración de entrenamiento. De manera predeterminada, se usa la versión más reciente. 2022-05-01
trainingMode El modo de entrenamiento seleccionado. standard
startDateTime La hora en que se inició el entrenamiento 2022-04-14T10:23:04.2598544Z
status El estado del trabajo de entrenamiento running
estimatedEndDateTime El tiempo estimado para que finalice el trabajo de entrenamiento 2022-04-14T10:29:38.2598544Z
jobId El identificador del trabajo de entrenamiento xxxxx-xxxx-xxxx-xxxx-xxxxxxxxx
createdDateTime La fecha y hora de creación del trabajo de entrenamiento 2022-04-14T10:22:42Z
lastUpdatedDateTime La fecha y hora de la última actualización del trabajo de entrenamiento 2022-04-14T10:23:45Z
expirationDateTime La fecha y hora de expiración del trabajo de entrenamiento 2022-04-14T10:22:42Z

Implementación del modelo

Este es el paso donde pone el modelo entrenado a disposición para el consumo a través de la API de predicción en tiempo de ejecución.

Sugerencia

Use el mismo nombre de implementación que el proyecto principal para facilitar el mantenimiento y realizar cambios mínimos en el sistema para controlar la redirección del tráfico.

Enviar el trabajo de implementación

Reemplace los marcadores de posición de la siguiente solicitud por los elementos {SECONDARY-ENDPOINT} y {SECONDARY-RESOURCE-KEY} que obtuvo en el primer paso.

Cree una solicitud PUT con la dirección URL, los encabezados y el cuerpo JSON que se incluyen a continuación para empezar a implementar un modelo de reconocimiento del lenguaje conversacional.

URL de la solicitud

{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}?api-version={API-VERSION}
Marcador de posición Valor Ejemplo
{ENDPOINT} Punto de conexión para autenticar la solicitud de API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nombre del proyecto. Este valor distingue mayúsculas de minúsculas. myProject
{DEPLOYMENT-NAME} El nombre de la implementación. Este valor distingue mayúsculas de minúsculas. staging
{API-VERSION} La versión de la API a la que llama. 2023-04-01

encabezados

Use el siguiente encabezado para autenticar la solicitud.

Clave Valor
Ocp-Apim-Subscription-Key Clave para el recurso. Se usa para autenticar las solicitudes de API.

Cuerpo de la solicitud

{
  "trainedModelLabel": "{MODEL-NAME}",
}
Clave Marcador de posición Valor Ejemplo
trainedModelLabel {MODEL-NAME} Nombre del modelo que se asignará a la implementación. Solo puede asignar modelos entrenados correctamente. Este valor distingue mayúsculas de minúsculas. myModel

Una vez que envíe la solicitud de API, recibirá una respuesta 202 que indica que se ha realizado correctamente. En los encabezados de respuesta, extraiga el valor operation-location. Tendrá el formato siguiente:

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

Puede usar esta dirección URL para obtener el estado del trabajo de implementación.

Obtención del estado de la implementación

Reemplace los marcadores de posición de la siguiente solicitud por los elementos {SECONDARY-ENDPOINT} y {SECONDARY-RESOURCE-KEY} que obtuvo en el primer paso.

Cuando se envía una solicitud de implementación correcta, la dirección URL de solicitud completa para comprobar el estado del trabajo (incluido el punto de conexión, el nombre del proyecto y el id. de trabajo) se encuentra en el encabezado de respuesta operation-location.

Use la siguiente solicitud GET para consultar el estado del trabajo de implementación. Reemplace los valores de los marcadores de posición por sus propios valores.

URL de la solicitud

{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}
Marcador de posición Valor Ejemplo
{ENDPOINT} Punto de conexión para autenticar la solicitud de API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nombre del proyecto. Este valor distingue mayúsculas de minúsculas. myProject
{DEPLOYMENT-NAME} El nombre de la implementación. Este valor distingue mayúsculas de minúsculas. staging
{JOB-ID} Id. para buscar el estado del entrenamiento del modelo. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} La versión de la API a la que llama. 2023-04-01

encabezados

Use el siguiente encabezado para autenticar la solicitud.

Clave Valor
Ocp-Apim-Subscription-Key Clave para el recurso. Se usa para autenticar las solicitudes de API.

Cuerpo de la respuesta

Una vez que envíe la solicitud, recibirá la siguiente respuesta. Siga sondeando este punto de conexión hasta que el parámetro status cambie a "succeeded".

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

Cambios en la llamada al entorno de ejecución

Dentro del sistema, en el paso en el que llama a la API en tiempo de ejecución, compruebe el código de respuesta devuelto desde la API de la tarea de envío. Si observa un error constante al enviar la solicitud, esto podría indicar una interrupción en la región primaria. Un error por única vez no significa una interrupción, puede deberse a un problema transitorio. Vuelva a intentar enviar el trabajo a través del recurso secundario que ha creado. Para la segunda solicitud, use {YOUR-SECONDARY-ENDPOINT} y la clave secundaria, si ha seguido los pasos anteriores, {PROJECT-NAME}{DEPLOYMENT-NAME} y serían los mismos, por lo que no se necesitan cambios en el cuerpo de la solicitud.

En caso de que vuelva a usar el recurso secundario, observará un ligero aumento de la latencia debido a la diferencia en las regiones donde se implementa el modelo.

Comprobación si los proyectos no están sincronizados

Mantener la actualización de ambos proyectos es una parte importante del proceso. Tiene que comprobar con frecuencia si se han hecho actualizaciones en el proyecto principal para pasarlas al proyecto secundario. De este modo, si se producirá un error en la región primaria y se traslada a la región secundaria, cabría esperar un rendimiento de modelo similar, dado que ya contiene las actualizaciones más recientes. Establecer la frecuencia de comprobación de si los proyectos están sincronizados es una opción importante, por lo que se recomienda realizar esta comprobación diariamente para garantizar la actualización de los datos en el modelo secundario.

Obtención de los detalles del proyecto

Use la siguiente dirección URL para obtener los detalles del proyecto, una de las claves devueltas en el cuerpo indica la fecha de última modificación del proyecto. Repita el siguiente paso dos veces, una para el proyecto principal y otra para el secundario, y compare la marca de tiempo devuelta en ambos para ver si no están sincronizados.

Use la siguiente solicitud GET para obtener los detalles del proyecto. Puede usar la dirección URL que recibió en el paso anterior o reemplazar los valores de los marcadores de posición siguientes por sus propios valores.

{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}?api-version={API-VERSION}
Marcador de posición Valor Ejemplo
{ENDPOINT} Punto de conexión para autenticar la solicitud de API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nombre del proyecto. Este valor distingue mayúsculas de minúsculas. myProject
{API-VERSION} La versión de la API a la que llama. 2023-04-01

encabezados

Use el siguiente encabezado para autenticar la solicitud.

Clave Descripción Valor
Ocp-Apim-Subscription-Key Clave para el recurso. Se usa para autenticar las solicitudes de 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}"
}

Repita los mismos pasos para el proyecto replicado mediante {SECONDARY-ENDPOINT} y {SECONDARY-RESOURCE-KEY}. Compare el valor lastModifiedDateTime devuelto de ambos proyectos. Si el proyecto principal se modificó antes que el secundario, debe repetir los pasos de exportación, importación, entrenamiento e implementación del modelo.

Pasos siguientes

En este artículo, ha aprendido a usar las API de exportación e importación para replicar un proyecto en un recurso de Lenguaje secundario de otra región. A continuación, consulte los documentos de referencia de las API para ver qué más puede hacer con las API de creación.