기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Liquid를 사용하여 자동화 추가
Amazon의 사용자 지정 템플릿 시스템은 자동화를 위해 Liquid
Liquid는 가장 일반적으로 주석 전 Lambda에서 가져온 데이터를 구분 분석하고 작업을 생성하기 위해 관련 변수를 가져오는 데 사용됩니다. 주석 전 Lambda가 반환하는 taskInput
객체는 템플릿에서 task.input
객체로 사용 가능합니다.
매니페스트 내 데이터 객체의 속성이 주석 전 Lambda에 event.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 설명서로 리디렉션됩니다.
-
제어 흐름
: if/else
,unless
,case/when
과 같은 프로그래밍 로직 연산자를 포함합니다. -
반복
: 루프와 같은 명령문을 사용하여 코드 블록을 반복적으로 실행할 수 있습니다. Liquid 요소를 사용하여 for 루프를 만드는 HTML 템플릿의 예는 의 translation-review-and-correction.liquid.html을 참조하십시오.
GitHub
자세한 내용 및 설명서는 Liquid 홈페이지
변수 필터
Ground Truth는 표준 Liquid 필터|
) 문자를 삽입한 후 필터 이름을 지정하여 적용됩니다. 필터는 다음 형식으로 함께 묶을 수 있습니다.
{{ <content> | <filter> | <filter> }}
Autoescape 및 explicit escape
기본적으로 변수 텍스트와 변수 텍스트 사이의 혼동을 방지하기 위해 입력은 HTML 이스케이프됩니다. HTML 이스케이프가 완료된 템플릿의 소스를 보다 분명하게 읽을 수 있도록 escape
필터를 명시적으로 추가할 수 있습니다.
escape_once
escape_once
는 코드를 이미 이스케이프한 경우 이후에 해당 코드가 다시 이스케이프되지 않도록 합니다. 예를 들어, &는 &amp;가 되지 않습니다.
skip_autoescape
skip_autoescape
콘텐츠를 다음과 같은 HTML 용도로 사용할 때 유용합니다. 예를 들어, 경계 상자에 대한 전체 지침에 텍스트 단락 몇 개와 이미지 몇 개가 있을 수 있습니다.
드물게 skip_autoescape 사용
템플릿을 사용할 때, 전달 항목에 대해 엄격한 제어 권한이 없는 한 skip_autoescape
로 함수 코드나 마크업을 전달하지 않는 것이 좋습니다. 사용자 입력을 전달하는 경우 작업자가 교차 사이트 스크립팅 공격에 노출되도록 할 수 있습니다.
to_json
to_json
입력한 내용을 인코딩합니다 JSON (JavaScript 객체 표기법). 객체를 제공하는 경우 직렬화합니다.
grant_read_access
grant_read_access
URIS3를 가져와서 해당 리소스에 대한 수명이 짧은 액세스 토큰이 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 & 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 'James & the Giant Peach'? explicit escape: Have you read 'James & the Giant Peach'? explicit escape_once: Have you read 'James & the Giant Peach'? 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