Menambahkan otomatisasi dengan Liquid - Amazon SageMaker

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 untuk otomatisasi. Ini adalah bahasa markup inline open source. Dalam Liquid, teks antara kurung kurawal tunggal dan simbol persen adalah instruksi atau tag yang melakukan operasi seperti aliran kontrol atau iterasi. Teks antara kurung kurawal ganda adalah variabel atau objek yang mengeluarkan nilainya.

Penggunaan Liquid yang paling umum adalah mengurai data yang berasal dari Lambda pra-anotasi Anda dan mengeluarkan variabel yang relevan untuk membuat tugas. taskInputObjek 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 Contoh 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 representasi JSON 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/elseunless,, dancase/when.

  • Iterasi: Memungkinkan Anda menjalankan blok kode berulang kali menggunakan pernyataan seperti untuk loop.

    Untuk contoh template HTML yang menggunakan elemen Liquid untuk membuat loop for, lihat translation-review-and-correction.liquid.html di. GitHub

Untuk informasi dan dokumentasi lebih lanjut, kunjungi beranda Liquid.

Filter variabel

Selain filter dan tindakan Liquid standar, Ground Truth menawarkan beberapa filter tambahan. Filter diterapkan dengan menempatkan karakter pipe (|) setelah nama variabel, kemudian menentukan nama filter. Filter dapat dirantai dalam bentuk:

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

Autoescape dan pelarian eksplisit

Secara default, input akan berupa HTML yang lolos untuk mencegah kebingungan antara teks variabel dan HTML Anda. 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_oncememastikan bahwa jika Anda telah lolos dari kode Anda, itu tidak akan lolos kembali di atas itu. Misalnya, agar & tidak menjadi &;.

skip_autoescape

skip_autoescapeberguna ketika konten Anda dimaksudkan untuk digunakan sebagai HTML. Misalnya, Anda mungkin memiliki beberapa paragraf teks dan beberapa gambar dalam instruksi lengkap untuk kotak pembatas.

Gunakan dengan 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_jsonakan menyandikan apa yang Anda berikan ke JSON (JavaScript Object Notation). Jika Anda memberinya makan objek, itu akan membuat serial itu.

grant_read_access

grant_read_accessmengambil URI S3 dan mengkodekannya ke URL HTTPS dengan 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 &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 }}

Output

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>
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.taskInputObjek 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.