대화형 언어 이해 모델 백업 및 복구
Azure Portal에서 언어 리소스를 만들 때 만들 지역을 지정합니다. 그때부터 리소스 및 이와 관련된 모든 작업은 지정된 Azure 서버 지역에서 수행됩니다. 전체 지역에 적용되는 네트워크 문제가 발생하는 것은 드물지만 불가능한 것도 아닙니다. 솔루션을 항상 사용할 수 있어야 하는 경우 다른 지역으로 장애 조치(failover)하도록 설계해야 합니다. 이를 위해 서로 다른 지역에 있는 두 개의 Azure AI 언어 리소스와 지역 간에 CLU 모델을 동기화하는 기능이 필요합니다.
앱 또는 비즈니스에서 CLU 모델을 사용해야 하는 경우 프로젝트 복제본을 지원되는 다른 지역에 만드는 것이 좋습니다. 이에 따라 지역 가동 중단이 발생하면 프로젝트를 복제한 다른 장애 조치(failover) 지역의 모델에 액세스할 수 있습니다.
프로젝트 복제는 프로젝트 메타데이터와 자산을 내보내고 새 프로젝트로 가져오는 것을 의미합니다. 이 경우 프로젝트 설정, 의도, 엔터티 및 발화의 복사본만 만듭니다. 런타임 API에서 사용할 수 있도록 모델을 학습시키고 배포해야 합니다.
이 문서에서는 내보내기 및 가져오기 API를 사용하여 프로젝트를 지원되는 한 리소스에서 다른 지리적 지역의 다른 리소스에 복제하는 방법, 프로젝트를 동기화 상태로 유지하기 위한 지침 및 런타임 사용에 필요한 변경 내용에 대해 알아봅니다.
필수 조건
- 서로 다른 Azure 지역에 있는 두 개의 Azure AI 언어 리소스(각각 다른 지역에 있음).
리소스 키 엔드포인트 가져오기
다음 단계를 사용하여 기본 및 보조 리소스의 키와 엔드포인트를 가져옵니다. 이러한 항목은 다음 단계에서 사용됩니다.
Azure Portal에서 리소스 개요 페이지로 이동합니다. 왼쪽 메뉴에서 키 및 엔드포인트를 선택합니다. API 요청에 엔드포인트와 키를 사용합니다.
팁
기본 및 보조 리소스 모두에 대한 키와 엔드포인트를 적어 둡니다. 이러한 값은 {PRIMARY-ENDPOINT}
, {PRIMARY-RESOURCE-KEY}
, {SECONDARY-ENDPOINT}
및 {SECONDARY-RESOURCE-KEY}
자리 표시자를 바꾸는 데 사용합니다.
또한 프로젝트 이름, 모델 이름 및 배포 이름도 적어 둡니다. 이러한 값은 {PROJECT-NAME}
, {MODEL-NAME}
및 {DEPLOYMENT-NAME}
자리 표시자를 바꾸는 데 사용합니다.
기본 프로젝트 자산 내보내기
먼저 기본 리소스의 프로젝트에서 프로젝트 자산을 내보냅니다.
내보내기 작업 제출
다음 요청의 자리 표시자를 첫 번째 단계에서 얻은 {PRIMARY-ENDPOINT}
및 {PRIMARY-RESOURCE-KEY}
로 바꿉니다.
다음 URL, 헤더, JSON 본문을 사용하여 POST 요청을 만들어 프로젝트를 내보냅니다.
요청 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} |
내보내기 작업 상태를 찾기 위한 ID입니다. 이는 이전 단계에서 받은 location 헤더 값에 있습니다. |
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx |
{API-VERSION} |
호출하는 API의 버전입니다. | 2023-04-01 |
헤더
다음 헤더를 사용하여 요청을 인증합니다.
키 | 설명 | 값 |
---|---|---|
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"
}
본문에 있는 resultUrl
키의 URL을 사용하여 이 작업에서 내보낸 자산을 봅니다.
내보내기 결과 가져오기
이전 단계에서 받은 {RESULT-URL}
을(를) 사용하여 GET 요청을 제출하여 내보내기 작업의 결과를 봅니다.
헤더
다음 헤더를 사용하여 요청을 인증합니다.
키 | 설명 | 값 |
---|---|---|
Ocp-Apim-Subscription-Key |
리소스의 키입니다. API 요청을 인증하는 데 사용됩니다. | {PRIMARY-RESOURCE-KEY} |
다음 가져오기 작업에 대한 본문으로 사용할 응답 본문을 복사합니다.
새 프로젝트로 가져오기
이제 복제할 수 있도록 보조 지역의 새 프로젝트에서 내보낸 프로젝트 자산을 가져옵니다.
가져오기 작업 제출
다음 요청의 자리 표시자를 첫 번째 단계에서 얻은 {SECONDARY-ENDPOINT}
및 {SECONDARY-RESOURCE-KEY}
로 바꿉니다.
다음 URL, 헤더 및 JSON 본문을 사용하여 POST 요청을 제출하여 프로젝트를 가져옵니다.
요청 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}
로 바꿉니다.
성공적인 프로젝트 가져오기 요청을 보내면 가져오기 작업 상태(엔드포인트, 프로젝트 이름 및 작업 ID 포함)를 확인하기 위한 전체 요청 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} |
내보내기 작업 상태를 찾기 위한 ID입니다. | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx |
{API-VERSION} |
호출하는 API의 버전입니다. | 2023-04-01 |
헤더
다음 헤더를 사용하여 요청을 인증합니다.
키 | 설명 | 값 |
---|---|---|
Ocp-Apim-Subscription-Key |
리소스의 키입니다. API 요청을 인증하는 데 사용됩니다. | {YOUR-PRIMARY-RESOURCE-KEY} |
응답 본문
요청을 보내면 다음과 같은 응답이 수신됩니다. status 매개 변수가 "succeeded"로 변경될 때까지 이 엔드포인트를 계속 폴링합니다.
{
"jobId": "xxxxx-xxxxx-xxxx-xxxxx",
"createdDateTime": "2022-04-18T15:17:20Z",
"lastUpdatedDateTime": "2022-04-18T15:17:22Z",
"expirationDateTime": "2022-04-25T15:17:20Z",
"status": "succeeded"
}
모델 학습
프로젝트를 가져온 후에 프로젝트의 자산과 메타데이터 및 자산만 복사했습니다. 여전히 모델을 학습시켜야 합니다. 이 경우 계정에서 사용량이 발생합니다.
학습 작업 제출
다음 요청의 자리 표시자를 첫 번째 단계에서 얻은 {SECONDARY-ENDPOINT}
및 {SECONDARY-RESOURCE-KEY}
로 바꿉니다.
다음 URL, 헤더 및 JSON 본문을 사용하여 POST 요청을 만들어 학습 작업을 제출합니다.
요청 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 |
참고 항목
Kind
가 percentage
로 설정되고 두 백분율의 합계가 100이어야 하는 경우에만 trainingSplitPercentage
및 testingSplitPercentage
가 필요합니다.
API 요청을 보내면 성공을 나타내는 202
응답을 받게 됩니다. 응답 헤더에서 operation-location
값을 추출합니다. 다음과 같이 형식이 지정됩니다.
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/train/jobs/{JOB-ID}?api-version={API-VERSION}
이 URL을 사용하여 학습 작업 상태를 가져올 수 있습니다.
학습 상태 가져오기
다음 요청의 자리 표시자를 첫 번째 단계에서 얻은 {SECONDARY-ENDPOINT}
및 {SECONDARY-RESOURCE-KEY}
로 바꿉니다.
성공적인 학습 요청을 보내면 작업의 상태 확인하기 위한 전체 요청 URL(엔드포인트, 프로젝트 이름 및 작업 ID 포함)이 응답의 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} |
모델의 학습 상태를 찾기 위한 ID입니다. | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx |
{API-VERSION} |
호출하는 API의 버전입니다. | 2023-04-01 |
헤더
다음 헤더를 사용하여 요청을 인증합니다.
키 | 값 |
---|---|
Ocp-Apim-Subscription-Key |
리소스의 키입니다. API 요청을 인증하는 데 사용됩니다. |
응답 본문
요청을 보내면 다음과 같은 응답을 받게 됩니다. status 매개 변수가 "succeeded"로 변경될 때까지 이 엔드포인트를 계속 폴링합니다.
{
"result": {
"modelLabel": "{MODEL-LABEL}",
"trainingConfigVersion": "{TRAINING-CONFIG-VERSION}",
"trainingMode": "{TRAINING-MODE}",
"estimatedEndDateTime": "2022-04-18T15:47:58.8190649Z",
"trainingStatus": {
"percentComplete": 3,
"startDateTime": "2022-04-18T15:45:06.8190649Z",
"status": "running"
},
"evaluationStatus": {
"percentComplete": 0,
"status": "notStarted"
}
},
"jobId": "xxxxx-xxxxx-xxxx-xxxxx-xxxx",
"createdDateTime": "2022-04-18T15:44:44Z",
"lastUpdatedDateTime": "2022-04-18T15:45:48Z",
"expirationDateTime": "2022-04-25T15:44:44Z",
"status": "running"
}
키 | 값 | 예제 |
---|---|---|
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 |
학습 작업 ID | 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}
로 바꿉니다.
다음 URL, 헤더 및 JSON 본문을 사용하여 PUT 요청을 만들어 대화형 언어 이해 모델 배포를 시작합니다.
요청 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}
로 바꿉니다.
성공적인 배포 요청을 보내면 작업 상태(엔드포인트, 프로젝트 이름 및 작업 ID 포함)를 확인하기 위한 전체 요청 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} |
모델의 학습 상태를 찾기 위한 ID입니다. | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx |
{API-VERSION} |
호출하는 API의 버전입니다. | 2023-04-01 |
헤더
다음 헤더를 사용하여 요청을 인증합니다.
키 | 값 |
---|---|
Ocp-Apim-Subscription-Key |
리소스의 키입니다. API 요청을 인증하는 데 사용됩니다. |
응답 본문
요청을 보내면 다음과 같은 응답이 수신됩니다. status 매개 변수가 "succeeded"로 변경될 때까지 이 엔드포인트를 계속 폴링합니다.
{
"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 |
헤더
다음 헤더를 사용하여 요청을 인증합니다.
키 | 설명 | 값 |
---|---|---|
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 작성에서 수행할 수 있는 다른 작업을 살펴봅니다.