Pybossa:如何存储和评估答案

时间:2017-06-21 11:12:56

标签: pybossa

我正在开发基于Pybossa的众包平台。在提出的任务中,我坚持使用以下代码 -

$(".btn-submit").off('click').on('click', function(){
        var answer = $("textarea#text").val();
        $("#viewport_" + task.id).hide();
        pybossa.saveTask(task.id, answer).done(function(data){
            deferred.resolve();
            $("#success").fadeIn();
            setTimeout(function() { $("#success").fadeOut() }, 2000);
        })
    });

此代码用于获取回复并将其存储为answer

如果我在用户回复的任务中有很多问题,结构如下 -

Q.1 This is question 1?
Q.2 This is question 2?
Q.3 This is question 3?

用户以单独的文本形式回复这些内容 -

answer1

answer2

answer3

如何存储多个答案,Pybossa在计算结果时也可以对每个答案进行加权平均(例如通过 Golden Tasks 。)我还想知道Pybossa如何评估答案。

2 个答案:

答案 0 :(得分:3)

我想做类似的事情。到目前为止我的解决方案是构造一个Javascript对象并将其保存到taskrun结果中。稍后我会解析这个并提取我想要的字段。

我创建了一个HTML表单:

<form action = "">
<input placeholder="First Name" type="text" name="firstname">
<input placeholder="Last Name" type="text" name="lastname">
<select class="span2" name="gender">
   <option value="Male">Male</option>
   <option value="Female">Female</option>
</select>
<button class="btn btn-submit">Submit!</button>
</form>

然后在pybossa.saveTask方法中构造一个答案对象:

var firstname = $("input[name='firstname']").val();
var lastname = $("input[name='lastname']").val();
var gender = $("select[name='gender']").val();

var answer = {
  firstname: firstname,
  lastname: lastname,
  gender: gender   
 };

但是这并没有回答你问题的第二部分,即如何让PyBossa对结果进行加权平均。

答案 1 :(得分:2)

ch4s的答案是正确的。对于第二部分,您需要使用webhooks solution of PYBOSSA

您需要使用webhooks,在完成所有task_runs后通知微服务。然后,系统将下载,处理并生成结果。因为它使用Enki和PYBOSSA的API,你可以做任何你想做的事情:

  • 为同一任务请求更多task_runs(换句话说,通过n_answers字段增加任务冗余)。
  • 向您想要的任何人发送包含结果的电子邮件。
  • 使用有关结果的信息更新您选择的社交网络。
  • 使用PYBOSSA的新网络推送通知向用户通知新结果(我们在Sr. Alergeno
  • 中执行此操作