Tworzenie kopii zapasowych i odzyskiwanie modeli interpretacji języka konwersacyjnego

Podczas tworzenia zasobu language w witrynie Azure Portal należy określić region, w którym ma zostać utworzony. Od tego czasu zasób i wszystkie powiązane z nim operacje odbywają się w określonym regionie serwera platformy Azure. Rzadko zdarza się, ale nie niemożliwe, aby napotkać problem z siecią, który uderza w cały region. 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 sztucznej inteligencji platformy Azure w różnych regionach i możliwość synchronizowania modeli CLU między regionami.

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 pracy awaryjnej, w którym został zreplikowany projekt.

Replikowanie projektu oznacza wyeksportowanie metadanych i zasobów projektu i zaimportowanie ich do nowego projektu. Spowoduje to jedynie 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 synchronizacji projektów i zmian wymaganych do użycia środowiska uruchomieniowego.

Wymagania wstępne

  • Dwa zasoby języka sztucznej inteligencji platformy Azure w różnych regionach świadczenia usługi Azure, z których każda jest 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 witrynie 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.

Napiwek

Zanotuj klucze i punkty końcowe dla zasobów podstawowych 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 swoim {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.

Zażądaj URL

Podczas tworzenia żądania interfejsu API użyj następującego adresu URL. Zastąp poniższe wartości symboli zastępczych 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. 2023-04-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.

Uzyskiwanie stanu zadania eksportu

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

Użyj następującego żądania GET , aby wykonać zapytanie dotyczące stanu zadania eksportu. Możesz użyć adresu URL otrzymanego z poprzedniego kroku lub zastąpić poniższe wartości symboli zastępczych 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. 2023-04-01

Nagłówki

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

Key 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.

Key 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 swoim {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, aby zaimportować projekt.

Zażądaj URL

Podczas tworzenia żądania interfejsu API użyj następującego adresu URL. Zastąp wartości symboli zastępczych 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ść uwzględnia wielkość liter i musi być zgodna z nazwą projektu w importowanych plikach JSON. EmailAppDemo
{API-VERSION} Wersja wywoływanego interfejsu API. 2023-04-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ść

Treść wysyłanego kodu JSON jest podobna do poniższego przykładu. Aby uzyskać więcej informacji na temat obiektu JSON, zobacz dokumentację referencyjną.

{
  "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} Wersja wywoływanego interfejsu API. 2023-04-01
projectName {PROJECT-NAME} Nazwa projektu. Ta wartość jest uwzględniana w wielkości liter. EmailAppDemo
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 , w tym w językach, 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 testowy i treningowy. Możliwe wartości dla tego pola to Train i Test. Train

Po pomyślnym żądaniu odpowiedź interfejsu API będzie zawierać operation-location nagłówek z adresem URL, którego można użyć do sprawdzenia stanu zadania importu. Jest on sformatowany w następujący sposób:

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

Pobieranie stanu zadania importu

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

Po wysłaniu pomyślnego żądania importu projektu pełny adres URL żądania sprawdzania stanu zadania importu (w tym punktu końcowego, nazwy projektu i identyfikatora zadania) jest zawarty w nagłówku operation-location odpowiedzi.

Użyj następującego żądania GET , aby wykonać zapytanie dotyczące stanu zadania importu. Możesz użyć adresu URL otrzymanego z poprzedniego kroku lub zastąpić wartości symboli zastępczych 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 importu. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} Wersja wywoływanego interfejsu API. 2023-04-01

Nagłówki

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

Key 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ź. Nie sonduj 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 i metadane i zasoby projektu. Nadal musisz wytrenować model, co spowoduje naliczenie użycia na twoim koncie.

Przesyłanie zadania szkoleniowego

Zastąp symbole zastępcze w poniższym żądaniu swoim {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.

Zażądaj URL

Podczas tworzenia żądania interfejsu API użyj następującego adresu URL. Zastąp wartości symboli zastępczych 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. 2023-04-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 po wartości używanej dla parametru po zakończeniu modelLabel 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 standardowe szkolenie, szybsze trenowanie, ale dostępne tylko w przypadku szkoleń angielskich i zaawansowanych obsługiwanych w innych językach i projektach wielojęzycznych, ale obejmuje dłuższy czas szkolenia. 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, które mają zostać uwzględnione w zestawie testów. Zalecana wartość to 20. 20

Uwaga

Wartości trainingSplitPercentage i testingSplitPercentage są wymagane tylko wtedy, gdy Kind jest ustawiona wartość percentage , 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 swoim {SECONDARY-ENDPOINT} i {SECONDARY-RESOURCE-KEY} uzyskanym w pierwszym kroku.

Po wysłaniu pomyślnego żądania szkoleniowego pełny adres URL żądania sprawdzania stanu zadania (w tym punktu końcowego, nazwy projektu i identyfikatora zadania) jest zawarty w nagłówku operation-location odpowiedzi.

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

Zażądaj URL

{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. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} Wersja wywoływanego interfejsu API. 2023-04-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ź. Nie sonduj 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 Czas rozpoczęcia szkolenia 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 trenowania 2022-04-14T10:22:42Z
lastUpdatedDateTime Data i godzina ostatniego zaktualizowania 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 umożliwiający udostępnienie wytrenowanego modelu użycia formularzy za pośrednictwem interfejsu API przewidywania środowiska uruchomieniowego.

Napiwek

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 swoim {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 konwersacji.

Zażądaj URL

{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. 2023-04-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 swoim {SECONDARY-ENDPOINT} i {SECONDARY-RESOURCE-KEY} uzyskanym w pierwszym kroku.

Po wysłaniu pomyślnego żądania wdrożenia pełny adres URL żądania sprawdzania stanu zadania (w tym punktu końcowego, nazwy projektu i identyfikatora zadania) jest zawarty w nagłówku operation-location odpowiedzi.

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

Zażądaj URL

{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. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} Wersja wywoływanego interfejsu API. 2023-04-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ź. Nie sonduj 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 zadania przesyłania. Jeśli zauważysz spójny błąd podczas przesyłania żądania, może to oznaczać awarię w regionie podstawowym. Awaria 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 {YOUR-SECONDARY-ENDPOINT} pomocniczego i , jeśli wykonano powyższe kroki i {DEPLOYMENT-NAME} będzie to samo, {PROJECT-NAME} więc żadne zmiany nie są wymagane do treści żądania.

Jeśli powrócisz do korzystania z 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 ulegnie awarii i przejdziesz do regionu pomocniczego, należy oczekiwać podobnej wydajności modelu, ponieważ zawiera on już najnowsze aktualizacje. Ustawienie częstotliwości sprawdzania, czy projekty są zsynchronizowane, jest ważnym wyborem, zalecamy wykonanie tej kontroli codziennie, 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 poniższy 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ą one 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 symboli zastępczych 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. 2023-04-01

Nagłówki

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

Key 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 metod {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 replikowania projektu do zasobu języka pomocniczego w innym regionie. Następnie zapoznaj się z dokumentacją referencyjną interfejsu API, aby zobaczyć, co jeszcze można zrobić za pomocą interfejsów API tworzenia.