LUIS용 Docker 컨테이너 설치 및 실행

Important

LUIS는 2025년 10월 1일에 사용 중지되며 2023년 4월 1일부터 새 LUIS 리소스를 만들 수 없습니다. 지속적인 제품 지원 및 다국어 기능을 활용하려면 LUIS 애플리케이션대화 언어 이해로 마이그레이션하는 것이 좋습니다.

참고 항목

컨테이너 이미지 위치가 최근에 변경되었습니다. 이 컨테이너의 업데이트된 위치를 보려면 이 문서를 참조하세요.

컨테이너를 사용하면 사용자 고유의 환경에서 LUIS를 사용할 수 있습니다. 컨테이너는 특정 보안 및 데이터 거버넌스 요구 사항에 적합합니다. 이 문서에서는 LUIS 컨테이너를 다운로드, 설치 및 실행하는 방법을 알아봅니다.

LUIS(Language Understanding) 컨테이너는 학습 또는 게시된 Language Understanding 모델을 로드합니다. LUIS 앱Docker 컨테이너는 컨테이너의 API 엔드포인트에서 쿼리 예측에 대한 액세스를 제공합니다. 컨테이너에서 쿼리 로그를 수집하고 이 로그를 Language Understanding 앱에 다시 업로드하여 앱의 예측 정확도를 개선할 수 있습니다.

다음 비디오는 이 컨테이너를 사용하는 방법을 보여줍니다.

Container demonstration for Azure AI services

Azure 구독이 아직 없는 경우 시작하기 전에 체험 계정을 만듭니다.

필수 조건

LUIS 컨테이너를 실행하려면 다음 사전 요구 사항을 확인하세요.

  • 호스트 컴퓨터에 설치된 Docker 입니다. Docker는 컨테이너에서 Azure에 연결하여 청구 데이터를 보낼 수 있도록 구성해야 합니다.
    • Windows에서 Docker는 Linux 컨테이너를 지원하도록 구성해야 합니다.
    • Docker 개념에 대한 기본적인 이해 가 있어야 합니다.
  • 무료(F0) 또는 표준(S) 가격 책정 계층이 있는 LUIS 리소스 입니다.
  • 연결된 앱 ID와 함께 컨테이너에 탑재된 입력으로 패키징된 학습되거나 게시된 앱. LUIS 포털 또는 작성 API에서 패키지된 파일을 가져올 수 있습니다. 작성 API에서 LUIS 패키징된 앱을 가져오는 경우에는 작성 키도 필요합니다.

필수 매개 변수 수집

모든 Azure AI 컨테이너에는 세 가지 기본 매개 변수가 필요합니다. Microsoft Software 사용 조건에는 동의 값이 있어야 합니다. 엔드포인트 URI 및 API 키도 필요합니다.

엔드포인트 URI

{ENDPOINT_URI} 값은 해당 Azure AI 서비스 리소스의 Azure Portal 개요 페이지에서 확인할 수 있습니다. 개요 페이지로 이동하여 마우스로 엔드포인트 위를 가리키면 클립보드로 복사 아이콘이 표시됩니다. 필요한 경우 엔드포인트를 복사하여 사용합니다.

Screenshot that shows gathering the endpoint URI for later use.

구성

{API_KEY} 값은 컨테이너를 시작하는 데 사용되며 해당 Azure AI 서비스 리소스에 대한 Azure portal의 페이지에서 사용할 수 있습니다. 페이지로 이동하여 클립보드로 복사 아이콘을 선택합니다.

Screenshot that shows getting one of the two keys for later use.

Important

이러한 구독 키는 Azure AI 서비스 API에 액세스하는 데 사용됩니다. 키를 공유하지 마세요. 안전하게 저장하세요. 예를 들어 Azure Key Vault를 사용합니다. 또한 이러한 키를 정기적으로 다시 생성하는 것이 좋습니다. API 호출을 수행하는 데는 키가 하나만 필요합니다. 첫 번째 키를 다시 생성하는 경우 두 번째 키를 사용하여 서비스에 계속 액세스할 수 있습니다.

앱 ID {APP_ID}

이 ID는 앱을 선택하는 데 사용됩니다. LUIS 포털에서 앱의 화면 맨 위에 있는 관리를 클릭한 다음 설정 앱 ID를 찾을 수 있습니다.

