Создание резервных копий и восстановление моделей распознавания устной речи

При создании языкового ресурса на портале Azure необходимо указать регион, в котором он будет создан. После этого ресурс и все относящиеся к нему операции выполняются в указанном регионе сервера Azure. В редких случаях можно столкнуться с сетевой проблемой, которая затрагивает весь регион. Если ваше решение должно быть доступно непрерывно, необходимо разработать его таким образом, чтобы выполнялась отработка отказа в другой регион. Для этого требуется два ресурса языка искусственного интеллекта Azure в разных регионах и возможность синхронизации моделей CLU в разных регионах.

Если приложение или бизнес зависит от использования модели CLU, рекомендуется создать реплику проекта в другом поддерживаемом регионе. Таким образом, если произойдет региональный сбой, вы сможете получить доступ к модели в другом регионе отработки отказа, в котором вы реплицируете проект.

Под репликацией проекта понимается экспорт метаданных и ресурсов проекта и их импорт в новый проект. В результате, создается только копия параметров, намерений, сущностей и речевых фрагментов проекта. Вам по-прежнему придется обучать и развертывать модели, чтобы они были доступны для использования с API среды выполнения.

В настоящей статье приведена информация о том, как использовать API экспорта и импорта для репликации проекта из одного ресурса в другой, находящийся в другом поддерживаемом географическом регионе, обеспечивать синхронизацию проектов и вносить изменения, необходимые для использования среды выполнения.

Необходимые компоненты

  • Два ресурса языка искусственного интеллекта Azure в разных регионах Azure, каждый из них в другом регионе.

Получение конечной точки ключей ресурсов

Для получения ключей и конечной точки основного и дополнительного ресурсов, выполните следующие действия. Эти значения понадобятся вам на последующих этапах.

Перейдите на страницу обзора ресурса на портале Azure. В меню слева выберите Ключи и конечная точка. Конечная точка и ключ вам понадобятся для запросов API.

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

Совет

Сохраните заметку о ключах и конечных точках для основного и дополнительного ресурсов. Используйте эти значения для замены следующих заполнителей: {PRIMARY-ENDPOINT}, {PRIMARY-RESOURCE-KEY}, {SECONDARY-ENDPOINT} и {SECONDARY-RESOURCE-KEY}. Кроме того, запишите имя проекта, имя модели и имя развертывания. Используйте эти значения для замены следующих заполнителей: {PROJECT-NAME}, {MODEL-NAME} и {DEPLOYMENT-NAME}.

Экспорт основных ресурсов проекта

Сначала экспортируйте ресурсы из проекта в основной ресурс.

Отправка задания на экспорт

Замените заполнители в следующем запросе своими значениями {PRIMARY-ENDPOINT} и {PRIMARY-RESOURCE-KEY}, полученными на первом шаге.

Создайте запрос POST, используя следующий URL-адрес, заголовки и текст JSON, чтобы экспортировать проект.

Запросить URL-адрес

При создании запроса API используйте следующий URL-адрес. Замените значения заполнителей ниже собственными значениями.

