As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Criar modelos personalizados de tarefas para operadores
Os Crowd HTML Elements são componentes da web que fornecem vários widgets de tarefas e elementos de design que você pode personalizar de acordo com a pergunta que deseja fazer. Você pode usar esses elementos de público para criar um modelo personalizado de trabalhador e integrá-lo a um fluxo de trabalho de revisão humana do Amazon Augmented AI (Amazon A2I) para personalizar o console do trabalhador e as instruções.
Para obter uma lista de todos os elementos de HTML multidão disponíveis para os usuários do Amazon A2I, consulte. Referência do Crowd HTML Elements Para obter exemplos de modelos, consulte o AWS GitHubrepositório
Desenvolver modelos localmente
Quando estiver no console para testar como o modelo processa os dados recebidos, você pode testar a aparência do modelo HTML e dos elementos personalizados no navegador adicionando o código a seguir na parte superior do HTML arquivo.
<script src="https://assets.crowd.aws/crowd-html-elements.js"></script>
Isso carrega o código necessário para renderizar os HTML elementos personalizados. Use esse código caso deseje desenvolver a aparência de seu modelo no editor de sua preferência, e não no console.
Esse código não analisará suas variáveis. Você pode querer substituí-las por um conteúdo de amostra ao desenvolver localmente.
Usar ativos externos
Os modelos personalizados do Amazon Augmented AI permitem que você incorpore scripts externos e folhas de estilo. Por exemplo, o cabeçalho a seguir incorpora um nome de folha de estilo de text/css
stylesheet
localizado em https://www.example.com/my-enhancement-styles.css
no modelo personalizado.
<script src="https://www.example.com/my-enhancment-script.js"></script> <link rel="stylesheet" type="text/css" href="https://www.example.com/my-enhancement-styles.css">
Se você encontrar erros, verifique se o servidor de origem está enviando o MIME tipo correto e os cabeçalhos de codificação com os ativos.
Por exemplo, o tipo de codificação MIME e para scripts remotos éapplication/javascript;CHARSET=UTF-8
.
O tipo de codificação MIME e para folhas de estilo remotas é. text/css;CHARSET=UTF-8
Rastrear as variáveis
Ao criar um modelo personalizado, adicione variáveis a ele para representar as partes de dados que podem mudar de tarefa para tarefa ou de operador para operador. Se você estiver começando com um dos modelos de amostra, será necessário estar ciente das variáveis que ele já usa.
Por exemplo, para um modelo personalizado que integra um ciclo de revisão humana do Amazon Augmented AI com uma tarefa de revisão de texto do Amazon Textract, o {{ task.input.selectedAiServiceResponse.blocks
}}
é usado como dados de entrada de valor inicial. Para a integração do Amazon Augmented AI (Amazon A2I) com o Amazon Rekognition, {{ task.input.selectedAiServiceResponse.moderationLabels
}}
é usado. Para um tipo de tarefa personalizado, é necessário determinar o parâmetro de entrada para o tipo de tarefa. Use {{
task.input.
onde você especificar customInputValuesForStartHumanLoop
}}
. customInputValuesForStartHumanLoop
Exemplo de modelo personalizado do Amazon Textract
Todos os modelos personalizados começam e terminam com os elementos <crowd-form>
</crowd-form>
. Como os HTML <form>
elementos padrão, todo o código do formulário deve estar entre esses elementos.
Para uma tarefa de análise de documentos do Amazon Textract, use o elemento <crowd-textract-analyze-document>
. Ele usa os seguintes atributos:
-
src
— Especifica o arquivo URL de imagem a ser anotado. -
initialValue
- Define valores iniciais para atributos encontrados na interface do usuário do operador. blockTypes
(obrigatório) - Determina o tipo de análise que os operadores podem fazer. No momento, somenteKEY_VALUE_SET
é compatível.keys
(obrigatório) - Especifica novas chaves e o valor de texto associado que o operador pode adicionar.-
no-key-edit
(obrigatório) - Impede que os operadores editem as chaves de anotações transmitidas peloinitialValue
. -
no-geometry-edit
- impede que os operadores editem os polígonos das anotações transmitidas peloinitialValue
.
Para os filhos do elemento <crowd-textract-analyze-document>
, é necessário ter duas Regiões. Você pode usar CSS elementos HTML e elementos arbitrários nessas regiões.
<full-instructions>
- Instruções que estão disponíveis no link Visualizar instruções completas na ferramenta. É possível deixar isso em branco, mas recomendamos que você forneça instruções completas para obter melhores resultados.<short-instructions>
- Uma breve descrição da tarefa que aparece na barra lateral da ferramenta. É possível deixar isso em branco, mas recomendamos que você forneça instruções completas para obter melhores resultados.
Um modelo do Amazon Textract seria semelhante ao seguinte.
<script src="https://assets.crowd.aws/crowd-html-elements.js"></script> {% capture s3_uri %}http://s3.amazonaws.com/{{ task.input.aiServiceRequest.document.s3Object.bucket }}/{{ task.input.aiServiceRequest.document.s3Object.name }}{% endcapture %} <crowd-form> <crowd-textract-analyze-document src="{{ s3_uri | grant_read_access }}" initial-value="{{ task.input.selectedAiServiceResponse.blocks }}" header="Review the key-value pairs listed on the right and correct them if they don't match the following document." no-key-edit no-geometry-edit keys="{{ task.input.humanLoopContext.importantFormKeys }}" block-types="['KEY_VALUE_SET']" > <short-instructions header="Instructions"> <style> .instructions { white-space: pre-wrap; } .instructionsImage { display: inline-block; max-width: 100%; } </style> <p class='instructions'>Choose a key-value block to highlight the corresponding key-value pair in the document. If it is a valid key-value pair, review the content for the value. If the content is incorrect, correct it. The text of the value is incorrect, correct it. <img class='instructionsImage' src="https://example-site/correct-value-text.png" /> A wrong value is identified, correct it. <img class='instructionsImage' src="https://example-site/correct-value.png" /> If it is not a valid key-value relationship, choose No. <img class='instructionsImage' src="https://example-site/not-a-key-value-pair.png" /> If you can’t find the key in the document, choose Key not found. <img class='instructionsImage' src="https://example-site/key-is-not-found.png" /> If the content of a field is empty, choose Value is blank. <img class='instructionsImage' src="https://example-site/value-is-blank.png" /> <b>Examples</b> Key and value are often displayed next to or below to each other. Key and value displayed in one line. <img class='instructionsImage' src="https://example-site/sample-key-value-pair-1.png" /> Key and value displayed in two lines. <img class='instructionsImage' src="https://example-site/sample-key-value-pair-2.png" /> If the content of the value has multiple lines, enter all the text without a line break. Include all value text even if it extends beyond the highlight box. <img class='instructionsImage' src="https://assets.crowd.aws/images/a2i-console/multiple-lines.png" /></p> </short-instructions> <full-instructions header="Instructions"></full-instructions> </crowd-textract-analyze-document> </crowd-form>
Exemplo de modelo personalizado do Amazon Rekognition
Todos os modelos personalizados começam e terminam com os elementos <crowd-form>
</crowd-form>
. Como os HTML <form>
elementos padrão, todo o código do formulário deve estar entre esses elementos. Para um modelo de tarefa personalizado do Amazon Rekognition, use o elemento <crowd-rekognition-detect-moderation-labels>
. Esse elemento oferece suporte aos seguintes atributos:
-
categories
- Uma matriz de strings ou uma matriz de objetos, na qual cada objeto tem um camponame
.-
Se as categorias entrarem como objetos, o seguinte se aplica:
-
As categorias exibidas são o valor do campo
name
. -
A resposta retornada contém os objetos completos de todas as categorias selecionadas.
-
-
Se as categorias entrarem como strings, o seguinte se aplica:
-
A resposta retornada é uma matriz de todas as strings que foram selecionadas.
-
-
-
exclusion-category
- Ao definir esse atributo, é criado um botão abaixo das categorias na interface do usuário. Quando um usuário seleciona o botão, todas as categorias são desmarcadas e desativadas. Se o operador selecionar o botão novamente, você reabilita a opção para os usuários escolherem categorias. Se o operador enviar a tarefa selecionando o botão Enviar depois de pressionar o botão, essa tarefa retornará uma matriz vazia.
Para os filhos do elemento <crowd-rekognition-detect-moderation-labels>
, é necessário ter duas Regiões.
-
<full-instructions>
- Instruções que estão disponíveis no link Visualizar instruções completas na ferramenta. É possível deixar isso em branco, mas recomendamos que você forneça instruções completas para obter melhores resultados. -
<short-instructions>
- Breve descrição da tarefa que aparece na barra lateral da ferramenta. É possível deixar isso em branco, mas recomendamos que você forneça instruções completas para obter melhores resultados.
Um modelo que use esses elementos seria semelhante ao seguinte.
<script src="https://assets.crowd.aws/crowd-html-elements.js"></script> {% capture s3_uri %}http://s3.amazonaws.com/{{ task.input.aiServiceRequest.image.s3Object.bucket }}/{{ task.input.aiServiceRequest.image.s3Object.name }}{% endcapture %} <crowd-form> <crowd-rekognition-detect-moderation-labels categories='[ {% for label in task.input.selectedAiServiceResponse.moderationLabels %} { name: "{{ label.name }}", parentName: "{{ label.parentName }}", }, {% endfor %} ]' src="{{ s3_uri | grant_read_access }}" header="Review the image and choose all applicable categories." > <short-instructions header="Instructions"> <style> .instructions { white-space: pre-wrap; } </style> <p class='instructions'>Review the image and choose all applicable categories. If no categories apply, choose None. <b>Nudity</b> Visuals depicting nude male or female person or persons <b>Graphic Male Nudity</b> Visuals depicting full frontal male nudity, often close ups <b>Graphic Female Nudity</b> Visuals depicting full frontal female nudity, often close ups <b>Sexual Activity</b> Visuals depicting various types of explicit sexual activities and pornography <b>Illustrated Nudity or Sexual Activity</b> Visuals depicting animated or drawn sexual activity, nudity, or pornography <b>Adult Toys</b> Visuals depicting adult toys, often in a marketing context <b>Female Swimwear or Underwear</b> Visuals depicting female person wearing only swimwear or underwear <b>Male Swimwear Or Underwear</b> Visuals depicting male person wearing only swimwear or underwear <b>Partial Nudity</b> Visuals depicting covered up nudity, for example using hands or pose <b>Revealing Clothes</b> Visuals depicting revealing clothes and poses, such as deep cut dresses <b>Graphic Violence or Gore</b> Visuals depicting prominent blood or bloody injuries <b>Physical Violence</b> Visuals depicting violent physical assault, such as kicking or punching <b>Weapon Violence</b> Visuals depicting violence using weapons like firearms or blades, such as shooting <b>Weapons</b> Visuals depicting weapons like firearms and blades <b>Self Injury</b> Visuals depicting self-inflicted cutting on the body, typically in distinctive patterns using sharp objects <b>Emaciated Bodies</b> Visuals depicting extremely malnourished human bodies <b>Corpses</b> Visuals depicting human dead bodies <b>Hanging</b> Visuals depicting death by hanging</p> </short-instructions> <full-instructions header="Instructions"></full-instructions> </crowd-rekognition-detect-moderation-labels> </crowd-form>
Adicionar automação com o Liquid
O sistema de modelo personalizado usa o Liquid
No Liquid, o texto entre chaves simples e símbolos de percentagem é uma instrução ou tag que realiza uma operação, como controle de fluxo ou iteração. O texto entre chaves duplas é uma variável ou um objeto que gera seu valor. A lista a seguir inclui dois tipos de etiquetas líquidas que podem ser úteis para automatizar o processamento de dados de entrada de modelos. Se você selecionar um dos seguintes tipos de tag, será redirecionado para a documentação do Liquid.
-
Fluxo de controle
: inclui operadores lógicos de programação como if/else
,unless
ecase/when
. -
Iteração
: permite que você execute blocos de código repetidamente usando instruções como for loops. Por exemplo, o exemplo de código a seguir demonstra como você pode usar a tag
for
do Liquid para criar um loopfor
. Este exemplo percorre as informaçõesmoderationLabels
retornadas pelo Amazon Rekognition e exibe os atributosmoderationLabels
name
eparentName
para que os trabalhadores os revisem:{% for label in task.input.selectedAiServiceResponse.moderationLabels %} { name: "{{ label.name }}", parentName: "{{ label.parentName }}", }, {% endfor %}
Usar filtros de variáveis
Além dos filtros e ações padrão do Liquid|
) após o nome da variável e especificando o nome de um filtro. Para encadear filtros, use o seguinte formato.
{{ <content> | <filter> | <filter> }}
Escape automático e escape explícito
Por padrão, as entradas têm HTML escape para evitar confusão entre o texto da variável e. HTML Você pode adicionar explicitamente o filtro escape
para tornar mais óbvio para alguém que esteja lendo o código-fonte de seu modelo que o escape está sendo feito.
escape_once
escape_once
garante que, se o código já tiver sido escapado, ele não será escapado novamente. Por exemplo, para garantir que &
não se torne &amp;
.
skip_autoescape
skip_autoescape
é útil quando seu conteúdo deve ser usado comoHTML. Por exemplo, você pode ter alguns parágrafos de texto e algumas imagens nas instruções completas de uma caixa delimitadora.
nota
Use skip_autoescape
com moderação. Como uma melhor prática para modelos, evite passar código funcional ou marcação com skip_autoescape
, a menos que você tenha certeza absoluta de que tem controle estrito sobre o que está sendo passado. Se você estiver transmitindo a entrada do usuário, poderá expor seus funcionários a um ataque de cross site scripting.
to_json
to_json
codifica os dados que você fornece para JavaScript Object Notation ()JSON. Se você fornecer um objeto, ele o serializará.
grant_read_access
grant_read_access
pega um Amazon Simple Storage Service (Amazon URI S3) e o codifica em HTTPS URL um com um token de acesso de curta duração para esse recurso. Isso possibilita exibir objetos de fotografia, áudio ou vídeo armazenados em buckets do S3 que, de outra forma, não são acessíveis publicamente para operadores.
exemplo Exemplo dos filtros to_json e grant_read_access
Entrada
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 }}
Saída
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>
exemplo Exemplo de um modelo de classificação automatizado.
Para automatizar esse exemplo de classificação de texto simples, inclua a tag {{ task.input.
do Liquid. Esse exemplo usa o elemento crowd-classifier.source
}}
<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 seems to match, choose "other." </full-instructions> <short-instructions> Pick the term that best describes the sentiment of the tweet. </short-instructions> </crowd-classifier> </crowd-form>
Visualizar um modelo de tarefa de operador
Para visualizar um modelo de tarefa de trabalhador personalizado, use a SageMaker RenderUiTemplate
operação. Você pode usar a RenderUiTemplate
operação com o AWS CLI ou o seu preferido AWS SDK. Para obter documentação sobre o idioma suportado específico SDKs para essa API operação, consulte a See Also
seção do RenderUiTemplate
.
Pré-requisitos
Para visualizar seu modelo de tarefa de trabalhador, o AWS Identity and Access Management (IAM) role Amazon Resource Name (ARN) ouRoleArn
, que você usa, deve ter permissão para acessar os objetos do S3 que são usados pelo modelo. Para saber como configurar sua função ou usuário, consulte Habilitar visualizações do modelo de tarefa de operador .
Para visualizar o modelo de tarefa do operador usando a operação RenderUiTemplate
:
-
Forneça um
RoleArn
da função com as políticas necessárias anexadas para visualizar o modelo personalizado. -
No
Input
parâmetro deTask
, forneça um JSON objeto que contenha valores para as variáveis definidas no modelo. Estas são as variáveis que são substituídas para a variáveltask.input.
. Por exemplo, se você definir uma variável task.input.text em seu modelo, você pode fornecer a variável no objeto como:. JSONsource
text
sample text
-
No parâmetro
Content
deUiTemplate
, insira seu modelo.
Depois de configurarRenderUiTemplate
, use seu preferido SDK ou o AWS CLI para enviar uma solicitação para renderizar seu modelo. Se sua solicitação for bem-sucedida, a resposta RenderedContent
incluirá um modelo Liquid que renderiza a interface do usuário HTML para o trabalhador.
Importante
Para visualizar seu modelo, você precisa de uma IAM função com permissões para ler objetos do Amazon S3 que são renderizados na sua interface de usuário. Para ver um exemplo de política que você pode anexar à sua IAM função para conceder essas permissões, consulteHabilitar visualizações do modelo de tarefa de operador .