Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Hinzufügen von Automation mit Liquid
Unser benutzerdefiniertes Vorlagensystem verwendet Liquid
Am häufigsten wird Liquid zum Analysieren der Daten aus Ihrer Eingabe-Manifestdatei und zum Auslesen der relevanten Variablen verwendet, um die Aufgabe zu erstellen. Ground Truth generiert die Aufgaben automatisch, sofern keine Lambda-Vorverarbeitung angegeben ist. Das von Ground Truth oder Lambda zur Vorverarbeitung zurückgegebene taskInput-Objekt ist das task.input-Objekt in Ihren Vorlagen.
Die Eigenschaften in Ihrem Eingabemanifest werden als event.dataObject an Ihre Vorlage übergeben.
Beispiel Datenobjekt des Manifests
{ "source": "This is a sample text for classification", "labels": [ "angry" , "sad" , "happy" , "inconclusive" ], "header": "What emotion is the speaker feeling?" }
Beispiel-HTML unter Verwendung von Variablen
<crowd-classifier name='tweetFeeling' categories='{{ task.input.labels | to_json }}' header='{{ task.input.header }}' > <classification-target> {{ task.input.source }} </classification-target>
Beachten Sie im vorherigen Beispiel das Hinzufügen von | to_json zur labels-Eigenschaft. Hierbei handelt es sich um einen Filter, durch den das Eingabemanifest-Array in eine JSON-Darstellung des Arrays umgewandelt wird. Variablenfilter werden im nächsten Abschnitt erläutert.
Die folgende Liste enthält zwei Arten von Liquid-Tags, die für Sie nützlich sein könnten, um die Verarbeitung von Vorlageneingabedaten zu automatisieren. Wenn Sie einen der folgenden Tag-Typen auswählen, werden Sie zur Liquid-Dokumentation weitergeleitet.
-
Steuerungsablauf
: Beinhaltet Programmierlogik-Operatoren wie if/else,unlessundcase/when. -
Iteration
: Ermöglicht das wiederholte Ausführen von Codeblöcken mithilfe von Anweisungen wie for-Schleifen. Ein Beispiel für eine HTML-Vorlage, die Liquid-Elemente verwendet, um eine For-Schleife zu erstellen, finden Sie unter translation-review-and-correction.liquid.html
in. GitHub
Weitere Informationen und Dokumentationen finden Sie auf der Liquid-Homepage
Variablenfilter
Zusätzlich zu den Standard-Liquid-Filtern|) nach dem Variablennamen platziert und dann ein Filtername angegeben wird. Filter können verkettet werden in Form von:
{{ <content> | <filter> | <filter> }}
Autoescape und explizites Escape
Standardmäßig werden Eingaben durch HTML geschützt, um Verwirrung zwischen Ihrem variablen Text und HTML zu verhindern. Sie können den escape-Filter explizit hinzufügen, um es für den Leser der Quelle Ihrer Vorlage ersichtlicher zu machen, dass das Escaping durchgeführt wird.
escape_once
escape_once stellt sicher, dass, wenn Sie Ihren Code bereits durch Escape-Zeichen geschützt haben, er nicht zusätzlich erneut durch Escape-Zeichen geschützt wird. Damit beispielsweise & nicht zu &amp; wird.
skip_autoescape
skip_autoescape ist nützlich, wenn Ihre Inhalte als HTML verwendet werden sollen. Beispiel: Sie haben ein paar Textabsätze und einige Bilder in den vollständigen Anweisungen für einen Begrenzungsrahmen.
Sparsames Verwenden von skip_autoescape
Die bewährte Methode bei Vorlagen besteht darin, die Übergabe von funktionalem Code oder Markup mit skip_autoescape zu vermeiden, es sei denn, Sie sind absolut sicher, dass Sie strenge Kontrolle darüber haben, was übergeben wird. Wenn Sie Benutzereingaben übergeben, können Sie Ihre Worker einem Cross-Site-Scripting-Angriff aussetzen.
to_json
to_jsonkodiert, was Sie an JSON (JavaScript Object Notation) weitergeben. Wenn Sie ein Objekt bereitstellen, wird dieses serialisiert.
grant_read_access
grant_read_access nimmt einen S3-URI entgegen und codiert ihn in eine HTTPS-URL mit einem kurzlebigen Zugriffstoken für diese Ressource. Dadurch ist es möglich, Auftragnehmern Foto-, Audio- oder Videoobjekte anzuzeigen, die in S3-Buckets gespeichert sind, auf die nicht anders öffentlich zugegriffen werden kann.
s3_presign
Der s3_presign-Filter funktioniert genauso wie der grant_read_access-Filter. s3_presign nimmt einen Amazon-S3-URI und kodiert ihn in eine HTTPS-URL mit einem kurzlebigen Zugriffstoken für diese Ressource. Dadurch ist es möglich, Foto-, Audio- oder Videoobjekte anzuzeigen, die in S3-Buckets gespeichert sind, auf die Auftragnehmer nicht anders öffentlich zugreifen können.
Beispiel von Variablenfiltern
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://amzn-s3-demo-bucket/myphoto.png" | grant_read_access }} s3_presign: {{ "s3://amzn-s3-demo-bucket/myphoto.png" | s3_presign }}
Ausgabe
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/amzn-s3-demo-bucket/myphoto.png?<access token and other params>s3_presign: https://s3.amazonaws.com/amzn-s3-demo-bucket/myphoto.png?<access token and other params>
Beispiel einer automatisierten Klassifizierungsvorlage.
Um das einfache Textklassifizierungsbeispiel zu automatisieren, ersetzen Sie den Tweet-Text mit einer Variablen.
Die Textklassifizierungsvorlage befindet sich unten mit hinzugefügter Automatisierung. Sie changes/additions sind fett hervorgehoben.
<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>
Die Tweet-Text im vorherigen Beispiel wird jetzt durch ein Objekt ersetzt. Das entry.taskInput-Objekt verwendet source (oder einen anderen Namen, den Sie in Ihrem Lambda der Vorverarbeitung angeben) als Eigenschaftennamen für den Text, und es wird direkt in HTML eingefügt, wenn es sich zwischen doppelten geschweiften Klammern befindet.