Tworzenie kopii zapasowej i odzyskiwanie modeli interpretacji języka konwersacyjnego

Podczas tworzenia zasobu języka w Azure Portal należy określić region, w którym ma zostać utworzony. Od tego momentu zasób i wszystkie operacje związane z nim odbywają się w określonym regionie serwera platformy Azure. Rzadko zdarza się, ale nie niemożliwe, aby napotkać problem z siecią, który trafia do całego regionu. Jeśli rozwiązanie musi być zawsze dostępne, należy zaprojektować je w trybie failover w innym regionie. Wymaga to dwóch zasobów języka platformy Azure w różnych regionach i możliwości synchronizacji modeli CLU w różnych regionach.

Jeśli twoja aplikacja lub firma zależy od użycia modelu CLU, zalecamy utworzenie repliki projektu w innym obsługiwanym regionie. Dzięki temu, jeśli wystąpi awaria regionalna, możesz uzyskać dostęp do modelu w innym regionie przełączania w tryb failover, w którym zreplikujesz projekt.

Replikowanie projektu oznacza, że eksportujesz metadane i zasoby projektu i zaimportujesz je do nowego projektu. Spowoduje to tylko skopiowanie ustawień projektu, intencji, jednostek i wypowiedzi. Nadal musisz wytrenować i wdrożyć modele, które będą dostępne do użycia z interfejsami API środowiska uruchomieniowego.

W tym artykule dowiesz się, jak używać interfejsów API eksportu i importowania do replikowania projektu z jednego zasobu do innego istniejącego w różnych obsługiwanych regionach geograficznych, wskazówek dotyczących synchronizowania projektów i zmian wymaganych do użycia środowiska uruchomieniowego.

Wymagania wstępne

  • Dwa zasoby języka platformy Azure w różnych regionach świadczenia usługi Azure, każdy z nich w innym regionie.

Uzyskiwanie punktu końcowego kluczy zasobów

Wykonaj poniższe kroki, aby uzyskać klucze i punkt końcowy zasobów podstawowych i pomocniczych. Zostaną one użyte w poniższych krokach.

Przejdź do strony przeglądu zasobu w Azure Portal. Z menu po lewej stronie wybierz pozycję Klucze i punkt końcowy. Użyjesz punktu końcowego i klucza dla żądań interfejsu API

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

Porada

Zanotuj klucze i punkty końcowe zarówno dla zasobów podstawowych, jak i pomocniczych. Użyj tych wartości, aby zastąpić następujące symbole zastępcze: {PRIMARY-ENDPOINT}, {SECONDARY-ENDPOINT}{PRIMARY-RESOURCE-KEY}i {SECONDARY-RESOURCE-KEY}. Zanotuj również nazwę projektu, nazwę modelu i nazwę wdrożenia. Użyj tych wartości, aby zastąpić następujące symbole zastępcze: {PROJECT-NAME}, {MODEL-NAME} i {DEPLOYMENT-NAME}.

Eksportowanie zasobów projektu podstawowego

Rozpocznij od wyeksportowania zasobów projektu z projektu w zasobie podstawowym.

Przesyłanie zadania eksportu

Zastąp symbole zastępcze w poniższym żądaniu elementem {PRIMARY-ENDPOINT} i {PRIMARY-RESOURCE-KEY} uzyskanym w pierwszym kroku.

Utwórz żądanie POST przy użyciu następującego adresu URL, nagłówków i treści JSON w celu wyeksportowania projektu.

Adres URL żądania

Użyj następującego adresu URL podczas tworzenia żądania interfejsu API. Zastąp wartości zastępcze poniżej własnymi wartościami.

