다음을 통해 공유


문서 인텔리전스 컨테이너 구성

컨테이너에 대한 지원은 현재 모든 모델의 경우 문서 인텔리전스 버전 2022-08-31 (GA)에서 제공되고 읽기, 레이아웃, 청구서, 영수증 및 ID 문서 모델의 경우 2023-07-31 (GA)에서 제공됩니다.

✔️ 지원되는 컨테이너 설명서는 문서 인텔리전스 v3.0 컨테이너 구성을 참조하세요.

이 콘텐츠의 적용 대상은 다음과 같습니다.확인 표시v3.0(GA)확인 표시v3.1(GA)

문서 인텔리전스 컨테이너를 사용하면 강력한 클라우드 기능과 에지 지역성을 모두 활용하도록 최적화된 애플리케이션 아키텍처를 빌드할 수 있습니다. 컨테이너는 온-프레미스 및 클라우드에 쉽게 배포할 수 있는 최소한의 격리된 환경을 제공합니다. 이 문서에서는 docker compose 명령 인수를 사용하여 문서 인텔리전스 컨테이너 런타임 환경을 구성하는 방법을 알아봅니다. 문서 인텔리전스 기능은 읽기, 레이아웃, 명함,ID 문서, 영수증, 청구서, 사용자 지정이라는 7가지 문서 인텔리전스 컨테이너에서 지원합니다. 이러한 컨테이너에는 필수 설정과 선택적 설정이 모두 있습니다. 몇 가지 예는 docker-compose.yml 파일 예 섹션을 참조하세요.

구성 설정

각 컨테이너에는 다음 구성 설정이 있습니다.

Required 설정 목적
Key 청구 정보를 추적합니다.
Billing Azure에서 서비스 리소스의 엔드포인트 URI를 지정합니다. 자세한 내용은 청구참조하세요. 자세한 내용과 지역 엔드포인트의 전체 목록은 Azure AI 서비스에 대한 사용자 지정 하위 도메인 이름참조하세요.
Eula 컨테이너에 대한 라이선스에 동의했음을 나타냅니다.
아니요 ApplicationInsights 컨테이너의 Azure Application Insights 고객 지원을 추가할 수 있습니다.
아니요 Fluentd 로그 및 메트릭 데이터(선택 사항)를 Fluentd 서버에 씁니다.
아니요 HTTP 프록시 아웃바운드 요청을 만들기 위한 HTTP 프록시를 구성합니다.
아니요 로깅 컨테이너에 대한 ASP.NET Core 로깅 지원을 제공합니다.

Important

Key, Billing, Eula 설정은 함께 사용됩니다. 세 가지 설정 모두에 대해 유효한 값을 제공해야 합니다. 그러지 않으면 컨테이너가 시작되지 않습니다. 이러한 구성 설정을 사용하여 컨테이너를 인스턴스화하는 방법에 대한 자세한 내용은 청구를 참조하세요.

키 및 청구 구성 설정

Key 설정은 컨테이너의 청구 정보를 추적하는 데 사용되는 Azure 리소스 키를 지정합니다. 키 값은 "청구 구성 설정" 섹션에 있는 Billing에 지정된 리소스에 대한 유효한 키여야 합니다.

Billing 설정은 컨테이너의 청구 정보를 측정하는 데 사용되는 Azure의 리소스에 대한 엔드포인트 URI를 지정합니다. 이 구성 설정의 값은 Azure의 리소스에 대한 유효한 엔드포인트 URI여야 합니다. 컨테이너는 약 10 ~ 15분마다 사용량을 보고합니다.

Azure Portal의 키 및 엔드포인트 페이지에서 이러한 설정을 찾을 수 있습니다.

Azure Portal 키 및 엔드포인트 페이지 스크린샷.

EULA 설정

Eula 설정은 컨테이너에 대한 라이선스에 동의했음을 나타냅니다. 이 구성 설정에 대한 값을 지정해야 하며, 이 값은 accept로 설정해야 합니다.

Required 이름 데이터 유형 설명
Eula 문자열 라이선스 승인

예시:
Eula=accept

Azure AI 서비스 컨테이너는 Azure 사용에 관한 계약에 따라 라이선스가 부여됩니다. Azure 사용에 관한 기존 계약이 없으면 Azure 사용에 관한 계약은 온라인 서비스 사용 약관을 포함한 Microsoft 온라인 정기가입 계약임에 동의합니다. 미리 보기의 경우 Microsoft Azure 미리 보기에 대한 추가 사용 약관에도 동의합니다. 컨테이너를 사용하여 이 사용 약관에 동의합니다.

ApplicationInsights 설정

ApplicationInsights 설정으로 Azure Application Insights 원격 분석 지원을 컨테이너에 추가할 수 있습니다. Application Insights는 컨테이너의 심층 모니터링을 제공합니다. 컨테이너의 가용성, 성능 및 사용량을 쉽게 모니터링할 수 있습니다. 또한 컨테이너의 오류를 빠르게 식별하고 진단할 수 있습니다.

