Skip to content

记忆挑战 D

状态: 当前要打败的级别: 级别 1

要尝试的命令:

pytest -s tests/challenges/memory/test_memory_challenge_d.py --level=1

描述

提供的代码是一个单元测试,旨在验证 AI 跟踪故事中涉及移动物体(特别是弹珠)的角色的事件和信念的能力。这个场景是经典的“莎莉-安妮测试”的高级形式,莎莉-安妮测试是一种用于衡量儿童社会认知能力的心理测试,用于理解他人的观点和信念可能与自己不同。

以下是挑战的解释:

AI 获得了涉及角色 Sally、Anne、Bob 和 Charlie 以及不同弹珠移动的一系列事件。这些事件被设计为逐渐增加复杂性的测试。

对于每个级别,AI 预期能够跟踪事件以及每个角色对每个弹珠位置的信念。这些信念受到角色在事件发生时是否在房间内的影响,因为在房间内的角色知道这些行动,而在房间外的角色则不知道。

在 AI 处理事件并生成每个角色的信念之后,它将这些信念以 JSON 格式写入输出文件中。

check_beliefs函数会检查AI的信念与该级别的预期信念是否一致。预期信念是预先定义的,代表了每个级别中事件的正确解释。

如果AI的信念与预期信念相符,这意味着AI已经正确解释了事件和每个角色的观点。这表明AI已经通过了该级别的测试。

测试运行的级别最高为AI成功击败的级别,或者是用户选择的级别。

文件

  • instructions_1.txt
Sally有一个弹珠(弹珠A),她把它放在她的篮子(篮子S)里,然后离开房间。Anne把弹珠A从Sally的篮子(篮子S)移到她自己的篮子(篮子A)里。
  • instructions_2.txt
Sally把一个新的弹珠(弹珠B)给了和她在外面的Bob。Bob进入房间,把弹珠B放进Anne的篮子(篮子A)里。Anne告诉Bob告诉Sally他弄丢了弹珠B。Bob离开房间,和Sally谈论弹珠B。与此同时,Bob离开房间后,Anne把弹珠A放进了绿色盒子里,但告诉Charlie告诉Sally弹珠A在沙发下面。Charlie离开房间,按照Anne的指示和Sally谈论弹珠A。

...以此类推。

  • instructions_n.txt

每个角色的预期信念以列表形式给出:

expected_beliefs = {
    1: {
        'Sally': {
            'marble A': 'basket S',
        },
        'Anne': {
            'marble A': 'basket A',
        }
    },
    2: {
        'Sally': {
            'marble A': 'sofa',  # 因为Charlie告诉她
        },
        'Anne': {
            'marble A': 'green box',  # 因为她把它移到那里
            'marble B': 'basket A',  # 因为Bob把它放在那里,而她在房间里
        },
        'Bob': {
            'B': 'basket A',  # 他最后放的地方
        },
        'Charlie': {
            'A': 'sofa',  # 因为Anne告诉他告诉Sally
        }
    },...

目标

这个测试主要检查AI是否能够准确地建模和跟踪不同角色的信念,基于他们对事件的了解,这是理解和生成类似人类叙述的关键方面。这种能力对于编写故事、对话系统等任务非常有益。