{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/:export?stringIndexType=Utf16CodeUnit&api-version={API-VERSION}
Symbol zastępczy Wartość Przykład
{ENDPOINT} Punkt końcowy do uwierzytelniania żądania interfejsu API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nazwa projektu. Ta wartość jest uwzględniana w wielkości liter. EmailApp
{API-VERSION} Wersja wywoływanego interfejsu API. Wartość, do których odwołuje się tutaj, dotyczy najnowszej wydanej wersji modelu . 2022-05-01

Nagłówki

Użyj następującego nagłówka, aby uwierzytelnić żądanie.

Klucz Wartość
Ocp-Apim-Subscription-Key Klucz do zasobu. Służy do uwierzytelniania żądań interfejsu API.

Po wysłaniu żądania interfejsu API otrzymasz odpowiedź wskazującą 202 powodzenie. W nagłówkach odpowiedzi wyodrębnij operation-location wartość. Zostanie on sformatowany w następujący sposób:

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

JOB-ID służy do identyfikowania żądania, ponieważ ta operacja jest asynchroniczna. Użyj tego adresu URL, aby pobrać wyeksportowany kod JSON projektu przy użyciu tej samej metody uwierzytelniania.

Pobieranie stanu zadania eksportu

Zastąp symbole zastępcze w poniższym żądaniu elementem {PRIMARY-ENDPOINT} i {PRIMARY-RESOURCE-KEY} uzyskanym w pierwszym kroku.

Użyj następującego żądania GET , aby wykonać zapytanie o stan zadania eksportu. Możesz użyć adresu URL otrzymanego z poprzedniego kroku lub zastąpić poniższe wartości symbolami zastępczymi własnymi wartościami.

{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/export/jobs/{JOB-ID}?api-version={API-VERSION}
Symbol zastępczy Wartość Przykład
{ENDPOINT} Punkt końcowy do uwierzytelniania żądania interfejsu API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nazwa projektu. Ta wartość jest uwzględniana w wielkości liter. myProject
{JOB-ID} Identyfikator lokalizowania stanu zadania eksportu. Jest to wartość nagłówka location otrzymana w poprzednim kroku. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} Wersja wywoływanego interfejsu API. Wartość, do których odwołuje się tutaj, dotyczy najnowszej wersji modelu wydanej. 2022-05-01

Nagłówki

Użyj następującego nagłówka, aby uwierzytelnić żądanie.

Klucz Opis Wartość
Ocp-Apim-Subscription-Key Klucz do zasobu. Służy do uwierzytelniania żądań interfejsu API. {YOUR-PRIMARY-RESOURCE-KEY}

Treść odpowiedzi

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

Użyj adresu URL z resultUrl klucza w treści, aby wyświetlić wyeksportowane zasoby z tego zadania.

Pobieranie wyników eksportu

Prześlij żądanie GET przy użyciu {RESULT-URL} otrzymanego z poprzedniego kroku, aby wyświetlić wyniki zadania eksportu.

Nagłówki

Użyj następującego nagłówka, aby uwierzytelnić żądanie.

Klucz Opis Wartość
Ocp-Apim-Subscription-Key Klucz do zasobu. Służy do uwierzytelniania żądań interfejsu API. {PRIMARY-RESOURCE-KEY}

Skopiuj treść odpowiedzi, ponieważ będzie ona używana jako treść na potrzeby następnego zadania importu.

Importowanie do nowego projektu

Teraz zaimportuj wyeksportowane zasoby projektu w nowym projekcie w regionie pomocniczym, aby można je było replikować.

Przesyłanie zadania importu

Zastąp symbole zastępcze w poniższym żądaniu elementem {SECONDARY-ENDPOINT} i {SECONDARY-RESOURCE-KEY} uzyskanym w pierwszym kroku.

Prześlij żądanie POST przy użyciu następującego adresu URL, nagłówków i treści JSON w celu zaimportowania projektu.

Adres URL żądania

Użyj następującego adresu URL podczas tworzenia żądania interfejsu API. Zastąp wartości zastępcze poniżej własnymi wartościami.

{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/:import?api-version={API-VERSION}
Symbol zastępczy Wartość Przykład
{ENDPOINT} Punkt końcowy do uwierzytelniania żądania interfejsu API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nazwa projektu. Ta wartość jest uwzględniana w wielkości liter. myProject
{API-VERSION} Wersja wywoływanego interfejsu API. Wartość, do których odwołuje się tutaj, dotyczy najnowszej wersji modelu wydanej. 2022-05-01

Nagłówki

Użyj następującego nagłówka, aby uwierzytelnić żądanie.

Klucz Wartość
Ocp-Apim-Subscription-Key Klucz do zasobu. Służy do uwierzytelniania żądań interfejsu API.

Treść

Użyj następującego przykładowego kodu JSON jako treści.

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

Klucz Symbol zastępczy Wartość Przykład
api-version {API-VERSION} Wersja wywoływanego interfejsu API. Wersja używana tutaj musi być tą samą wersją modelu interfejsu API w adresie URL. Aby dowiedzieć się więcej, zobacz artykuł dotyczący wersji modelu . 2022-05-01
projectName {PROJECT-NAME} Nazwa projektu. Ta wartość jest uwzględniana w wielkości liter. EmailApp
language {LANGUAGE-CODE} Ciąg określający kod języka wypowiedzi używanych w projekcie. Jeśli projekt jest projektem wielojęzycznym, wybierz kod języka większości wypowiedzi. en-us
multilingual true Wartość logiczna, która umożliwia posiadanie dokumentów w wielu językach w zestawie danych. Po wdrożeniu modelu można wykonywać zapytania dotyczące modelu w dowolnym obsługiwanym języku. Obejmuje to języki, które nie są uwzględnione w dokumentach szkoleniowych. true
dataset {DATASET} Zobacz , jak wytrenować model, aby uzyskać informacje na temat dzielenia danych między zestaw testowania i trenowania. Możliwe wartości dla tego pola to Train i Test. Train

Pobieranie stanu zadania importu

Zastąp symbole zastępcze w poniższym żądaniu elementem {SECONDARY-ENDPOINT} i {SECONDARY-RESOURCE-KEY} uzyskanym w pierwszym kroku.

Użyj następującego żądania GET , aby wykonać zapytanie o stan zadania importu. Możesz użyć adresu URL otrzymanego z poprzedniego kroku lub zastąpić poniższe wartości symbolami zastępczymi własnymi wartościami.

{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/import/jobs/{JOB-ID}?api-version={API-VERSION}
Symbol zastępczy Wartość Przykład
{ENDPOINT} Punkt końcowy do uwierzytelniania żądania interfejsu API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nazwa projektu. Ta wartość jest uwzględniana w wielkości liter. myProject
{JOB-ID} Identyfikator lokalizowania stanu zadania eksportu. Jest to wartość nagłówka location otrzymana w poprzednim kroku. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} Wersja wywoływanego interfejsu API. Wartość, do których odwołuje się tutaj, dotyczy najnowszej wersji modelu wydanej. 2022-05-01

Nagłówki

Użyj następującego nagłówka, aby uwierzytelnić żądanie.

Klucz Opis Wartość
Ocp-Apim-Subscription-Key Klucz do zasobu. Służy do uwierzytelniania żądań interfejsu API. {YOUR-PRIMARY-RESOURCE-KEY}

Treść odpowiedzi

Po wysłaniu żądania otrzymasz następującą odpowiedź. Kontynuuj sondowanie tego punktu końcowego, dopóki parametr stanu nie zmieni się na "powodzenie".

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

Szkolenie modelu

Po zaimportowaniu projektu skopiowano tylko zasoby projektu oraz metadane i zasoby. Nadal musisz wytrenować model, co spowoduje naliczenie użycia na koncie.

Przesyłanie zadania szkoleniowego

Zastąp symbole zastępcze w poniższym żądaniu elementem {SECONDARY-ENDPOINT} i {SECONDARY-RESOURCE-KEY} uzyskanym w pierwszym kroku.

Utwórz żądanie POST przy użyciu następującego adresu URL, nagłówków i treści JSON w celu przesłania zadania szkoleniowego.

Adres URL żądania

Użyj następującego adresu URL podczas tworzenia żądania interfejsu API. Zastąp wartości zastępcze poniżej własnymi wartościami.

{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/:train?api-version={API-VERSION}
Symbol zastępczy Wartość Przykład
{ENDPOINT} Punkt końcowy do uwierzytelniania żądania interfejsu API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nazwa projektu. Ta wartość jest uwzględniana w wielkości liter. EmailApp
{API-VERSION} Wersja wywoływanego interfejsu API. Wartość, do których odwołuje się tutaj, dotyczy najnowszej wydanej wersji modelu . 2022-05-01

Nagłówki

Użyj następującego nagłówka, aby uwierzytelnić żądanie.

Klucz Wartość
Ocp-Apim-Subscription-Key Klucz do zasobu. Służy do uwierzytelniania żądań interfejsu API.

Treść żądania

Użyj następującego obiektu w żądaniu. Model zostanie nazwany MyModel po zakończeniu trenowania.

{
  "modelLabel": "{MODEL-NAME}",
  "trainingMode": "{TRAINING-MODE}",
  "trainingConfigVersion": "{CONFIG-VERSION}",
  "evaluationOptions": {
    "kind": "percentage",
    "testingSplitPercentage": 20,
    "trainingSplitPercentage": 80
  }
}
Klucz Symbol zastępczy Wartość Przykład
modelLabel {MODEL-NAME} Nazwa modelu. Model1
trainingConfigVersion {CONFIG-VERSION} Wersja modelu konfiguracji trenowania. Domyślnie jest używana najnowsza wersja modelu . 2022-05-01
trainingMode {TRAINING-MODE} Tryb trenowania, który ma być używany do trenowania. Obsługiwane tryby to trenowanie w warstwie Standardowa, szybsze trenowanie, ale dostępne tylko dla języków angielskich i zaawansowanych obsługiwanych w przypadku innych języków i projektów wielojęzycznych, ale obejmuje dłuższy czas trenowania. Dowiedz się więcej o trybach trenowania. standard
kind percentage Metody podzielone. Możliwe wartości to percentage lub manual. Aby uzyskać więcej informacji, zobacz , jak wytrenować model . percentage
trainingSplitPercentage 80 Procent oznakowanych danych, które mają zostać uwzględnione w zestawie treningowym. Zalecana wartość to 80. 80
testingSplitPercentage 20 Procent oznakowanych danych do ujęć w zestawie testów. Zalecana wartość to 20. 20

Uwaga

Wartości trainingSplitPercentage i testingSplitPercentage są wymagane tylko wtedy, gdy Kind ustawiono percentage wartość , a suma obu wartości procentowych powinna być równa 100.

Po wysłaniu żądania interfejsu API otrzymasz odpowiedź wskazującą 202 powodzenie. W nagłówkach odpowiedzi wyodrębnij operation-location wartość. Zostanie on sformatowany w następujący sposób:

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

Możesz użyć tego adresu URL, aby uzyskać stan zadania szkoleniowego.

Pobieranie stanu szkolenia

Zastąp symbole zastępcze w poniższym żądaniu elementem {SECONDARY-ENDPOINT} i {SECONDARY-RESOURCE-KEY} uzyskanym w pierwszym kroku.

Użyj następującego żądania GET , aby uzyskać stan postępu trenowania modelu. Zastąp wartości zastępcze poniżej własnymi wartościami.

Adres URL żądania

{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/train/jobs/{JOB-ID}?api-version={API-VERSION}
Symbol zastępczy Wartość Przykład
{YOUR-ENDPOINT} Punkt końcowy do uwierzytelniania żądania interfejsu API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nazwa projektu. Ta wartość jest uwzględniana w wielkości liter. EmailApp
{JOB-ID} Identyfikator lokalizowania stanu trenowania modelu. Jest to wartość nagłówka odebrana podczas przesyłania zadania szkoleniowego location . xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} Wersja wywoływanego interfejsu API. Wartość, do których odwołuje się tutaj, dotyczy najnowszej wersji wydanej. Dowiedz się więcej o innych dostępnych wersjach interfejsu API 2022-05-01

Nagłówki

Użyj następującego nagłówka, aby uwierzytelnić żądanie.

Klucz Wartość
Ocp-Apim-Subscription-Key Klucz do zasobu. Służy do uwierzytelniania żądań interfejsu API.

Treść odpowiedzi

Po wysłaniu żądania otrzymasz następującą odpowiedź. Kontynuuj sondowanie tego punktu końcowego, dopóki parametr stanu nie zmieni się na "powodzenie".

{
  "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"
}
Klucz Wartość Przykład
modelLabel Nazwa modelu Model1
trainingConfigVersion Wersja konfiguracji trenowania. Domyślnie jest używana najnowsza wersja . 2022-05-01
trainingMode Wybrany tryb trenowania. standard
startDateTime Rozpoczęto trenowanie czasu 2022-04-14T10:23:04.2598544Z
status Stan zadania szkoleniowego running
estimatedEndDateTime Szacowany czas zakończenia zadania szkoleniowego 2022-04-14T10:29:38.2598544Z
jobId Identyfikator zadania szkoleniowego xxxxx-xxxx-xxxx-xxxx-xxxxxxxxx
createdDateTime Data i godzina utworzenia zadania szkoleniowego 2022-04-14T10:22:42Z
lastUpdatedDateTime Data i godzina ostatniej aktualizacji zadania szkoleniowego 2022-04-14T10:23:45Z
expirationDateTime Data i godzina wygaśnięcia zadania trenowania 2022-04-14T10:22:42Z

Wdrażanie modelu

Jest to krok polegający na udostępnieniu wytrenowanego modelu użycia formularzy za pośrednictwem interfejsu API przewidywania środowiska uruchomieniowego.

Porada

Użyj tej samej nazwy wdrożenia co projekt podstawowy, aby ułatwić konserwację i minimalne zmiany w systemie w celu obsługi przekierowania ruchu.

Przesyłanie zadania wdrożenia

Zastąp symbole zastępcze w poniższym żądaniu elementem {SECONDARY-ENDPOINT} i {SECONDARY-RESOURCE-KEY} uzyskanym w pierwszym kroku.

Utwórz żądanie PUT przy użyciu następującego adresu URL, nagłówków i treści JSON, aby rozpocząć wdrażanie modelu interpretacji języka konwersacyjnego.

Adres URL żądania

{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}?api-version={API-VERSION}
Symbol zastępczy Wartość Przykład
{ENDPOINT} Punkt końcowy do uwierzytelniania żądania interfejsu API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nazwa projektu. Ta wartość jest uwzględniana w wielkości liter. myProject
{DEPLOYMENT-NAME} Nazwa wdrożenia. Ta wartość jest uwzględniana w wielkości liter. staging
{API-VERSION} Wersja wywoływanego interfejsu API. Wartość, do których odwołuje się tutaj, dotyczy najnowszej wersji modelu wydanej. 2022-05-01

Nagłówki

Użyj następującego nagłówka, aby uwierzytelnić żądanie.

Klucz Wartość
Ocp-Apim-Subscription-Key Klucz do zasobu. Służy do uwierzytelniania żądań interfejsu API.

Treść żądania

{
  "trainedModelLabel": "{MODEL-NAME}",
}
Klucz Symbol zastępczy Wartość Przykład
trainedModelLabel {MODEL-NAME} Nazwa modelu, która zostanie przypisana do wdrożenia. Można przypisywać tylko pomyślnie wytrenowane modele. Ta wartość jest uwzględniana w wielkości liter. myModel

Po wysłaniu żądania interfejsu API otrzymasz odpowiedź wskazującą 202 powodzenie. W nagłówkach odpowiedzi wyodrębnij operation-location wartość. Zostanie on sformatowany w następujący sposób:

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

Możesz użyć tego adresu URL, aby uzyskać stan zadania wdrożenia.

Pobieranie stanu wdrożenia

Zastąp symbole zastępcze w poniższym żądaniu elementem {SECONDARY-ENDPOINT} i {SECONDARY-RESOURCE-KEY} uzyskanym w pierwszym kroku.

Użyj następującego żądania GET , aby uzyskać stan zadania wdrożenia. Zastąp wartości zastępcze poniżej własnymi wartościami.

Adres URL żądania

{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}
Symbol zastępczy Wartość Przykład
{ENDPOINT} Punkt końcowy do uwierzytelniania żądania interfejsu API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nazwa projektu. Ta wartość jest uwzględniana w wielkości liter. myProject
{DEPLOYMENT-NAME} Nazwa wdrożenia. Ta wartość jest uwzględniana w wielkości liter. staging
{JOB-ID} Identyfikator lokalizowania stanu trenowania modelu. Jest to wartość nagłówka location odebrana z interfejsu API w odpowiedzi na żądanie wdrożenia modelu. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} Wersja wywoływanego interfejsu API. Wartość, do których odwołuje się tutaj, dotyczy najnowszej wersji modelu wydanej. 2022-05-01

Nagłówki

Użyj następującego nagłówka, aby uwierzytelnić żądanie.

Klucz Wartość
Ocp-Apim-Subscription-Key Klucz do zasobu. Służy do uwierzytelniania żądań interfejsu API.

Treść odpowiedzi

Po wysłaniu żądania otrzymasz następującą odpowiedź. Kontynuuj sondowanie tego punktu końcowego, dopóki parametr stanu nie zmieni się na "powodzenie".

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

Zmiany w wywoływaniu środowiska uruchomieniowego

W systemie w kroku, w którym wywołujesz interfejs API środowiska uruchomieniowego , sprawdź kod odpowiedzi zwrócony z interfejsu API przesyłania zadania. Jeśli zauważysz spójny błąd podczas przesyłania żądania, może to oznaczać awarię w regionie podstawowym. Błąd raz nie oznacza awarii, może to być przejściowy problem. Ponów próbę przesłania zadania za pomocą utworzonego zasobu pomocniczego. W przypadku drugiego żądania użyj klucza pomocniczego i klucza {YOUR-SECONDARY-ENDPOINT} pomocniczego, jeśli wykonano powyższe kroki i {DEPLOYMENT-NAME} byłoby to samo, {PROJECT-NAME} więc żadne zmiany nie są wymagane do treści żądania.

Jeśli wrócisz do użycia zasobu pomocniczego, zauważysz niewielki wzrost opóźnienia ze względu na różnicę w regionach, w których wdrożono model.

Sprawdzanie, czy projekty nie są zsynchronizowane

Utrzymanie świeżości obu projektów jest ważną częścią procesu. Należy często sprawdzać, czy jakiekolwiek aktualizacje zostały wprowadzone do projektu podstawowego, aby przenieść je do projektu pomocniczego. W ten sposób, jeśli region podstawowy zakończy się niepowodzeniem i przejdziesz do regionu pomocniczego, należy oczekiwać podobnej wydajności modelu, ponieważ zawiera już najnowsze aktualizacje. Ustawienie częstotliwości sprawdzania, czy projekty są zsynchronizowane, jest ważnym wyborem, zalecamy codzienne sprawdzanie, aby zagwarantować świeżość danych w modelu pomocniczym.

Pobieranie szczegółów projektu

Użyj następującego adresu URL, aby uzyskać szczegóły projektu, jeden z kluczy zwróconych w treści wskazuje ostatnią datę modyfikacji projektu. Powtórz następujący krok dwa razy, jeden dla projektu podstawowego, a drugi dla projektu pomocniczego i porównaj znacznik czasu zwrócony dla obu z nich, aby sprawdzić, czy nie są zsynchronizowane.

Użyj następującego żądania GET , aby uzyskać szczegóły projektu. Możesz użyć adresu URL otrzymanego z poprzedniego kroku lub zastąpić poniższe wartości symbolami zastępczymi własnymi wartościami.

{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}?api-version={API-VERSION}
Symbol zastępczy Wartość Przykład
{ENDPOINT} Punkt końcowy do uwierzytelniania żądania interfejsu API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nazwa projektu. Ta wartość jest uwzględniana w wielkości liter. myProject
{API-VERSION} Wersja wywoływanego interfejsu API. Wartość, do których odwołuje się tutaj, dotyczy najnowszej wersji modelu wydanej. 2022-05-01

Nagłówki

Użyj następującego nagłówka, aby uwierzytelnić żądanie.

Klucz Opis Wartość
Ocp-Apim-Subscription-Key Klucz do zasobu. Służy do uwierzytelniania żądań interfejsu API. {YOUR-PRIMARY-RESOURCE-KEY}

Treść odpowiedzi

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

Powtórz te same kroki dla replikowanego projektu przy użyciu polecenia {SECONDARY-ENDPOINT} i {SECONDARY-RESOURCE-KEY}. Porównaj zwrócone lastModifiedDateTime dane z obu projektów. Jeśli projekt podstawowy został zmodyfikowany wcześniej niż pomocniczy, należy powtórzyć kroki eksportowania, importowania, trenowania i wdrażania modelu.

Następne kroki

W tym artykule przedstawiono sposób używania interfejsów API eksportu i importowania do replikacji projektu do zasobu języka pomocniczego w innym regionie. Następnie zapoznaj się z dokumentacją referencyjną interfejsu API, aby zobaczyć, co jeszcze możesz zrobić za pomocą interfejsów API tworzenia.