다음 표에서는 ApplicationInsights 섹션에서 지원되는 구성 설정을 설명합니다.

Required 이름 데이터 유형 설명
아니요 InstrumentationKey 문자열 컨테이너에 대한 원격 분석 데이터가 전송되는 Application Insights 인스턴스의 계측 키입니다. 자세한 내용은 ASP.NET Core용 Application Insights를 참조하세요.

예시:
InstrumentationKey=123456789

Fluentd 설정

Fluentd는 통합된 로깅에 대한 오픈 소스 데이터 수집기입니다. Fluentd 설정은 Fluentd 서버에 컨테이너의 연결을 관리합니다. 컨테이너에는 Fluentd 로깅 공급자가 포함되어 있어 컨테이너에서 로그 및 메트릭 데이터(선택 사항)를 Fluentd 서버에 쓸 수 있습니다.

다음 표에서는 Fluentd 섹션에서 지원되는 구성 설정을 설명합니다.

이름 데이터 유형 설명
Host 문자열 Fluentd 서버의 IP 주소 또는 DNS 호스트 이름입니다.
Port 정수 Fluentd 서버의 포트입니다.
기본값은 24224입니다.
HeartbeatMs 정수 하트비트 간격(밀리초)입니다. 이 간격이 만료되기 전에 전송된 이벤트 트래픽이 없을 경우 하트 비트는 Fluentd 서버로 전송됩니다. 기본값은 60000밀리초(1분)입니다.
SendBufferSize 정수 전송 작업에 할당된 네트워크 버퍼 공간(바이트)입니다. 기본값은 32768바이트(32킬로바이트)입니다.
TlsConnectionEstablishmentTimeoutMs 정수 Fluentd 서버와 SSL/TLS 연결을 설정하기 위한 시간 제한(밀리초)입니다. 기본값은 10000밀리초(10초)입니다.
UseTLS가 false로 설정되어 있는 경우 이 값은 무시됩니다.
UseTLS 부울 컨테이너가 Fluentd 서버와 통신하기 위해 SSL/TLS를 사용해야 하는지 여부를 나타냅니다. 기본값은 false입니다.

HTTP 프록시 자격 증명 설정

아웃바운드 요청을 만들기 위한 HTTP 프록시를 구성해야 하는 경우 다음 두 인수를 사용합니다.