The screen for finding your app ID.

작성 키 {AUTHORING_KEY}

이 키는 클라우드에서 LUIS 서비스에서 패키징된 앱을 가져오는 데 사용되고 클라우드로 다시 쿼리 로그를 업로드하는 데 사용됩니다. 이 문서의 뒷부분에서 설명한 REST API를 사용하여 앱을 내보내는 경우 작성 키가 필요합니다.

앱의 화면 맨 위에 있는 관리를 클릭한 다음 Azure 리소스를 클릭하여 LUIS 포털에서 작성 키를 가져올 수 있습니다.

The screen for finding your authoring resource key.

패키지 파일에 대한 API 작성

패키지된 앱에 대한 API 작성:

호스트 컴퓨터

호스트는 Docker 컨테이너를 실행하는 x64 기반 컴퓨터입니다. 다음과 같이 온-프레미스의 컴퓨터 또는 Azure의 Docker 호스팅 서비스일 수 있습니다.

컨테이너 요구 사항 및 추천

아래 표에서는 컨테이너 호스트에 대한 최소 및 권장 값을 나열합니다. 트래픽 볼륨에 따라 요구 사항이 변경 될 수 있습니다.

컨테이너 최소 권장 TPS
(최소, 최대)
LUIS 1코어, 2GB 메모리 1코어, 4GB 메모리 20, 40
  • 각 코어는 속도가 2.6GHz 이상이어야 합니다.
  • TPS - 초당 트랜잭션 수

docker run 명령의 일부로 사용되는 --cpus--memory 설정에 해당하는 코어 및 메모리.

docker pull을 사용하여 컨테이너 이미지 가져오기

LUIS 컨테이너 이미지는 컨테이너 레지스트리 신디케이트에서 mcr.microsoft.com 찾을 수 있습니다. azure-cognitive-services/language 리포지토리 내에 있으며 이름은 luis입니다. 전체 컨테이너 이미지 이름은 mcr.microsoft.com/azure-cognitive-services/language/luis입니다.

최신 버전의 컨테이너를 사용하려면 태그를 latest 사용할 수 있습니다. MCR에서 태그의 전체 목록을 찾을 수도 있습니다.

docker pull 명령을 사용하여 mcr.microsoft.com/azure-cognitive-services/language/luis리포지토리에서 컨테이너 이미지를 다운로드합니다.

docker pull mcr.microsoft.com/azure-cognitive-services/language/luis:latest

사용 가능한 태그에 대한 전체 설명은 이전 명령에서 사용되는 latest처럼 Docker 허브에서 LUIS를 참조하세요.

docker images 명령을 사용하여 다운로드한 컨테이너 이미지를 나열할 수 있습니다. 예를 들어 다음 명령은 다운로드한 각 컨테이너 이미지의 ID, 리포지토리 및 태그를 테이블 형식으로 나열합니다.

docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"

IMAGE ID         REPOSITORY                TAG
<image-id>       <repository-path/name>    <tag-name>

컨테이너사용 방법

컨테이너가 호스트 컴퓨터에 있으면 다음 프로세스를 사용하여 컨테이너 작업을 수행합니다.

Process for using Language Understanding (LUIS) container

  1. LUIS 포털 또는 LUIS API에서 컨테이너에 대한 패키지 내보내기
  2. 호스트 컴퓨터에서 패키지 파일을 필수 입력 디렉터리로 이동합니다. LUIS 패키지 파일의 이름을 바꾸거나 변경하거나 덮어쓰거나 압축을 풉니다.
  3. 필수 입력 탑재 및 청구 설정을 사용하여 컨테이너를 실행합니다. docker run 명령의 자세한 를 사용할 수 있습니다.
  4. 컨테이너의 예측 엔드포인트를 쿼리합니다.
  5. 컨테이너를 사용하고 나면 LUIS 포털의 출력 탑재에서 엔드포인트 로그를 가져오고 컨테이너를 중지합니다.
  6. 엔드포인트 발화 검토 페이지에서 LUIS 포털의 활성 학습을 사용하여 앱을 개선합니다.