{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/:export?stringIndexType=Utf16CodeUnit&api-version={API-VERSION}
Заполнитель Значение Пример
{ENDPOINT} Конечная точка для проверки подлинности запроса API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Имя проекта. Это значение учитывает регистр. EmailApp
{API-VERSION} Версия вызываемого API. 2023-04-01

Заголовки

Используйте следующий заголовок для проверки подлинности запроса.

Ключ Стоимость
Ocp-Apim-Subscription-Key Ключ к ресурсу. Используется для проверки подлинности запросов API.

После отправки запроса API вы получите ответ 202, указывающий на успешное выполнение. Извлеките значение operation-location из заголовков ответа. Оно будет иметь следующий формат:

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

JOB-ID используется для идентификации запроса, так как эта операция является асинхронной. Используйте этот URL-адрес для получения кода JSON экспортированного проекта с применением того же способа проверки подлинности.

Получение сведений о состоянии задания на экспорт

Замените заполнители в следующем запросе своими значениями {PRIMARY-ENDPOINT} и {PRIMARY-RESOURCE-KEY}, полученными на первом шаге.

Используйте указанный ниже запрос GET, чтобы проверить состояние задания на экспорт. Используйте URL-адрес, полученный на предыдущем шаге, или замените приведенные ниже значения заполнителей собственными значениями.

{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/export/jobs/{JOB-ID}?api-version={API-VERSION}
Заполнитель Значение Пример
{ENDPOINT} Конечная точка для проверки подлинности запроса API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Имя проекта. Это значение учитывает регистр. myProject
{JOB-ID} Идентификатор для поиска сведений о состоянии задания на экспорт. Это значение находится в заголовке location, полученном на предыдущем шаге. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} Версия вызываемого API. 2023-04-01

Заголовки

Используйте следующий заголовок для проверки подлинности запроса.

Ключ. Description Значение
Ocp-Apim-Subscription-Key Ключ к ресурсу. Используется для проверки подлинности запросов API. {YOUR-PRIMARY-RESOURCE-KEY}

Текст ответа

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

Вставьте в текст URL-адрес из ключа resultUrl, чтобы просмотреть экспортированные ресурсы из этого задания.

Получение результатов экспорта

Отправьте запрос GET, используя {RESULT-URL} (получено на предыдущем шаге), чтобы просмотреть результаты задания экспорта.

Заголовки

Используйте следующий заголовок для проверки подлинности запроса.

Ключ. Description Значение
Ocp-Apim-Subscription-Key Ключ к ресурсу. Используется для проверки подлинности запросов API. {PRIMARY-RESOURCE-KEY}

Скопируйте текст ответа — он будет использоваться в качестве текста для следующего задания на импорт.

Импорт в новый проект

Теперь импортируйте экспортированные ресурсы проекта в новый проект в дополнительном регионе, чтобы можно было выполнить его репликацию.

Отправка задания на импорт

Замените заполнители в следующем запросе своими значениями {SECONDARY-ENDPOINT} и {SECONDARY-RESOURCE-KEY}, полученными на первом шаге.

Отправьте запрос POST, используя указанный ниже URL-адрес, заголовки и текст JSON, чтобы импортировать проект.

Запросить URL-адрес

При создании запроса API используйте следующий URL-адрес. Замените значения заполнителей собственными значениями.

{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/:import?api-version={API-VERSION}
Заполнитель Значение Пример
{ENDPOINT} Конечная точка для проверки подлинности запроса API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Имя проекта. Это значение учитывает регистр и должно соответствовать имени проекта в импортируемом файле JSON. EmailAppDemo
{API-VERSION} Версия вызываемого API. 2023-04-01

Заголовки

Используйте следующий заголовок для проверки подлинности запроса.

Ключ Стоимость
Ocp-Apim-Subscription-Key Ключ к ресурсу. Используется для проверки подлинности запросов API.

Текст

Текст JSON, который вы отправляете, аналогичен следующему примеру. Дополнительные сведения об объекте 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": []
      }
    ]
  }
}

Ключ Заполнитель Значение Пример
{API-VERSION} Версия вызываемого API. 2023-04-01
projectName {PROJECT-NAME} Имя проекта. Это значение учитывает регистр. EmailAppDemo
language {LANGUAGE-CODE} Строка, указывающая код языка для речевых фрагментов, используемых в проекте. Если проект является многоязычным, выберите код языка большинства речевых фрагментов. en-us
multilingual true Логическое значение, которое позволяет иметь документы на нескольких языках в наборе данных. При развертывании модели можно запрашивать модель на любом поддерживаемом языке , включая языки, которые не включены в учебные документы. true
dataset {DATASET} Для получения сведений о разделении данных на тестовые и обучающие наборы см. раздел Обучение модели. Возможные значения для этого поля: Train и Test. Train

При успешном запросе ответ API будет содержать заголовок с URL-адресомoperation-location, который можно использовать для проверка состояния задания импорта. Форматируется следующим образом:

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

Получение сведений о состоянии задания на импорт

Замените заполнители в следующем запросе своими значениями {SECONDARY-ENDPOINT} и {SECONDARY-RESOURCE-KEY}, полученными на первом шаге.

При отправке успешного запроса на импорт проекта полный URL-адрес запроса для проверка состояния задания импорта (включая конечную точку, имя проекта и идентификатор задания) содержится в заголовке ответаoperation-location.

