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