컨테이너에서 실행되는 앱은 변경할 수 없습니다. 컨테이너에서 앱을 변경하려면 LUIS 포털을 사용하는 LUIS 서비스에서 앱을 변경하거나 LUIS 작성 API를 사용해야 합니다. 그 다음 학습 및/또는 게시한 다음, 새 패키지를 다운로드하고 컨테이너를 다시 실행합니다.

컨테이너 내에서 LUIS 앱은 LUIS 서비스로 다시 내보낼 수 없습니다. 쿼리 로그만 업로드할 수 있습니다.

LUIS에서 패키징된 앱 내보내기

LUIS 컨테이너는 사용자 발화의 예측 쿼리에 응답하기 위해 학습된 또는 게시된 LUIS 앱이 필요합니다. LUIS 앱을 사용하려면 학습된 또는 게시된 패키지 API 중 하나를 사용합니다.

기본 위치는 docker run 명령을 실행하는 위치를 기준으로 input하위 디렉터리입니다.

패키지 파일을 디렉터리에 배치하여 Docker 컨테이너를 실행하는 경우 입력 탑재로 이 디렉터리를 참조합니다.

패키지 형식

입력 탑재 디렉터리에는 앱의 프로덕션, 스테이징버전 관리 모델이 동시에 포함될 수 있습니다. 모든 패키지는 탑재되어 있습니다.

패키지 형식 쿼리 엔드포인트 API 쿼리 가용성 패키지 파일 이름 형식
버전 지정 가져오기, 게시 컨테이너만 {APP_ID}_v{APP_VERSION}.gz
준비 가져오기, 게시 Azure 및 컨테이너 {APP_ID}_STAGING.gz
생산 가져오기, 게시 Azure 및 컨테이너 {APP_ID}_PRODUCTION.gz

Important

LUIS 패키지 파일의 이름을 바꾸거나, 변경하거나, 덮어쓰거나, 압축을 풀지 마세요.

패키징 필수 구성 요소

LUIS 애플리케이션을 패키징 전에 다음이 필요 합니다.

패키징 요구 사항 세부 정보
Azure Azure AI 서비스 리소스 인스턴스 지원되는 지역은 다음을 포함합니다.

미국 서부(westus)
서유럽(westeurope)
오스트레일리아 동부(australiaeast)
학습된 또는 게시된 LUIS 앱 지원되지 않는 종속성이 없습니다.
호스트 컴퓨터의 파일 시스템에 액세스 호스트 컴퓨터는 입력 탑재를 허용해야 합니다.

LUIS 포털에서 앱 패키지 내보내기

LUIS 포털은 학습된 또는 게시 된 앱의 패키지를 내보내는 기능을 제공합니다.

LUIS 포털에서 게시된 앱의 패키지 내보내기

게시된 앱의 패키지는 내 앱 목록 페이지에서 사용할 수 있습니다.

  1. LUIS 포털에 로그인합니다.
  2. 목록에서 앱 이름의 왼쪽에 있는 확인란을 선택합니다.
  3. 목록 위에 있는 컨텍스트 도구 모음에서 내보내기 항목을 선택합니다.
  4. 컨테이너에 대한 내보내기(GZIP)를 선택합니다.
  5. 프로덕션 슬롯 또는 스테이징 슬롯의 환경을 선택합니다.
  6. 패키지가 브라우저에서 다운로드됩니다.

Export the published package for the container from the App page's Export menu

LUIS 포털에서 버전이 지정된 앱 패키지 내보내기

버전이 지정된 앱의 패키지는 버전 목록 페이지에서 사용할 수 있습니다.

  1. LUIS 포털에 로그인합니다.
  2. 목록에서 앱을 선택 합니다.
  3. 앱의 탐색 모음에서 관리를 선택합니다.
  4. 왼쪽 탐색 모음에서 버전을 선택합니다.
  5. 목록에서 버전 이름의 왼쪽에 있는 확인란을 선택합니다.
  6. 목록 위에 있는 컨텍스트 도구 모음에서 내보내기 항목을 선택합니다.
  7. 컨테이너에 대한 내보내기(GZIP)를 선택합니다.
  8. 패키지가 브라우저에서 다운로드됩니다.

Export the trained package for the container from the Versions page's Export menu

API에서 게시된 앱의 패키지 내보내기