Используйте указанный ниже запрос GET, чтобы проверить состояние задания на импорт. Вы можете использовать URL-адрес, полученный на предыдущем шаге, или заменить значения заполнителей собственными значениями.

{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/import/jobs/{JOB-ID}?api-version={API-VERSION}
Заполнитель Значение Пример
{ENDPOINT} Конечная точка для проверки подлинности запроса API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Имя проекта. Это значение учитывает регистр. myProject
{JOB-ID} Идентификатор для поиска состояния задания импорта. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} Версия вызываемого API. 2023-04-01

Заголовки

Используйте следующий заголовок для проверки подлинности запроса.

Ключ. Description Значение
Ocp-Apim-Subscription-Key Ключ к ресурсу. Используется для проверки подлинности запросов API. {YOUR-PRIMARY-RESOURCE-KEY}

Текст ответа

После отправки запроса вы получите следующий ответ. Продолжайте опрос этой конечной точки до тех пор, пока значение параметра Состояние не изменится на "Выполнено".

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

Обучение модели

После импорта проекта вы скопировали только ресурсы и метаданные проекта. Вам по-прежнему нужно обучить модель, а для этого необходимо использовать вашу учетную запись.

Отправка задания обучения

Замените заполнители в следующем запросе своими значениями {SECONDARY-ENDPOINT} и {SECONDARY-RESOURCE-KEY}, полученными на первом шаге.

Создайте запрос POST, используя указанный ниже URL-адрес, заголовки и текст JSON, чтобы запустить задание обучения.

Запросить URL-адрес

При создании запроса API используйте следующий URL-адрес. Замените значения заполнителей собственными значениями.

