每个HIT最多只能创建10个任务

时间:2019-09-10 17:25:57

标签: python amazon-web-services boto3 boto mechanicalturk

我正在使用以下代码通过Boto 3在Mechanical Turk上创建HIT:

new_hit = mturk.create_hit(
    Title='my title',
    Description='my description',
    Keywords='my, keywords',
    Reward='0.02',
    MaxAssignments=25,
    LifetimeInSeconds=9999,
    AssignmentDurationInSeconds=9999,
    AutoApprovalDelayInSeconds=9999,
    Question='''<?xml version="1.0" encoding="UTF-8"?>
<ExternalQuestion xmlns="http://mechanicalturk.amazonaws.com/AWSMechanicalTurkDataSchemas/2006-07-14/ExternalQuestion.xsd">
<ExternalURL>https://myexternalurl/</ExternalURL>
<FrameHeight>540</FrameHeight>
</ExternalQuestion>'''
)

这应该创建一个具有25个作业的HIT。

但是,当我尝试检索结果时,只有10个作业:

results = mturk.list_assignments_for_hit(
    HITId='my HIT ID',
    AssignmentStatuses=['Submitted', 'Approved']
)

# This always maxes out at 10
print 'Number of assignments: ' + str(len(results['Assignments']))

我已经尝试了几种不同的HIT和几种不同的MaxAssignments值。它总是在10个作业中达到最大值。看来Mechanical Turk正在将MaxAssignments的上限设为10。

我在Mechanical Turk文档中找到了两条线索。首先:

  

使用少于10个分配创建的HIT不能扩展为具有   10个或更多作业。尝试以某种方式添加作业   使HIT的分配总数少于10   分配到10个或更多分配将导致   AWS.MechanicalTurk.InvalidMaximumAssignmentsIncrease例外。

     

https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/mturk.html#MTurk.Client.create_additional_assignments_for_hit

第二:

  

如果创建的HIT具有最多10个或更多的分配,则需要支付额外费用。有关更多信息,请参阅Amazon Mechanical Turk定价。

     

https://docs.aws.amazon.com/AWSMechTurk/latest/AWSMturkAPI/ApiReference_CreateHITOperation.html

但这并不能解释为什么我不能在第一个实例中为MaxAssignments使用大于10的值。我没有任何错误。

如何为每个HIT创建和检索十个以上的作业?

1 个答案:

答案 0 :(得分:2)

您是否尝试过指定MaxResults参数,如下所示:

response = client.list_assignments_for_hit(
    HITId='string',
    NextToken='string',
    MaxResults=123,
    AssignmentStatuses=[
        'Submitted'|'Approved'|'Rejected',
    ]
)