다음 REST API 메서드를 사용하여 이미 게시된 LUIS 앱을 패키징합니다. HTTP 사양 아래의 테이블을 사용하여 API 호출에서 자리 표시자에 대한 사용자 고유 값을 대체합니다.

GET /luis/api/v2.0/package/{APP_ID}/slot/{SLOT_NAME}/gzip HTTP/1.1
Host: {AZURE_REGION}.api.cognitive.microsoft.com
Ocp-Apim-Subscription-Key: {AUTHORING_KEY}
자리 표시자
{APP_ID} 게시된 LUIS 앱의 애플리케이션 ID입니다.
{SLOT_NAME} 게시된 LUIS 앱의 환경입니다. 다음 값 중 하나를 사용합니다.
PRODUCTION
STAGING
{AUTHORING_KEY} 게시된 LUIS 앱에 대한 LUIS 계정의 작성 키입니다.
LUIS 포털의 사용자 설정 페이지에서 작성 키를 가져올 수 있습니다.
{AZURE_REGION} 해당 Azure 지역:

westus - 미국 서부
westeurope - 서유럽
australiaeast - 오스트레일리아 동부

게시된 패키지를 다운로드하려면 여기에서 API 설명서를 참조 하세요. 성공적으로 다운로드한 경우 응답은 LUIS 패키지 파일입니다. 컨테이너의 입력 탑재에 대한 지정된 스토리지 위치에 파일을 저장합니다.

API에서 버전이 지정된 앱의 패키지 내보내기

다음 REST API 메서드를 사용하여 이미 학습된 LUIS 애플리케이션을 패키징합니다. HTTP 사양 아래의 테이블을 사용하여 API 호출에서 자리 표시자에 대한 사용자 고유 값을 대체합니다.

GET /luis/api/v2.0/package/{APP_ID}/versions/{APP_VERSION}/gzip HTTP/1.1
Host: {AZURE_REGION}.api.cognitive.microsoft.com
Ocp-Apim-Subscription-Key: {AUTHORING_KEY}
자리 표시자
{APP_ID} 학습된 LUIS 앱의 애플리케이션 ID입니다.
{APP_VERSION} 학습된 LUIS 앱의 애플리케이션 버전입니다.
{AUTHORING_KEY} 게시된 LUIS 앱에 대한 LUIS 계정의 작성 키입니다.
LUIS 포털의 사용자 설정 페이지에서 작성 키를 가져올 수 있습니다.
{AZURE_REGION} 해당 Azure 지역:

westus - 미국 서부
westeurope - 서유럽
australiaeast - 오스트레일리아 동부

버전이 지정된 패키지를 다운로드하려면 여기에서 API 설명서를 참조 하세요. 성공적으로 다운로드한 경우 응답은 LUIS 패키지 파일입니다. 컨테이너의 입력 탑재에 대한 지정된 스토리지 위치에 파일을 저장합니다.

docker run을 사용하여 컨테이너 실행

docker run 명령을 사용하여 컨테이너를 실행합니다. {ENDPOINT_URI}{API_KEY} 값을 가져오는 방법에 대한 자세한 내용은 필수 매개 변수 수집을 참조하세요.

docker run 명령의 를 사용할 수 있습니다.

docker run --rm -it -p 5000:5000 ^
--memory 4g ^
--cpus 2 ^
--mount type=bind,src=c:\input,target=/input ^
--mount type=bind,src=c:\output\,target=/output ^
mcr.microsoft.com/azure-cognitive-services/language/luis ^
Eula=accept ^
Billing={ENDPOINT_URI} ^
ApiKey={API_KEY}
  • 이 예제에서는 드라이브의 C: 디렉터리를 사용하여 Windows에서 사용 권한 충돌을 방지합니다. 입력 디렉터리로 특정 디렉터리를 사용해야 할 경우 Docker 서비스 권한을 받아야 할 수도 있습니다.
  • Docker 컨테이너 사용법을 잘 아는 경우가 아니라면 인수 순서를 변경하지 마세요.
  • 다른 운영 체제를 사용하는 경우 올바른 콘솔/터미널, 탑재에 대한 폴더 구문 및 시스템의 줄 연속 문자를 사용합니다. 이러한 예제에서는 줄 연속 문자 ^가 있는 Windows 콘솔을 가정합니다. 컨테이너는 Linux 운영 체제이므로 대상 탑재에서는 Linux 스타일 폴더 구문을 사용합니다.

