我开发了一款小型调查游戏,玩家可以输入或说出任何问题。难点在于给玩家一个可以理解的对话规则,而回复则来自本地语言模型。以下是游戏中使用的边界:

  1. 给对话一个固定的主题。案件文件有八项条目。玩家可以调查具体的指控,而不是决定一个生成的句子是否听起来可疑。措辞和问题顺序仍然自由,但案件文件给出了回复的参考依据。
  2. 将问题预算和裁决结果放在模型之外。游戏有18个问题,玩家可以自由发问,清除或拘留嫌疑人是玩家动作。生成的回复不能授予更多的问题或结束案件。
  3. 使压力成为可预测的资源。我使用三个明确的动作:询问恢复6点精神力,催促花费18点,指控花费22点。重复的问题和长时间的沉默也会减少精神力;过多的压力会使嫌疑人停止合作。
  4. 将技术故障与玩家决策分开。如果回复生成失败,问题将退还。暂停菜单的打开会停止沉默计时器。否则,后端错误或在设置菜单中花费的时间将成为玩家表现的一部分。
  5. 将语音视为多个阶段。识别产生玩家的问题,对话生成产生文本,合成产生声音。文本输入跳过识别。