{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/:train?api-version={API-VERSION}
Заполнитель Значение Пример
{ENDPOINT} Конечная точка для проверки подлинности запроса API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Имя проекта. Это значение учитывает регистр. EmailApp
{API-VERSION} Версия вызываемого API. 2023-04-01

Заголовки

Используйте следующий заголовок для проверки подлинности запроса.

Ключ Стоимость
Ocp-Apim-Subscription-Key Ключ к ресурсу. Используется для проверки подлинности запросов API.

Текст запроса

Используйте в запросе следующий объект. Модель будет названа после значения, используемого modelLabel для параметра после завершения обучения.

{
  "modelLabel": "{MODEL-NAME}",
  "trainingMode": "{TRAINING-MODE}",
  "trainingConfigVersion": "{CONFIG-VERSION}",
  "evaluationOptions": {
    "kind": "percentage",
    "testingSplitPercentage": 20,
    "trainingSplitPercentage": 80
  }
}
Ключ Заполнитель Значение Пример
modelLabel {MODEL-NAME} Имя модели. Model1
trainingConfigVersion {CONFIG-VERSION} Версия модели конфигурации обучения. По умолчанию используется последняя версия модели. 2022-05-01
trainingMode {TRAINING-MODE} Используемый режим обучения. Поддерживаемые режимы — это Стандартное обучение (ускоренное обучение, доступное только на английском языке) и Расширенное обучение (поддерживающее другие языки и многоязычные проекты, но предусматривающее более длительное время обучения). Узнайте больше о режимах обучения. standard
kind percentage Методы разделения. Возможные значения: percentage и manual. Дополнительные сведения см. в статье об обучении модели. percentage
trainingSplitPercentage 80 Процент помеченных тегами данных, которые будут включены в набор для обучения. Рекомендуемое значение — 80. 80
testingSplitPercentage 20 Процент помеченных тегами данных, которые будут включены в набор для тестирования. Рекомендуемое значение — 20. 20

Примечание.

trainingSplitPercentage и testingSplitPercentage требуются только в том случае, если для Kind задано значение percentage, а сумма процентных значений должна быть равна 100.

После отправки запроса API вы получите ответ 202, указывающий на успешное выполнение. Извлеките значение operation-location из заголовков ответа. Оно будет иметь следующий формат:

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

Этот URL-адрес позволяет получить текущее состояние задания обучения.

Get Training Status

Замените заполнители в следующем запросе своими значениями {SECONDARY-ENDPOINT} и {SECONDARY-RESOURCE-KEY}, полученными на первом шаге.

При отправке успешного запроса на обучение полный URL-адрес запроса для проверка состояния задания (включая конечную точку, имя проекта и идентификатор задания) содержится в заголовке ответаoperation-location.

Используйте следующий запрос GET, чтобы получить состояние хода обучения модели. Замените значения заполнителей ниже собственными значениями.

Запросить URL-адрес

{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/train/jobs/{JOB-ID}?api-version={API-VERSION}
Заполнитель Значение Пример
{YOUR-ENDPOINT} Конечная точка для проверки подлинности запроса API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Имя проекта. Это значение учитывает регистр. EmailApp
{JOB-ID} Идентификатор для поиска состояния обучения модели. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} Версия вызываемого API. 2023-04-01

Заголовки

Используйте следующий заголовок для проверки подлинности запроса.

Ключ Стоимость
Ocp-Apim-Subscription-Key Ключ к ресурсу. Используется для проверки подлинности запросов API.

Текст ответа

После отправки запроса вы получите следующий ответ. Продолжайте опрос этой конечной точки до тех пор, пока значение параметра Состояние не изменится на "Выполнено".

{
  "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"
}
Ключ Стоимость Пример
modelLabel имя модели; Model1
trainingConfigVersion Версия конфигурации обучения. По умолчанию используется последняя версия. 2022-05-01
trainingMode Выбранный режим обучения. standard
startDateTime Время начала обучения 2022-04-14T10:23:04.2598544Z
status Состояние задания обучения. running
estimatedEndDateTime Предполагаемое время завершения задания обучения. 2022-04-14T10:29:38.2598544Z
jobId Идентификатор задания обучения. xxxxx-xxxx-xxxx-xxxx-xxxxxxxxx
createdDateTime Дата и время создания задания обучения. 2022-04-14T10:22:42Z
lastUpdatedDateTime Дата и время последнего обновления задания обучения 2022-04-14T10:23:45Z
expirationDateTime Дата и время создания задания обучения 2022-04-14T10:22:42Z

Развертывание модели

На этом шаге вы делаете свою обученную модель доступной для использования через API прогнозирования среды выполнения.

Совет

Используйте то же имя развертывания, что и для основного проекта, чтобы упростить обслуживание и внести минимальные изменения в систему для обработки перенаправления трафика.

Отправка задания развертывания

Замените заполнители в следующем запросе своими значениями {SECONDARY-ENDPOINT} и {SECONDARY-RESOURCE-KEY}, полученными на первом шаге.

Создайте запрос PUT, используя следующий URL-адрес, заголовки и текст JSON, чтобы начать развертывание модели распознавания разговорной речи.

Запросить URL-адрес

{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}?api-version={API-VERSION}
Заполнитель Значение Пример
{ENDPOINT} Конечная точка для проверки подлинности запроса API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Имя проекта. Это значение учитывает регистр. myProject
{DEPLOYMENT-NAME} Имя, используемое для развертывания. Это значение учитывает регистр. staging
{API-VERSION} Версия вызываемого API. 2023-04-01

Заголовки

Используйте следующий заголовок для проверки подлинности запроса.

Ключ Стоимость
Ocp-Apim-Subscription-Key Ключ к ресурсу. Используется для проверки подлинности запросов API.

Текст запроса

{
  "trainedModelLabel": "{MODEL-NAME}",
}
Ключ Заполнитель Значение Пример
trainedModelLabel {MODEL-NAME} Имя модели, которое будет назначено развертыванию. Имена можно назначить только успешно обученным моделям. Это значение учитывает регистр. myModel

После отправки запроса API вы получите ответ 202, указывающий на успешное выполнение. Извлеките значение operation-location из заголовков ответа. Оно будет иметь следующий формат:

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

Этот URL-адрес можно использовать для получения состояния задания развертывания.

Получение состояния развертывания

Замените заполнители в следующем запросе своими значениями {SECONDARY-ENDPOINT} и {SECONDARY-RESOURCE-KEY}, полученными на первом шаге.

При отправке успешного запроса развертывания полный URL-адрес запроса для проверка состояния задания (включая конечную точку, имя проекта и идентификатор задания) содержится в заголовке ответаoperation-location.

Используйте указанный ниже запрос GET для запроса состояния задания развертывания. Замените значения заполнителей собственными значениями.

Запросить URL-адрес

{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}
Заполнитель Значение Пример
{ENDPOINT} Конечная точка для проверки подлинности запроса API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Имя проекта. Это значение учитывает регистр. myProject
{DEPLOYMENT-NAME} Имя, используемое для развертывания. Это значение учитывает регистр. staging
{JOB-ID} Идентификатор для поиска состояния обучения модели. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} Версия вызываемого API. 2023-04-01