이 명령은 다음을 수행합니다.

  • LUIS 컨테이너 이미지에서 컨테이너를 실행합니다.
  • 컨테이너 호스트에 위치한 C:\input의 입력 탑재에서 LUIS 앱을 로드합니다.
  • CPU 코어 두 개 및 4GB 메모리를 할당합니다.
  • 5000 TCP 포트 표시 및 컨테이너에 의사-TTY 할당
  • 컨테이너 및 LUIS 로그를 컨테이너 호스트에 있는 C:\output의 출력 탑재에 저장합니다.
  • 종료 후 자동으로 컨테이너를 제거합니다. 컨테이너 이미지는 호스트 컴퓨터에서 계속 사용할 수 있습니다.

docker run 명령의 자세한 를 사용할 수 있습니다.

Important

컨테이너를 인스턴스화하려면 Eula, BillingApiKey 옵션을 지정해야 합니다. 그렇지 않으면 컨테이너가 시작되지 않습니다. 자세한 내용은 Billing을 참조하세요. ApiKey 값은 LUIS 포털의 Azure 리소스 페이지에서 키이며 Azure Azure AI services 리소스 키 페이지에서도 사용할 수 있습니다.

동일한 호스트에서 여러 컨테이너 실행

노출된 포트를 사용하여 여러 컨테이너를 실행하려는 경우 노출된 포트가 다른 각 컨테이너를 실행해야 합니다. 예를 들어 첫 번째 컨테이너는 포트 5000에서 실행하고 두 번째 컨테이너는 포트 5001에서 실행합니다.

이 컨테이너와 다른 Azure AI 서비스 컨테이너를 HOST에서 함께 실행할 수 있습니다. 동일한 Azure AI 서비스 컨테이너의 여러 컨테이너를 실행할 수도 있습니다.

컨테이너에서 지원하는 엔드포인트 API

V2 및 V3 버전의 API는 모두 컨테이너에서 사용할 수 있습니다.

컨테이너의 예측 엔드포인트 쿼리

컨테이너는 REST 기반 쿼리 예측 엔드포인트 API를 제공합니다. 게시된(스테이징 또는 프로덕션) 앱에 대한 엔드포인트는 버전 지정된 앱에 대한 엔드포인트와 경로가 다릅니다.

컨테이너 API에 대한 호스트 http://localhost:5000을 사용합니다.

패키지 형식 HTTP 동사 경로 쿼리 매개 변수
게시된 날짜 가져오기, 게시 /luis/v3.0/apps/{appId}/slots/{slotName}/predict? /luis/prediction/v3.0/apps/{appId}/slots/{slotName}/predict? query={query}
[&verbose]
[&log]
[&show-all-intents]
버전 지정 가져오기, 게시 /luis/v3.0/apps/{appId}/versions/{versionId}/predict? /luis/prediction/v3.0/apps/{appId}/versions/{versionId}/predict query={query}
[&verbose]
[&log]
[&show-all-intents]

쿼리 매개 변수는 쿼리 응답에 반환되는 방법 및 내용을 구성합니다.

쿼리 매개 변수 Type 목적
query string 사용자의 발화입니다.
verbose 부울 값 예측된 모델에 대한 모든 메타데이터를 반환할지 여부를 나타내는 부울 값입니다. 기본값은 false입니다.
log 부울 값 활성 학습에 대해 나중에 사용할 수 있는 로그 쿼리입니다. 기본값은 false입니다.
show-all-intents 부울 값 모든 의도를 반환할지 아니면 상위 채점 의도만 반환할지를 나타내는 부울 값입니다. 기본값은 false입니다.

LUIS 앱 쿼리

게시된 앱에 대한 컨테이너를 쿼리하는 CURL 명령 예입니다.

슬롯에서 모델을 쿼리하려면 다음 API를 사용합니다.

curl -G \
-d verbose=false \
-d log=true \
--data-urlencode "query=turn the lights on" \
"http://localhost:5000/luis/v3.0/apps/{APP_ID}/slots/production/predict"

스테이징 환경에 대한 쿼리를 만들려면 경로에서 다음으로 staging바꿉 production 니다.

http://localhost:5000/luis/v3.0/apps/{APP_ID}/slots/staging/predict

