Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Tutorial ini menjelaskan operasi API yang dapat Anda gunakan untuk memulai menggunakan Amazon A2I.
Untuk menggunakan Notebook Jupyter untuk menjalankan operasi ini, pilih Notebook Jupyter dari Kasus Penggunaan dan Contoh Menggunakan Amazon A2I dan gunakan Menggunakan Instans SageMaker Notebook dengan Notebook Amazon A2I Jupyter untuk mempelajari cara menggunakannya dalam instance notebook AI. SageMaker
Untuk mempelajari lebih lanjut tentang operasi API yang dapat Anda gunakan dengan Amazon A2I, lihat. Gunakan APIs di Amazon Augmented AI
Buat Tim Kerja Pribadi
Anda dapat membuat tim kerja pribadi dan menambahkan diri Anda sebagai pekerja sehingga Anda dapat melihat pratinjau Amazon A2I.
Jika Anda tidak terbiasa dengan Amazon Cognito, kami sarankan Anda menggunakan konsol SageMaker AI untuk membuat tenaga kerja pribadi dan menambahkan diri Anda sebagai pekerja swasta. Untuk petunjuk, silakan lihat Langkah 1: Buat Tim Kerja.
Jika Anda terbiasa dengan Amazon Cognito, Anda dapat menggunakan instruksi berikut untuk membuat tim kerja pribadi menggunakan API. SageMaker Setelah Anda membuat tim kerja, perhatikan tim kerja ARN ()WorkteamArn
.
Untuk mempelajari lebih lanjut tentang tenaga kerja pribadi dan konfigurasi lain yang tersedia, lihat. Tenaga kerja swasta
Buat tenaga kerja pribadi
Jika Anda belum membuat tenaga kerja pribadi, Anda dapat melakukannya menggunakan kumpulan pengguna Amazon Cognito. Pastikan Anda telah menambahkan diri Anda ke kumpulan pengguna ini. Anda dapat membuat tim kerja pribadi menggunakan AWS SDK untuk Python (Boto3)
create_workforce
fungsi tersebut. Untuk bahasa khusus lainnya SDKs, lihat daftar di. CreateWorkforce
response = client.create_workforce(
CognitoConfig={
"UserPool": "Pool_ID
",
"ClientId": "app-client-id
"
},
WorkforceName="workforce-name
"
)
Buat tim kerja pribadi
Setelah Anda membuat tenaga kerja pribadi di AWS Wilayah untuk mengonfigurasi dan memulai lingkaran manusia Anda, Anda dapat membuat tim kerja pribadi menggunakan AWS SDK untuk Python (Boto3) create_workteam
fungsi tersebut. Untuk bahasa khusus lainnya SDKs, lihat daftar di. 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
"
},
}
]
)
Akses ARN tim kerja Anda sebagai berikut:
workteamArn = response["WorkteamArn"]
Daftar tim kerja pribadi di akun Anda
Jika Anda telah membuat tim kerja pribadi, Anda dapat mencantumkan semua tim kerja di AWS Wilayah tertentu di akun Anda menggunakan AWS SDK untuk Python (Boto3) list_workteams
fungsi tersebut. Untuk bahasa khusus lainnya SDKs, lihat daftar di. ListWorkteams
response = client.list_workteams()
Jika Anda memiliki banyak tim kerja di akun Anda, Anda mungkin ingin menggunakanMaxResults
,SortBy
, dan NameContains
memfilter hasil Anda.
Buat Alur Kerja Tinjauan Manusia
Anda dapat membuat alur kerja tinjauan manusia menggunakan operasi Amazon CreateFlowDefinition
A2I. Sebelum membuat alur kerja tinjauan manusia, Anda perlu membuat UI tugas manusia. Anda dapat melakukan ini dengan CreateHumanTaskUi
operasi.
Jika Anda menggunakan Amazon A2I dengan integrasi Amazon Textract atau Amazon Rekognition, Anda dapat menentukan kondisi aktivasi menggunakan JSON.
Buat UI Tugas Manusia
Jika Anda membuat alur kerja tinjauan manusia untuk digunakan dengan integrasi Amazon Ttract atau Amazon Rekognition, Anda perlu menggunakan dan memodifikasi templat tugas pekerja yang sudah dibuat sebelumnya. Untuk semua integrasi kustom, Anda dapat menggunakan template tugas pekerja kustom Anda sendiri. Gunakan tabel berikut untuk mempelajari cara membuat UI tugas manusia menggunakan templat tugas pekerja untuk dua integrasi bawaan. Ganti template dengan milik Anda sendiri untuk menyesuaikan permintaan ini.
Untuk mempelajari lebih lanjut tentang template ini, lihatContoh Template Kustom untuk Amazon Texttract.
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>
"""
Menggunakan template yang ditentukan di atas, Anda dapat membuat template menggunakan AWS SDK untuk Python (Boto3) create_human_task_ui
fungsi. Untuk bahasa khusus lainnya SDKs, lihat daftar di. CreateHumanTaskUi
response = client.create_human_task_ui(
HumanTaskUiName="human-task-ui-name
",
UiTemplate={
"Content": template
}
)
Elemen respon ini berisi tugas manusia UI ARN. Simpan ini sebagai berikut:
humanTaskUiArn = response["HumanTaskUiArn"]
Buat JSON untuk menentukan kondisi aktivasi
Untuk integrasi bawaan Amazon Textract dan Amazon Rekognition, Anda dapat menyimpan kondisi aktivasi di objek JSON dan menggunakannya dalam permintaan Anda. CreateFlowDefinition
Selanjutnya, pilih tab untuk melihat contoh kondisi aktivasi yang dapat Anda gunakan untuk integrasi bawaan ini. Untuk informasi tambahan tentang opsi kondisi aktivasi, lihatSkema JSON untuk Kondisi Aktivasi Loop Manusia di Amazon Augmented AI.
Contoh ini menentukan kondisi untuk kunci tertentu (sepertiMail address
) dalam dokumen. Jika kepercayaan Amazon Textract berada di luar ambang batas yang ditetapkan di sini, dokumen dikirim ke manusia untuk ditinjau, dengan kunci spesifik yang memulai loop manusia diminta ke pekerja.
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
}
}
]
}
]
}
)
Buat alur kerja tinjauan manusia
Bagian ini memberikan contoh CreateFlowDefinition
AWS SDK untuk Python (Boto3) permintaan menggunakan sumber daya yang dibuat di bagian sebelumnya. Untuk bahasa khusus lainnya SDKs, lihat daftar di. CreateFlowDefinition Gunakan tab di tabel berikut untuk melihat permintaan untuk membuat alur kerja tinjauan manusia untuk integrasi bawaan Amazon Textract dan Amazon Rekognition.
Jika Anda menggunakan integrasi bawaan dengan Amazon Textract, Anda harus menentukan "AWS/Textract/AnalyzeDocument/Forms/V1"
untuk "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
"
},
]
)
Setelah membuat alur kerja tinjauan manusia, Anda dapat mengambil ARN definisi aliran dari respons:
humanReviewWorkflowArn
= response["FlowDefinitionArn"]
Buat Loop Manusia
Operasi API yang Anda gunakan untuk memulai loop manusia bergantung pada integrasi Amazon A2I yang Anda gunakan.
-
Jika Anda menggunakan integrasi bawaan Amazon Textract, Anda menggunakan operasi ini AnalyzeDocument.
-
Jika Anda menggunakan integrasi bawaan Amazon Rekognition, Anda menggunakan operasi ini. DetectModerationLabels
-
Jika Anda menggunakan integrasi khusus, Anda menggunakan StartHumanLoopoperasi.
Pilih jenis tugas Anda di tabel berikut untuk melihat contoh permintaan Amazon Textract dan Amazon Rekognition menggunakan file. AWS SDK untuk Python (Boto3)
Contoh berikut menggunakan AWS SDK untuk Python (Boto3) to call analyze_document
in us-west-2. Ganti teks merah yang dicetak miring dengan sumber daya Anda. Sertakan DataAttributes
parameter jika Anda menggunakan tenaga kerja Amazon Mechanical Turk. Untuk informasi selengkapnya, lihat dokumen 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"]
)
Loop manusia hanya dibuat jika kepercayaan Amazon Texact untuk tugas analisis dokumen memenuhi kondisi aktivasi yang Anda tentukan dalam alur kerja tinjauan manusia Anda. Anda dapat memeriksa response
elemen untuk menentukan apakah loop manusia telah dibuat. Untuk melihat semua yang termasuk dalam tanggapan ini, lihat 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"]}"