Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Questo tutorial spiega le operazioni API che è possibile utilizzare per iniziare a usare Amazon A2I.
Per utilizzare un Jupyter Notebook per eseguire queste operazioni, seleziona un Jupyter Notebook da Casi d'uso ed esempi con Amazon A2I e usalo Usa un'istanza SageMaker Notebook con Amazon A2I Jupyter Notebook per imparare a usarlo in un'istanza di notebook AI. SageMaker
Per ulteriori informazioni sulle operazioni API che è possibile utilizzare con Amazon A2I, consulta Utilizzo APIs in Amazon Augmented AI.
Creare di una team di lavoro privato
È possibile creare un team di lavoro privato e aggiungersi come worker in modo da visualizzare in anteprima Amazon A2I.
Se non conosci Amazon Cognito, ti consigliamo di utilizzare la console di SageMaker intelligenza artificiale per creare una forza lavoro privata e aggiungerti come lavoratore privato. Per istruzioni, consulta Fase 1: creare un team di lavoro.
Se conosci Amazon Cognito, puoi utilizzare le seguenti istruzioni per creare un team di lavoro privato utilizzando l' SageMaker API. Dopo aver creato un team di lavoro, annota l'ARN del team di lavoro (WorkteamArn
).
Per ulteriori informazioni sulla forza lavoro privata e su altre configurazioni disponibili, consulta Forza lavoro privata.
Creazione di una forza lavoro privata
Se non hai creato una forza lavoro privata, puoi farlo utilizzando un pool di utenti Amazon Cognito. Assicurati di esserti aggiunto a questo pool di utenti. Puoi creare un team di lavoro privato utilizzando la AWS SDK for Python (Boto3)
create_workforce
funzione. Per altre lingue specifiche SDKs, consulta l'elenco in. CreateWorkforce
response = client.create_workforce(
CognitoConfig={
"UserPool": "Pool_ID
",
"ClientId": "app-client-id
"
},
WorkforceName="workforce-name
"
)
Creare una forza lavoro privata
Dopo aver creato una forza lavoro privata nella AWS Regione per configurare e avviare il ciclo umano, puoi creare un team di lavoro privato utilizzando la funzione. AWS SDK for Python (Boto3) create_workteam
Per altre lingue specifiche SDKs, consulta l'elenco in. 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
"
},
}
]
)
Accedi all'ARN del team di lavoro come segue:
workteamArn = response["WorkteamArn"]
Elenca i team di lavoro privati nel tuo account
Se hai già creato un team di lavoro privato, puoi elencare tutti i team di lavoro di una determinata AWS regione nel tuo account utilizzando la funzione. AWS SDK for Python (Boto3) list_workteams
Per altre lingue specifiche SDKs, consulta l'elenco in. ListWorkteams
response = client.list_workteams()
Se nel tuo account sono presenti numerosi team di lavoro, potresti voler utilizzare MaxResults
, SortBy
e NameContains
per filtrare i risultati.
Creare un flusso di lavoro di revisione umana
È possibile creare un flusso di lavoro di revisione umana utilizzando l'operazione Amazon A2I CreateFlowDefinition
. Prima di creare il flusso di lavoro di revisione umana, crea un'interfaccia utente delle attività umane. È possibile farlo con l'operazione CreateHumanTaskUi
.
Se utilizzi Amazon A2I con le integrazioni Amazon Textract o Amazon Rekognition, puoi specificare le condizioni di attivazione utilizzando un JSON.
Creazione di un'interfaccia utente per attività umana
Se stai creando un flusso di lavoro di revisione umana da utilizzare con le integrazioni Amazon Textract o Amazon Rekognition, devi utilizzare e modificare un modello di attività del worker predefinito. Per tutte le integrazioni personalizzate, è possibile utilizzare il proprio modello di attività del worker personalizzato. Utilizza la tabella seguente per scoprire come creare un'interfaccia utente per attività umane utilizzando un modello di attività del worker per le due integrazioni incorporate. Sostituisci il modello con il tuo per personalizzare questa richiesta.
Per ulteriori informazioni sui modelli, vedere Esempio di modello personalizzato per 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>
"""
Utilizzando il modello sopra specificato, è possibile creare un modello utilizzando la funzione. AWS SDK for Python (Boto3) create_human_task_ui
Per altre lingue specifiche SDKs, consulta l'elenco in. CreateHumanTaskUi
response = client.create_human_task_ui(
HumanTaskUiName="human-task-ui-name
",
UiTemplate={
"Content": template
}
)
Questo elemento di risposta contiene l'ARN dell'interfaccia utente dell'attività umana. Salva questo come segue:
humanTaskUiArn = response["HumanTaskUiArn"]
Crea JSON per specificare le condizioni di attivazione
Per le integrazioni incorporate di Amazon Textract e Amazon Rekognition, è possibile salvare le condizioni di attivazione in un oggetto JSON e utilizzarle nella propria richiesta CreateFlowDefinition
.
Successivamente, seleziona una scheda per visualizzare esempi di condizioni di attivazione che puoi utilizzare per queste integrazioni incorporate. Per maggiori informazioni sulle opzioni di condizione attivazione, vedere Schema JSON per condizioni attivazione del ciclo umano in IA aumentata Amazon.
Questo esempio specifica le condizioni per chiavi specifiche (ad esempio Mail address
) del documento. Se l'attendibilità di Amazon Textract non supera le soglie stabilite qui, il documento viene inviato a un operatore per la revisione, con le chiavi specifiche che hanno avviato il ciclo umano richieste al worker.
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
}
}
]
}
]
}
)
Creare un flusso di lavoro di revisione umana
Questa sezione fornisce un esempio di CreateFlowDefinition
AWS SDK for Python (Boto3) richiesta che utilizza le risorse create nelle sezioni precedenti. Per altre lingue specifiche SDKs, consulta l'elenco in. CreateFlowDefinition Utilizza le schede nella tabella seguente per visualizzare le richieste di creazione di un flusso di lavoro di revisione umana delle integrazioni incorporate di Amazon Textract e Amazon Rekognition.
Se utilizzi l'integrazione incorporata con Amazon Textract, devi specificare "AWS/Textract/AnalyzeDocument/Forms/V1"
per "AwsManagedHumanLoopRequestSource"
in 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
"
},
]
)
Dopo aver creato un flusso di lavoro di revisione umana, è possibile recuperare l'ARN della definizione del flusso dalla risposta:
humanReviewWorkflowArn
= response["FlowDefinitionArn"]
Creazione di un ciclo umano
L'operazione API utilizzata per avviare un ciclo umano dipende dall'integrazione Amazon A2I utilizzata.
-
Se utilizzi l'integrazione integrata di Amazon Textract, utilizzi l'AnalyzeDocumentoperazione.
-
Se utilizzi l'integrazione integrata di Amazon Rekognition, utilizzi l'operazione. DetectModerationLabels
-
Se utilizzi un'integrazione personalizzata, utilizzi l'operazione. StartHumanLoop
Seleziona il tipo di attività nella tabella seguente per visualizzare esempi di richieste per Amazon Textract e Amazon Rekognition utilizzando il AWS SDK for Python (Boto3).
L'esempio seguente utilizza AWS SDK for Python (Boto3) to call analyze_document
us-west-2. Sostituisci il testo in rosso in corsivo con le tue risorse. Includi il parametro DataAttributes
solo se utilizzi la forza lavoro di Amazon Mechanical Turk. Per ulteriori informazioni, consulta la documentazione 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"]
)
I cicli umani vengono creati solo se l'attendibilità di Amazon Textract per l'attività di analisi dei documenti soddisfa le condizioni di attivazione specificate nel flusso di lavoro di revisione umana. È possibile controllare l'elemento response
per determinare se è stato creato un ciclo umano. Per vedere tutto ciò che è incluso in questa risposta, consulta 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"]}"