이름 데이터 유형 설명
HTTP_PROXY string 사용할 프록시(예: http://proxy:8888)
<proxy-url>
HTTP_PROXY_CREDS string 프록시를 인증하는 데 필요한 자격 증명(예: username:password). 이 값은 소문자여야 합니다.
<proxy-user> string 프록시 사용자입니다.
<proxy-password> string 프록시에 대해 <proxy-user>에 연결된 암호입니다.
docker run --rm -it -p 5000:5000 \
--memory 2g --cpus 1 \
--mount type=bind,src=/home/azureuser/output,target=/output \
<registry-location>/<image-name> \
Eula=accept \
Billing=<endpoint> \
ApiKey=<api-key> \
HTTP_PROXY=<proxy-url> \
HTTP_PROXY_CREDS=<proxy-user>:<proxy-password> \

로깅 설정

Logging 설정은 컨테이너에 대한 ASP.NET Core 로깅 지원을 관리합니다. ASP.NET Core 애플리케이션에 사용하는 컨테이너에 대한 동일한 구성 설정 및 값을 사용할 수 있습니다.

컨테이너에서 지원되는 로깅 공급자는 다음과 같습니다.

공급자 목적
콘솔 ASP.NET Core Console 로깅 공급자입니다. 이 로깅 공급자에 대한 모든 ASP.NET Core 구성 설정 및 기본값이 지원됩니다.
디버그 ASP.NET Core Debug 로깅 공급자입니다. 이 로깅 공급자에 대한 모든 ASP.NET Core 구성 설정 및 기본값이 지원됩니다.
디스크 JSON 로깅 공급자입니다. 이 로깅 공급자는 출력 탑재에 로그 데이터를 씁니다.

이 컨테이너 명령은 출력 탑재에 대한 JSON 형식의 로깅 정보를 저장합니다.

docker run --rm -it -p 5000:5000 \
--memory 2g --cpus 1 \
--mount type=bind,src=/home/azureuser/output,target=/output \
<registry-location>/<image-name> \
Eula=accept \
Billing=<endpoint> \
ApiKey=<api-key> \
Logging:Disk:Format=json \
Mounts:Output=/output

이 컨테이너 명령은 컨테이너가 실행되는 동안 접두사가 dbug인 디버깅 정보를 보여줍니다.

docker run --rm -it -p 5000:5000 \
--memory 2g --cpus 1 \
<registry-location>/<image-name> \
Eula=accept \
Billing=<endpoint> \
ApiKey=<api-key> \
Logging:Console:LogLevel:Default=Debug

디스크 로깅

Disk 로깅 공급자는 다음과 같은 구성 설정을 지원합니다.

이름 데이터 유형 설명
Format 문자열 로그 파일에 대한 출력 형식입니다.
참고: 로깅 공급자를 사용 설정하려면 이 값을 json으로 설정해야 합니다. 또한 컨테이너를 인스턴스화하는 동안 출력 탑재를 지정하지 않고 이 값이 지정된 경우에는 오류가 발생합니다.
MaxFileSize 정수 로그 파일의 최대 크기(MB)입니다. 현재 로그 파일의 크기가 이 값을 충족하거나 초과할 경우 로깅 공급자가 새 로그 파일을 시작합니다. -1을 지정하면 로그 파일의 크기는 출력 탑재(있는 경우)에 대한 최대 파일 크기에 의해서만 제한됩니다. 기본값은 1입니다.

ASP.NET Core 로깅 지원 구성에 대한 자세한 내용은 설정 파일 구성을 참조하세요.

볼륨 설정

볼륨을 사용하여 컨테이너에서 또는 컨테이너로 읽고 씁니다. 볼륨은 Docker 컨테이너에서 생성 및 사용되는 데이터를 유지하기 위한 기본 설정입니다. volumes 옵션을 포함하고 type(바인드), source(폴더 경로) 및 target(파일 경로 매개 변수)을 지정하여 입력 마운트 또는 출력 마운트를 지정할 수 있습니다.

문서 인텔리전스 컨테이너에는 입력 볼륨 및 출력 볼륨이 필요합니다. 입력 볼륨은 읽기 전용(ro)일 수 있으며, 학습 및 채점에 사용되는 데이터에 액세스하는 데 필요합니다. 출력 볼륨은 쓰기 가능해야 하며 모델 및 임시 데이터를 저장하는 데 사용됩니다.

호스트 볼륨 위치의 정확한 구문은 호스트 운영 체제에 따라 다릅니다. 또한 Docker 서비스 계정의 권한과 호스트 탑재 위치 권한 간의 충돌로 인해 호스트 컴퓨터의 볼륨 위치에 액세스하지 못할 수 있습니다.

docker-compose.yml 파일 예

docker 구성 방법은 세 단계로 구성됩니다.

  1. Dockerfile을 만듭니다.
  2. 격리된 환경에서 함께 실행할 수 있도록 docker-compose.yml에 서비스를 정의합니다.
  3. docker-compose up을 실행하여 서비스를 시작하고 실행합니다.

단일 컨테이너 예

이 예제에서는 레이아웃 컨테이너 인스턴스의 {FORM_RECOGNIZER_ENDPOINT_URI} 값과 {FORM_RECOGNIZER_KEY} 값을 입력합니다.

레이아웃 컨테이너

version: "3.9"
services:
  azure-cognitive-service-layout:
    container_name: azure-cognitive-service-layout
    image: mcr.microsoft.com/azure-cognitive-services/form-recognizer/layout
    environment:
      - EULA=accept
      - billing={FORM_RECOGNIZER_ENDPOINT_URI}
      - key={FORM_RECOGNIZER_KEY}

    ports:
      - "5000"
    networks:
      - ocrvnet
networks:
  ocrvnet:
    driver: bridge

여러 컨테이너 예

수신 및 OCR 읽기 컨테이너

이 예에서는 수신 컨테이너에 대해 {FORM_RECOGNIZER_ENDPOINT_URI} 및 {FORM_RECOGNIZER_KEY} 값을 입력하고 Azure AI Vision 읽기 컨테이너에 대해 {COMPUTER_VISION_ENDPOINT_URI} 및 {COMPUTER_VISION_KEY} 값을 입력합니다.

version: "3"
services:
  azure-cognitive-service-receipt:
    container_name: azure-cognitive-service-receipt
    image: cognitiveservicespreview.azurecr.io/microsoft/cognitive-services-form-recognizer-receipt:2.1
    environment:
      - EULA=accept
      - billing={FORM_RECOGNIZER_ENDPOINT_URI}
      - key={FORM_RECOGNIZER_KEY}
      - AzureCognitiveServiceReadHost=http://azure-cognitive-service-read:5000
    ports:
      - "5000:5050"
    networks:
      - ocrvnet
  azure-cognitive-service-read:
    container_name: azure-cognitive-service-read
    image: mcr.microsoft.com/azure-cognitive-services/vision/read:3.2
    environment:
      - EULA=accept
      - billing={COMPUTER_VISION_ENDPOINT_URI}
      - key={COMPUTER_VISION_KEY}
    networks:
      - ocrvnet

networks:
  ocrvnet:
    driver: bridge

다음 단계