Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
En este tutorial, se explican las operaciones de API que puede utilizar para dar los primeros pasos con Amazon A2I.
Para usar un cuaderno de Jupyter para ejecutar estas operaciones, selecciona un cuaderno de Jupyter Casos y ejemplos de uso de Amazon A2I y úsalo Utilice SageMaker Notebook Instance con Amazon A2I Jupyter Notebook para aprender a usarlo en una instancia de cuaderno de IA. SageMaker
Para obtener más información sobre las operaciones de API que puede utilizar con Amazon A2I, consulte Uso APIs en Amazon Augmented AI.
Crear un equipo de trabajo privado
Puede crear un equipo de trabajo privado y añadirse como trabajador para poder obtener una vista previa de Amazon A2I.
Si no está familiarizado con Amazon Cognito, le recomendamos que utilice la consola de SageMaker IA para crear una fuerza laboral privada y sumarse como trabajador privado. Para obtener instrucciones, consulte Paso 1: crear un equipo de trabajo.
Si está familiarizado con Amazon Cognito, puede utilizar las siguientes instrucciones para crear un equipo de trabajo privado mediante la SageMaker API. Después de crear un equipo de trabajo, anote su ARN (WorkteamArn
).
Para obtener más información sobre la plantilla privada y otras configuraciones disponibles, consulte Personal privado.
Cree un personal privado
Si no ha creado una plantilla privada, puede hacerlo mediante un grupo de usuarios de Amazon Cognito. Recuerde añadirse a usted mismo a este grupo de usuarios. Puede crear un equipo de trabajo privado mediante la AWS SDK para Python (Boto3)
create_workforce
función. Para obtener información sobre otros idiomas específicos SDKs, consulte la lista de. CreateWorkforce
response = client.create_workforce(
CognitoConfig={
"UserPool": "Pool_ID
",
"ClientId": "app-client-id
"
},
WorkforceName="workforce-name
"
)
Crear un equipo de trabajo privado
Una vez que haya creado una plantilla privada en la AWS región para configurar e iniciar su ciclo humano, podrá crear un equipo de trabajo privado mediante la AWS SDK para Python (Boto3) create_workteam
función. Para obtener información sobre otros idiomas específicos SDKs, consulte la lista de. CreateWorkteam
response = client.create_workteam(
WorkteamName="work-team-name
",
WorkforceName= "workforce-name
",
MemberDefinitions=[
{
"CognitoMemberDefinition": {
"UserPool": "<aws-region>_ID
",
"UserGroup": "user-group
",
"ClientId": "app-client-id
"
},
}
]
)
Acceda al ARN de su equipo de trabajo de la siguiente manera:
workteamArn = response["WorkteamArn"]
Incluir los equipos de trabajo privados en su cuenta
Si ya ha creado un equipo de trabajo privado, puede incluir en su cuenta todos los equipos de trabajo de una AWS región determinada mediante la AWS SDK para Python (Boto3) list_workteams
función. Para conocer otros idiomas específicos SDKs, consulta la lista de. ListWorkteams
response = client.list_workteams()
Si tiene varios equipos de trabajo en su cuenta, quizá le interese usar MaxResults
, NameContains
y SortBy
para filtrar los resultados.
Crear un flujo de trabajo de revisión humana
Puede crear un flujo de trabajo de revisión humana mediante la operación CreateFlowDefinition
de Amazon A2I. Antes de crear su flujo de trabajo de revisión humana, debe crear una interfaz de usuario de tareas humanas. Puede hacerlo con la operación CreateHumanTaskUi
.
Si utiliza Amazon A2I con las integraciones de Amazon Textract o Amazon Rekognition, puede especificar las condiciones de activación mediante un JSON.
Crear una interfaz de usuario para tareas humanas
Si va a crear un flujo de trabajo de revisión humana para usarlo con las integraciones de Amazon Textract o Amazon Rekognition, necesitará usar y modificar una plantilla de tareas de trabajo prediseñada. Puede usar su propia plantilla de tareas de trabajo personalizada en todas las integraciones personalizadas. Use la siguiente tabla para aprender a crear una interfaz de usuario para tareas humanas con una plantilla de tareas de trabajador para las dos integraciones integradas. Sustituya la plantilla por la suya propia para personalizar esta solicitud.
Para obtener más información sobre esta plantilla, consulte Ejemplo de plantilla personalizada para Amazon Textract.
template
= r"""
<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">
<p>Click on a key-value block to highlight the corresponding key-value pair in the document.
</p><p><br></p>
<p>If it is a valid key-value pair, review the content for the value. If the content is incorrect, correct it.
</p><p><br></p>
<p>The text of the value is incorrect, correct it.</p>
<p><img src="https://assets.crowd.aws/images/a2i-console/correct-value-text.png">
</p><p><br></p>
<p>A wrong value is identified, correct it.</p>
<p><img src="https://assets.crowd.aws/images/a2i-console/correct-value.png">
</p><p><br></p>
<p>If it is not a valid key-value relationship, choose No.</p>
<p><img src="https://assets.crowd.aws/images/a2i-console/not-a-key-value-pair.png">
</p><p><br></p>
<p>If you can’t find the key in the document, choose Key not found.</p>
<p><img src="https://assets.crowd.aws/images/a2i-console/key-is-not-found.png">
</p><p><br></p>
<p>If the content of a field is empty, choose Value is blank.</p>
<p><img src="https://assets.crowd.aws/images/a2i-console/value-is-blank.png">
</p><p><br></p>
<p><strong>Examples</strong></p>
<p>Key and value are often displayed next or below to each other.
</p><p><br></p>
<p>Key and value displayed in one line.</p>
<p><img src="https://assets.crowd.aws/images/a2i-console/sample-key-value-pair-1.png">
</p><p><br></p>
<p>Key and value displayed in two lines.</p>
<p><img src="https://assets.crowd.aws/images/a2i-console/sample-key-value-pair-2.png">
</p><p><br></p>
<p>If the content of the value has multiple lines, enter all the text without line break.
Include all value text even if it extends beyond the highlight box.</p>
<p><img 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>
"""
Con la plantilla especificada anteriormente, puede crear una plantilla mediante la AWS SDK para Python (Boto3) create_human_task_ui
función. Para obtener información sobre otros idiomas específicos SDKs, consulte la lista de. CreateHumanTaskUi
response = client.create_human_task_ui(
HumanTaskUiName="human-task-ui-name
",
UiTemplate={
"Content": template
}
)
Este elemento de respuesta contiene el ARN de la interfaz de usuario de tareas humanas. Guarde esto de la siguiente manera:
humanTaskUiArn = response["HumanTaskUiArn"]
Crear un JSON para especificar las condiciones de activación
En el caso de las integraciones integradas de Amazon Textract y Amazon Rekognition, puede guardar las condiciones de activación en un objeto JSON y utilizarlas en su solicitud CreateFlowDefinition
.
A continuación, seleccione una pestaña para ver ejemplos de condiciones de activación que puede utilizar para estas integraciones integradas. Para obtener información acerca de las opciones de condición de activación, consulte Esquema JSON para condiciones de activación del bucle humano en Amazon Augmented AI.
En este ejemplo, se especifican las condiciones para claves específicas (como Mail address
) en el documento. Si la confianza de Amazon Textract supera los umbrales establecidos aquí, el documento se envía a una persona para que lo revise, y se le solicitarán al trabajador las claves específicas que iniciaron el bucle humano.
import json
humanLoopActivationConditions = json.dumps(
{
"Conditions": [
{
"Or": [
{
"ConditionType": "ImportantFormKeyConfidenceCheck",
"ConditionParameters": {
"ImportantFormKey": "Mail address",
"ImportantFormKeyAliases": ["Mail Address:","Mail address:", "Mailing Add:","Mailing Addresses"],
"KeyValueBlockConfidenceLessThan": 100,
"WordBlockConfidenceLessThan": 100
}
},
{
"ConditionType": "MissingImportantFormKey",
"ConditionParameters": {
"ImportantFormKey": "Mail address",
"ImportantFormKeyAliases": ["Mail Address:","Mail address:","Mailing Add:","Mailing Addresses"]
}
},
{
"ConditionType": "ImportantFormKeyConfidenceCheck",
"ConditionParameters": {
"ImportantFormKey": "Phone Number",
"ImportantFormKeyAliases": ["Phone number:", "Phone No.:", "Number:"],
"KeyValueBlockConfidenceLessThan": 100,
"WordBlockConfidenceLessThan": 100
}
},
{
"ConditionType": "ImportantFormKeyConfidenceCheck",
"ConditionParameters": {
"ImportantFormKey": "*",
"KeyValueBlockConfidenceLessThan": 100,
"WordBlockConfidenceLessThan": 100
}
},
{
"ConditionType": "ImportantFormKeyConfidenceCheck",
"ConditionParameters": {
"ImportantFormKey": "*",
"KeyValueBlockConfidenceGreaterThan": 0,
"WordBlockConfidenceGreaterThan": 0
}
}
]
}
]
}
)
Crear un flujo de trabajo de revisión humana
En esta sección se ofrece un ejemplo de la CreateFlowDefinition
AWS SDK para Python (Boto3) solicitud que utiliza los recursos creados en las secciones anteriores. Para obtener información sobre otros idiomas específicos SDKs, consulte la lista de. CreateFlowDefinition Utilice las pestañas de la siguiente tabla para ver las solicitudes de creación de un flujo de trabajo de revisión humana para las integraciones integradas de Amazon Textract y Amazon Rekognition.
Si utiliza la integración integrada con Amazon Textract, debe especificar "AWS/Textract/AnalyzeDocument/Forms/V1"
para "AwsManagedHumanLoopRequestSource"
en HumanLoopRequestSource
.
response = client.create_flow_definition(
FlowDefinitionName="human-review-workflow-name
",
HumanLoopRequestSource={
"AwsManagedHumanLoopRequestSource": "AWS/Textract/AnalyzeDocument/Forms/V1"
},
HumanLoopActivationConfig={
"HumanLoopActivationConditionsConfig": {
"HumanLoopActivationConditions": humanLoopActivationConditions
}
},
HumanLoopConfig={
"WorkteamArn": workteamArn
,
"HumanTaskUiArn": humanTaskUiArn
,
"TaskTitle": "Document entry review
",
"TaskDescription": "Review the document and instructions. Complete the task
",
"TaskCount": 1
,
"TaskAvailabilityLifetimeInSeconds": 43200
,
"TaskTimeLimitInSeconds": 3600
,
"TaskKeywords": [
"document review
",
],
},
OutputConfig={
"S3OutputPath": "s3://amzn-s3-demo-bucket/prefix/
",
},
RoleArn="arn:aws:iam::<account-number>:role/<role-name>
",
Tags=[
{
"Key": "string
",
"Value": "string
"
},
]
)
Tras crear un flujo de trabajo de revisión humana, puede recuperar el ARN de definición de flujo de la respuesta:
humanReviewWorkflowArn
= response["FlowDefinitionArn"]
Crear un bucle humano
La operación de API que utilice para iniciar un bucle humano dependerá de la integración de Amazon A2I que utilice.
-
Si utilizas la integración integrada de Amazon Textract, utilizas la AnalyzeDocumentoperación.
-
Si utiliza la integración integrada de Amazon Rekognition, utilizará la operación. DetectModerationLabels
-
Si usa una integración personalizada, usa la operación. StartHumanLoop
Seleccione el tipo de tarea en la siguiente tabla para ver ejemplos de solicitudes para Amazon Textract y Amazon Rekognition empleando AWS SDK para Python (Boto3).
En el siguiente ejemplo, se utiliza AWS SDK para Python (Boto3) para llamar analyze_document
a us-west-2. Sustituya el texto rojo en cursiva por sus recursos. Solo debe incluir el parámetro DataAttributes
si utiliza la plantilla de Amazon Mechanical Turk. Para obtener más información, consulte la documentación de analyze_document
response = client.analyze_document(
Document={"S3Object": {"Bucket": "amzn-s3-demo-bucket
", "Name": "document-name.pdf
"},
HumanLoopConfig={
"FlowDefinitionArn":"arn:aws:sagemaker:us-west-2:111122223333:flow-definition/flow-definition-name
",
"HumanLoopName":"human-loop-name
",
"DataAttributes" : {ContentClassifiers:["FreeOfPersonallyIdentifiableInformation"
|"FreeOfAdultContent"
]}
}
FeatureTypes=["FORMS"]
)
Los bucles humanos solo se crean si la confianza de Amazon Textract para la tarea de análisis de documentos cumple las condiciones de activación que ha especificado en su flujo de trabajo de revisión humana. Puede comprobar el elemento response
para determinar si se ha creado un bucle humano. Para ver todo lo que está incluido en esta respuesta, consulte HumanLoopActivationOutput
.
if "HumanLoopArn" in analyzeDocumentResponse["HumanLoopActivationOutput"]:
# A human loop has been started!
print(f"A human loop has been started with ARN: {analyzeDocumentResponse["HumanLoopActivationOutput"]["HumanLoopArn"]}"