Заголовки

Используйте следующий заголовок для проверки подлинности запроса.

Ключ Стоимость
Ocp-Apim-Subscription-Key Ключ к ресурсу. Используется для проверки подлинности запросов API.

Текст ответа

После отправки запроса вы получите следующий ответ. Продолжайте опрос этой конечной точки до тех пор, пока значение параметра Состояние не изменится на "Выполнено".

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

Изменения при вызове среды выполнения

В системе на этапе вызова API среды выполнения проверьте код ответа, возвращаемого с API отправки задачи. Если вы наблюдаете постоянный сбой при отправке запроса, возможной причиной этому может быть нарушение работоспособности в основном регионе. Однократный сбой не указывает на нарушение работоспособности и может быть временной проблемой. Попробуйте отправить задание через созданный дополнительный ресурс. Для второго запроса используйте свой {YOUR-SECONDARY-ENDPOINT} и дополнительный ключ; если вы выполнили описанные выше действия, {PROJECT-NAME} и {DEPLOYMENT-NAME} будут одинаковыми, поэтому для текста запроса изменения не потребуются.

Если вы вернетесь к использованию дополнительного ресурса, задержка немного увеличится из-за разницы в регионах, где развернута модель.

Убедитесь, что ваши проекты синхронизированы

Поддержание актуальности обоих проектов является важной частью процесса. Необходимо регулярно проверять, вносились ли какие-нибудь обновления в основной проект, чтобы перемещать их в дополнительный проект. Таким образом, если в основном регионе произойдет сбой и вы перейдете в дополнительный регион, вы сможете рассчитывать на схожую производительность модели, так как она уже содержит последние обновления. Установка частоты проверки синхронизации проектов является важным аспектом. Мы рекомендуем проводить эту проверку ежедневно, чтобы гарантировать актуальность данных в дополнительной модели.

Получение сведений о проекте

Используйте следующий URL-адрес, чтобы получить сведения о проекте. Один из ключей, возвращаемых в тексте, указывает дату последнего изменения проекта. Повторите следующий шаг дважды — один раз для основного проекта и второй для дополнительного проекта. Сравните полученные для них метки времени и убедитесь, что проекты синхронизированы.

Используйте следующий запрос GET для получения сведений о проекте. Используйте URL-адрес, полученный на предыдущем шаге, или замените приведенные ниже значения заполнителей собственными значениями.

{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}?api-version={API-VERSION}
Заполнитель Значение Пример
{ENDPOINT} Конечная точка для проверки подлинности запроса API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Имя проекта. Это значение учитывает регистр. myProject
{API-VERSION} Версия вызываемого API. 2023-04-01

Заголовки

Используйте следующий заголовок для проверки подлинности запроса.

Ключ. Description Значение
Ocp-Apim-Subscription-Key Ключ к ресурсу. Используется для проверки подлинности запросов API. {YOUR-PRIMARY-RESOURCE-KEY}

Текст ответа

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

Повторите те же шаги для реплицируемого проекта с помощью {SECONDARY-ENDPOINT} и {SECONDARY-RESOURCE-KEY}. Сравните возвращенный lastModifiedDateTime из обоих проектов. Если ваш основной проект был изменен раньше, чем дополнительный, необходимо повторить шаги по экспорту, импорту, обучению и развертыванию модели.

Следующие шаги

Из этой статьи вы узнали, как с помощью API экспорта и импорта реплицировать проект в дополнительный языковой ресурс в другом регионе. Далее предлагаем изучить справочную документацию по API, чтобы узнать о других возможностях API разработки.