버전이 지정된 모델을 쿼리하려면 다음 API를 사용합니다.

curl -G \
-d verbose=false \
-d log=false \
--data-urlencode "query=turn the lights on" \
"http://localhost:5000/luis/v3.0/apps/{APP_ID}/versions/{APP_VERSION}/predict"

활성 학습에 대한 엔드포인트 로그 가져오기

LUIS 컨테이너에 대해 출력 탑재를 지정하면 앱 쿼리 로그 파일이 출력 디렉터리에 저장됩니다. 여기서 컨테이너 ID는 다음과 {INSTANCE_ID} 같습니다. 앱 쿼리 로그는 LUIS 컨테이너에 제출된 각 예측 쿼리에 대한 쿼리, 응답 및 타임스탬프를 포함합니다.

다음 위치는 컨테이너의 로그 파일에 대한 중첩 된 디렉터리 구조를 보여줍니다.

/output/luis/{INSTANCE_ID}/

LUIS 포털에서 앱을 선택한 다음, 엔드포인트 로그 가져오기를 선택하여 이 로그를 업로드합니다.

Import container's log files for active learning

로그를 업로드한 후 LUIS 포털에서 엔드포인트 발화를 검토합니다.

컨테이너가 실행 중인지 확인

컨테이너가 실행 중인지 확인하는 방법에는 여러 가지가 있습니다. 해당 컨테이너의 외부 IP 주소 및 노출된 포트를 찾고 즐겨찾는 웹 브라우저를 엽니다. 아래의 다양한 요청 URL을 사용하여 컨테이너가 실행되는지 확인합니다. 여기에 나열된 예제 요청 URL은 http://localhost:5000이지만, 특정 컨테이너는 다를 수 있습니다. 컨테이너의 외부 IP 주소 및 공개된 포트를 사용해야 합니다.

요청 URL 용도
http://localhost:5000/ 컨테이너는 홈페이지를 제공합니다.
http://localhost:5000/ready GET을 사용하여 요청된 이 URL에서 컨테이너가 모델에 대한 쿼리를 수락할 준비가 되었음을 확인합니다. 이 요청은 Kubernetes 활동성 및 준비 상태 프로브에 사용할 수 있습니다.
http://localhost:5000/status 또한 GET을 사용하여 요청된 이 URL은 컨테이너를 시작하는 데 사용된 API 키가 엔드포인트 쿼리를 수행하지 않고 유효한지 확인합니다. 이 요청은 Kubernetes 활동성 및 준비 상태 프로브에 사용할 수 있습니다.
http://localhost:5000/swagger 컨테이너는 엔드포인트에 대한 전체 설명서 세트와 사용해 보기 기능을 제공합니다. 이 기능을 사용하면 코드를 작성하지 않고도 웹 기반 HTML 양식에 설정을 입력하고 쿼리를 만들 수 있습니다. 쿼리가 반환되면 필요한 HTTP 헤더 및 본문 형식을 보여 주는 예제 CURL 명령이 제공됩니다.

Container's home page

인터넷 연결이 끊어진 컨테이너 실행

인터넷에서 연결이 끊긴 이 컨테이너를 사용하려면 먼저 신청서를 작성하고 약정 플랜을 구매하여 액세스를 요청해야 합니다. 자세한 내용은 연결되지 않은 환경에서 Docker 컨테이너 사용을 참조하세요.

인터넷 연결이 끊어진 컨테이너를 실행하도록 승인된 경우 자리 표시자 값과 함께 사용할 docker run 명령의 형식을 보여주는 다음 예를 사용하세요. 이러한 자리 표시자 값을 고유한 값으로 바꿉니다.

docker run 명령의 DownloadLicense=True 매개 변수는 Docker 컨테이너가 인터넷에 연결되어 있지 않을 때 실행할 수 있도록 하는 라이선스 파일을 다운로드합니다. 또한 만료 날짜가 포함되어 있으며 이후에는 라이선스 파일이 컨테이너를 실행할 수 없게 됩니다. 승인된 적절한 컨테이너에만 라이선스 파일을 사용할 수 있습니다. 예를 들어 문서 인텔리전스 컨테이너가 있는 음성 텍스트 변환 컨테이너에는 라이선스 파일을 사용할 수 없습니다.

