Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menambahkan otomatisasi dengan Liquid
Sistem template kustom kami menggunakan Liquid
Penggunaan Liquid yang paling umum adalah mengurai data yang berasal dari Lambda pra-anotasi Anda dan mengeluarkan variabel yang relevan untuk membuat tugas. taskInput
Objek yang dikembalikan oleh Anda Lambda pra-anotasi akan tersedia sebagai task.input
objek di template Anda.
Properti dalam objek data manifes Anda diteruskan ke Anda Lambda pra-anotasi sebagaievent.dataObject
. Skrip pass-through sederhana hanya mengembalikan objek itu sebagai objek. taskInput
Anda akan mewakili nilai dari manifes Anda sebagai variabel sebagai berikut.
contoh Manifest objek data
{ "source": "This is a sample text for classification", "labels": [ "angry" , "sad" , "happy" , "inconclusive" ], "header": "What emotion is the speaker feeling?" }
contoh Sampel HTML menggunakan variabel
<crowd-classifier name='tweetFeeling' categories='{{ task.input.labels | to_json }}' header='{{ task.input.header }}' > <classification-target> {{ task.input.source }} </classification-target>
Perhatikan penambahan " | to_json
" ke labels
properti di atas. Itu adalah filter untuk mengubah array menjadi JSON representasi dari array. Filter variabel dijelaskan di bagian selanjutnya.
Daftar berikut mencakup dua jenis tag Liquid yang mungkin berguna bagi Anda untuk mengotomatiskan pemrosesan data input template. Jika Anda memilih salah satu jenis tag berikut, Anda akan diarahkan ke dokumentasi Liquid.
-
Aliran kontrol
: Termasuk operator logika pemrograman seperti if/else
unless
,, dancase/when
. -
Iterasi
: Memungkinkan Anda menjalankan blok kode berulang kali menggunakan pernyataan seperti untuk loop. Untuk contoh HTML template yang menggunakan elemen Liquid untuk membuat loop for, lihat translation-review-and-correction.liquid.html
di. GitHub
Untuk informasi dan dokumentasi selengkapnya, kunjungi beranda Liquid
Filter variabel
Selain filter dan tindakan Liquid|
) setelah nama variabel, kemudian menentukan nama filter. Filter dapat dirantai dalam bentuk:
{{ <content> | <filter> | <filter> }}
Autoescape dan pelarian eksplisit
Secara default, input akan HTML diloloskan untuk mencegah kebingungan antara teks variabel Anda dan. HTML Anda dapat secara eksplisit menambahkan escape
filter untuk membuatnya lebih jelas bagi seseorang yang membaca sumber template Anda bahwa pelolosan sedang dilakukan.
escape_once
escape_once
memastikan bahwa jika Anda telah lolos dari kode Anda, itu tidak akan lolos kembali di atas itu. Misalnya, agar & tidak menjadi &;.
skip_autoescape
skip_autoescape
berguna ketika konten Anda dimaksudkan untuk digunakan sebagaiHTML. Misalnya, Anda mungkin memiliki beberapa paragraf teks dan beberapa gambar dalam instruksi lengkap untuk kotak pembatas.
Gunakan skip_autoescape hemat
Praktik terbaik dalam template adalah menghindari meneruskan kode fungsional atau markup skip_autoescape
kecuali Anda benar-benar yakin Anda memiliki kontrol ketat atas apa yang sedang diteruskan. Jika Anda meneruskan masukan pengguna, Anda bisa membuka pekerja Anda hingga serangan Cross Site Scripting.
to_json
to_json
akan menyandikan apa yang Anda berikan JSON (JavaScript Object Notation). Jika Anda memberinya makan sebuah objek, itu akan membuat serial itu.
grant_read_access
grant_read_access
mengambil S3 URI dan mengkodekannya menjadi HTTPS URL token akses berumur pendek untuk sumber daya itu. Hal ini memungkinkan untuk menampilkan objek foto, audio, atau video pekerja yang disimpan dalam ember S3 yang tidak dapat diakses publik.
contoh dari filter
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 }}
Output
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>
contoh dari template klasifikasi otomatis.
Untuk mengotomatiskan contoh klasifikasi teks sederhana, ganti teks tweet dengan variabel.
Template klasifikasi teks di bawah ini dengan otomatisasi ditambahkan. Perubahan/penambahan disorot dengan huruf tebal.
<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>
Teks tweet yang ada di sampel sebelumnya sekarang diganti dengan objek. entry.taskInput
Objek menggunakan source
(atau nama lain yang Anda tentukan dalam Lambda pra-anotasi Anda) sebagai nama properti untuk teks dan dimasukkan langsung ke dalam HTML berdasarkan berada di antara tanda kurung kurawal ganda.