Liquid를 사용하여 자동화 추가 - 아마존 SageMaker

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Liquid를 사용하여 자동화 추가

Amazon의 사용자 지정 템플릿 시스템은 자동화를 위해 Liquid를 사용합니다. Liquid는 오픈 소스 인라인 마크업 언어입니다. Liquid에서 단일 중괄호와 퍼센트 기호 사이에 있는 텍스트는 제어 흐름 또는 반복과 같은 작업을 수행하는 지침 또는 태그입니다. 이중 중괄호 사이에 있는 텍스트는 변수 또는 변수의 값을 출력하는 객체입니다.

Liquid는 가장 일반적으로 주석 전 Lambda에서 가져온 데이터를 구분 분석하고 작업을 생성하기 위해 관련 변수를 가져오는 데 사용됩니다. 주석 전 Lambda가 반환하는 taskInput 객체는 템플릿에서 task.input 객체로 사용 가능합니다.

매니페스트 내 데이터 객체의 속성이 주석 전 Lambdaevent.dataObject로 전달됩니다. 간단한 전달 스크립트는 해당 객체를 taskInput 객체로만 반환합니다. 다음과 같이 매니페스트의 값을 변수로 표현해야 합니다.

예 매니페스트 데이터 객체
{ "source": "This is a sample text for classification", "labels": [ "angry" , "sad" , "happy" , "inconclusive" ], "header": "What emotion is the speaker feeling?" }
예 변수를 HTML 사용한 샘플
<crowd-classifier name='tweetFeeling' categories='{{ task.input.labels | to_json }}' header='{{ task.input.header }}' > <classification-target> {{ task.input.source }} </classification-target>

위에서 labels 속성에 " | to_json"이 추가되는 데 유의하세요 배열을 배열의 JSON 표현으로 바꾸는 필터입니다. 변수 필터는 다음 섹션에서 설명합니다.

다음 목록에는 템플릿 입력 데이터 처리를 자동화하는 데 유용할 수 있는 두 가지 유형의 Liquid 태그가 포함되어 있습니다. 다음 태그 유형 중 하나를 선택하면 Liquid 설명서로 리디렉션됩니다.

자세한 내용 및 설명서는 Liquid 홈페이지를 참조하세요.

변수 필터

Ground Truth는 표준 Liquid 필터 및 작업 이외에 몇 가지 추가 필터를 제공합니다. 필터는 변수 이름 뒤에 파이프(|) 문자를 삽입한 후 필터 이름을 지정하여 적용됩니다. 필터는 다음 형식으로 함께 묶을 수 있습니다.

{{ <content> | <filter> | <filter> }}

Autoescape 및 explicit escape

기본적으로 변수 텍스트와 변수 텍스트 사이의 혼동을 방지하기 위해 입력은 HTML 이스케이프됩니다. HTML 이스케이프가 완료된 템플릿의 소스를 보다 분명하게 읽을 수 있도록 escape 필터를 명시적으로 추가할 수 있습니다.

escape_once

escape_once는 코드를 이미 이스케이프한 경우 이후에 해당 코드가 다시 이스케이프되지 않도록 합니다. 예를 들어, &amp;는 &amp;amp;가 되지 않습니다.

skip_autoescape

skip_autoescape콘텐츠를 다음과 같은 HTML 용도로 사용할 때 유용합니다. 예를 들어, 경계 상자에 대한 전체 지침에 텍스트 단락 몇 개와 이미지 몇 개가 있을 수 있습니다.

드물게 skip_autoescape 사용

템플릿을 사용할 때, 전달 항목에 대해 엄격한 제어 권한이 없는 한 skip_autoescape로 함수 코드나 마크업을 전달하지 않는 것이 좋습니다. 사용자 입력을 전달하는 경우 작업자가 교차 사이트 스크립팅 공격에 노출되도록 할 수 있습니다.

to_json

to_json입력한 내용을 인코딩합니다 JSON (JavaScript 객체 표기법). 객체를 제공하는 경우 직렬화합니다.

grant_read_access

grant_read_accessURIS3를 가져와서 해당 리소스에 대한 수명이 짧은 액세스 토큰이 HTTPS URL 있는 로 인코딩합니다. 따라서 작업자에게 S3 버킷에 저장된 사진, 오디오 또는 비디오 객체를 표시할 수 있습니다. 그렇지 않으면 이러한 객체는 공개적으로 액세스할 수 없습니다.

예 필터

Input

auto-escape: {{ "Have you read 'James & the Giant Peach'?" }} explicit escape: {{ "Have you read 'James & the Giant Peach'?" | escape }} explicit escape_once: {{ "Have you read 'James &amp; the Giant Peach'?" | escape_once }} skip_autoescape: {{ "Have you read 'James & the Giant Peach'?" | skip_autoescape }} to_json: {{ jsObject | to_json }} grant_read_access: {{ "s3://mybucket/myphoto.png" | grant_read_access }}

출력

auto-escape: Have you read &#39;James &amp; the Giant Peach&#39;? explicit escape: Have you read &#39;James &amp; the Giant Peach&#39;? explicit escape_once: Have you read &#39;James &amp; the Giant Peach&#39;? skip_autoescape: Have you read 'James & the Giant Peach'? to_json: { "point_number": 8, "coords": [ 59, 76 ] } grant_read_access: https://s3.amazonaws.com/mybucket/myphoto.png?<access token and other params>
예 자동화된 분류 템플릿.

간단한 텍스트 분류 샘플을 자동화하려면 트윗 텍스트를 변수로 바꿉니다.

아래 텍스트 분류 템플릿에는 자동화가 추가되어 있습니다. 변경/추가된 내용은 굵게 강조 표시되어 있습니다.

<script src="https://assets.crowd.aws/crowd-html-elements.js"></script> <crowd-form> <crowd-classifier name="tweetFeeling" categories="['positive', 'negative', 'neutral', 'cannot determine']" header="Which term best describes this tweet?" > <classification-target> {{ task.input.source }} </classification-target> <full-instructions header="Analyzing a sentiment"> Try to determine the feeling the author of the tweet is trying to express. If none seem to match, choose "other." </full-instructions> <short-instructions> Pick the term best describing the sentiment of the tweet. </short-instructions> </crowd-classifier> </crowd-form>

이전 샘플에 있던 트윗 텍스트는 이제 객체로 바뀝니다. entry.taskInput객체는 source (또는 사전 주석 Lambda에서 지정한 다른 이름) 을 텍스트의 속성 이름으로 사용하며 이중 중괄호 사이에 위치하므로 객체에 직접 삽입됩니다. HTML