자리 표시자 형식 또는 예
{IMAGE} 사용하려는 컨테이너 이미지입니다. mcr.microsoft.com/azure-cognitive-services/form-recognizer/invoice
{LICENSE_MOUNT} 라이선스가 다운로드되고 탑재될 경로입니다. /host/license:/path/to/license/directory
{ENDPOINT_URI} 서비스 요청을 인증하기 위한 엔드포인트입니다. Azure Portal의 리소스 키 및 엔드포인트 페이지에서 이 값을 찾을 수 있습니다. https://<your-custom-subdomain>.cognitiveservices.azure.com
{API_KEY} Text Analytics 리소스의 키입니다. Azure Portal의 리소스 키 및 엔드포인트 페이지에서 이 값을 찾을 수 있습니다. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
{CONTAINER_LICENSE_DIRECTORY} 컨테이너의 로컬 파일 시스템에 있는 라이선스 폴더의 위치입니다. /path/to/license/directory
docker run --rm -it -p 5000:5000 \ 
-v {LICENSE_MOUNT} \
{IMAGE} \
eula=accept \
billing={ENDPOINT_URI} \
apikey={API_KEY} \
DownloadLicense=True \
Mounts:License={CONTAINER_LICENSE_DIRECTORY} 

라이선스 파일이 다운로드되면 연결이 끊긴 환경에서 컨테이너를 실행할 수 있습니다. 다음 예는 자리 표시자 값과 함께 사용할 docker run 명령의 형식을 보여 줍니다. 이러한 자리 표시자 값을 고유한 값으로 바꿉니다.

컨테이너가 실행되는 곳마다 라이선스 파일을 컨테이너에 탑재해야 하며 컨테이너의 로컬 파일 시스템에서 라이선스 폴더의 위치를 Mounts:License=로 지정해야 합니다. 청구 사용량 기록을 작성할 수 있도록 출력 탑재도 지정해야 합니다.

자리 표시자 형식 또는 예
{IMAGE} 사용하려는 컨테이너 이미지입니다. mcr.microsoft.com/azure-cognitive-services/form-recognizer/invoice
{MEMORY_SIZE} 컨테이너에 할당할 적절한 메모리 크기입니다. 4g
{NUMBER_CPUS} 컨테이너에 할당할 적절한 CPU 수입니다. 4
{LICENSE_MOUNT} 라이선스를 찾고 탑재할 경로입니다. /host/license:/path/to/license/directory
{OUTPUT_PATH} 사용량 기록 로깅을 위한 출력 경로입니다. /host/output:/path/to/output/directory
{CONTAINER_LICENSE_DIRECTORY} 컨테이너의 로컬 파일 시스템에 있는 라이선스 폴더의 위치입니다. /path/to/license/directory
{CONTAINER_OUTPUT_DIRECTORY} 컨테이너의 로컬 파일 시스템에 있는 출력 폴더의 위치입니다. /path/to/output/directory
docker run --rm -it -p 5000:5000 --memory {MEMORY_SIZE} --cpus {NUMBER_CPUS} \ 
-v {LICENSE_MOUNT} \ 
-v {OUTPUT_PATH} \
{IMAGE} \
eula=accept \
Mounts:License={CONTAINER_LICENSE_DIRECTORY}
Mounts:Output={CONTAINER_OUTPUT_DIRECTORY}

컨테이너 중지

컨테이너를 종료하려면 컨테이너를 실행하는 명령줄 환경에서 Ctrl + C를 누릅니다.

문제 해결

출력 탑재 및 활성화된 로깅을 사용하여 컨테이너를 실행하는 경우 컨테이너는 컨테이너를 시작 또는 실행하는 동안 발생하는 문제를 해결하는 데 도움이 되는 로그 파일을 생성합니다.

자세한 문제 해결 정보 및 지침은 Azure AI 컨테이너 FAQ(자주 묻는 질문)를 참조하세요.

Azure AI 서비스 컨테이너를 실행하는 데 문제가 있는 경우 Microsoft 진단 컨테이너를 사용해 볼 수 있습니다. 이 컨테이너를 사용하여 Azure AI 컨테이너가 예상대로 작동하지 못하게 할 수 있는 배포 환경의 일반적인 오류를 진단합니다.

컨테이너를 가져오려면 다음 docker pull 명령을 사용합니다.

docker pull mcr.microsoft.com/azure-cognitive-services/diagnostic

그런 다음, 컨테이너를 실행합니다. {ENDPOINT_URI}를 엔드포인트로 바꾸고, {API_KEY}를 리소스에 대한 키로 바꿉니다.

docker run --rm mcr.microsoft.com/azure-cognitive-services/diagnostic \
eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}

컨테이너는 청구 엔드포인트에 대한 네트워크 연결을 테스트 합니다.

결제

LUIS 컨테이너는 Azure 계정의 Azure AI 서비스 리소스를 사용하여 청구 정보를 Azure에 보냅니다.

컨테이너에 대한 쿼리는 ApiKey 매개 변수에 사용되는 Azure 리소스의 가격 책정 계층으로 청구됩니다.

Azure AI 서비스 컨테이너는 측정 또는 청구 엔드포인트에 연결하지 않고 실행할 수 있는 라이선스가 부여되지 않습니다. 사용자는 컨테이너가 항상 청구 엔드포인트와 청구 정보를 통신할 수 있도록 설정해야 합니다. Azure AI 서비스 컨테이너는 분석 중인 이미지나 텍스트와 같은 고객 데이터를 Microsoft에 보내지 않습니다.

Azure에 연결

컨테이너에는 실행할 청구 인수 값이 필요합니다. 이러한 값을 사용하면 컨테이너가 청구 엔드포인트에 연결할 수 있습니다. 컨테이너는 약 10 ~ 15분마다 사용량을 보고합니다. 컨테이너가 허용된 기간 내에 Azure에 연결되지 않는 경우 컨테이너는 계속 실행되지만 청구 엔드포인트가 복원될 때까지 쿼리를 제공하지 않습니다. 연결은 10~15분의 동일한 시간 간격으로 10번 시도됩니다. 10회 시도 내에서 청구 엔드포인트에 연결할 수 없는 경우 컨테이너는 요청 제공을 중지합니다. 청구를 위해 Microsoft로 전송되는 정보의 예는 Azure AI 서비스 컨테이너 FAQ를 참조하세요.

청구 인수

docker run 다음 세 가지 옵션 모두에 유효한 값이 제공되면 명령이 컨테이너를 시작합니다.

옵션 설명
ApiKey 청구 정보를 추적하는 데 사용되는 Azure AI 서비스 리소스의 API 키입니다.
이 옵션의 값은 에 지정된 프로비전된 리소스에 대한 API 키로 Billing설정해야 합니다.
Billing 청구 정보를 추적하는 데 사용되는 Azure AI 서비스 리소스의 엔드포인트입니다.
이 옵션의 값은 프로비전된 Azure 리소스의 엔드포인트 URI로 설정해야 합니다.
Eula 컨테이너에 대한 라이선스를 수락했음을 나타냅니다.
이 옵션의 값은 동의로 설정해야 합니다.

이러한 옵션에 대한 자세한 내용은 컨테이너 구성을 참조하세요.

요약

이 문서에서는 LUIS(Language Understanding) 컨테이너를 다운로드, 설치 및 실행하기 위한 개념과 워크플로를 알아보았습니다. 요약:

  • LUIS(language Understanding)는 발화의 엔드포인트 쿼리를 예측하는 Docker용 Linux 컨테이너 하나를 제공합니다.
  • 컨테이너 이미지는 Microsoft 컨테이너 레지스트리(MCR)에서 다운로드됩니다.
  • 컨테이너 이미지는 Docker에서 실행됩니다.
  • 컨테이너의 호스트 URI를 지정함으로써 REST API를 사용하여 컨테이너 엔드포인트를 쿼리할 수 있습니다.
  • 컨테이너를 인스턴스화할 때 청구 정보를 지정해야 합니다.

Important

Azure AI 컨테이너는 측정을 위해 Azure에 연결하지 않고 실행할 수 있는 라이선스가 부여되지 않습니다. 고객은 컨테이너에서 항상 계량 서비스와 청구 정보를 통신할 수 있도록 설정해야 합니다. Azure AI 컨테이너는 고객 데이터(예: 분석 중인 이미지 또는 텍스트)를 Microsoft에 보내지 않습니다.

다음 단계