ChatGPT 研究 | 操作演示
概述
在这个 ChatGPT 演示 中,您也可以将其导入到您的帐户中,作为构建您的 ChatGPT 研究的模板,您可以看到当参与者写下提示时,ChatGPT 的答案直接出现在 Labvanced 中!
如下所示,有一个聊天区域显示所有历史记录,以及一个输入字段供参与者写下他们的提示:

这就是演示在实际操作中的样子,以及在视频末尾显示的记录数据:
在本操作演示中,我们将逐步讨论如何设置 ChatGPT 研究,以便您熟悉其内容并开始将这一强大功能纳入到您的下一个研究中!
注意:为了在您的研究中建立与 ChatGPT 的连接,您需要在 设置 标签页下的 特殊功能 中输入您自己的唯一 API 密钥,以用于 Open AI 集成。
ChatGPT 任务中的变量
变量 用于保存和存储记录的数据,包括字符串和数字值。经常使用 Labvanced 的研究人员会在创建事件时立即创建一个变量。
为了本演示的目的,我们将提前列出变量,如下节所述:

| 变量名称 | 描述 |
|---|---|
chatString | 这是将保存整个聊天字符串的变量,基本上格式化参与者的提示和 ChatGPT 的消息,下面的事件部分将详细解释。 附加变量设置:
|
df | 这是一个包含 2 列的 .csv 文件,作为数据框变量上传。 |
chatGPTAnswer | 该变量在调用时会被系统自动识别 [进一步解释如下]。此时无需创建它,但我们列出它,因为稍后会提到它。 附加变量设置:
|
PromptsLeft | 对于本演示,我们希望为参与者分配 5 个提示。因此,我们需要创建一个起始值为 5 的数字变量,然后使用事件在每次将提示发送给 ChatGPT 时减少该计数器。 附加变量设置:
|
Input | 该变量将在您将 输入字段对象 添加到编辑器后立即创建。它存储参与者输入的值,作为他们给 ChatGPT 的提示。 附加变量设置:
|
向画布添加对象
为了设置聊天界面和呈现说明,需要向画布添加几种不同类型的对象,如下所述。

显示文本对象
在此 ChatGPT 研究中,显示文本对象是必要的,以:
- 提供说明
- 在屏幕上显示聊天历史
在此演示中,我们创建并命名了以下显示元素:
| 显示文本名称 | 描述 |
|---|---|
Chat Box | Chat Box 实际上是参与者的所有提示和 ChatGPT 的答案将以聊天格式呈现的地方。在此元素内部,有一个链接的变量称为 chatString,将显示参与者和 ChatGPT 答案的聊天字符串。 方向: 添加显示元素,将其调整为更大形状,修改占位符文本为其他内容,例如“文本”,突出显示它,在文本编辑器中单击顶部的红色 [x] 并从菜单中选择 ChatString 变量。Start value 文本将现在显示。 |
Top Instructions | Top Instructions 包含参与者的说明,并包含一个链接的变量称为 PromptsLeft,它将显示参与者剩余可用的提示数量。 |
创建聊天框效果
在深入探讨之前,让我们谈谈将显示对话的聊天框。
由于 Labvanced 是一个在浏览器中运行的应用程序,因此它从屏幕顶部渲染到底部。这影响信息的呈现方式。为了创建类似聊天的效果,我们必须在 Chat Box 对象中输入一个 CSS 命令,以便聊天文本反向显示,让较新的文本显示在底部(我们希望这样,因为这在现实中聊天的样子是较新的消息出现在底部)。
要创建这种效果,只需选择 Chat Box 对象,在右侧面板中列出对象属性,向下滚动到 Change CSS Properties 区域并插入以下代码片段: p{ height: 300px; overflow: auto; display: flex; flex-direction: column-reverse; padding: 10px }
这是通过 column-reverse CSS 样式选项实现的,该选项基本上反转文本的流动,最终显示新消息在聊天的底部,而不是顶部。
这应该看起来像这样:

一旦您输入此代码片段,ChatString 变量的名称将跳到对象的底部。
使用同一 Object Properties 面板,您还可以通过分配 Border-Size 和 Border-Color 来指定聊天框的样式,在上面的示例中,Border-Size 设置为 2,Border-Color 为黑色。
起始值:聊天框内的文本
一般而言,当有人访问 ChatGPT 时,会有某种提示消息,例如‘嗨,我今天如何为您提供帮助?' 您可以通过访问创建的变量(在 Chat Box 对象中链接)并在 Variable Properties 下输入 Start Value 来添加此类起始消息。

如上所示,我们在此演示中使用以下起始消息: 欢迎!请在下面的输入字段中开始输入 😃 <br><br>
注意: <br> 是一个用于在文本中创建 换行符 的 HTML 标签,因此在创建新行并在聊天框内附加时将创建新行。
输入字段
输入字段是参与者将编写的提示,将发送给 ChatGPT。要创建一个,只需从编辑器侧边的对象面板插入一个 输入对象。
插入后,系统会提示您为与此对象关联的变量命名。对于本演示,我们将此对象命名为 input。
重要: 此外,为了进一步控制与此特定对象相关的选项,在右侧面板的 Object Properties 中,当选择此对象时,请确保指示以下选项:
Show Question Header:选项为 未选择Input type选择为text.Focused标记为true,使输入字段处于活动状态(即参与者不必每次都单击它才能输入)。
事件概述
事件在此 ChatGPT 研究中是必要的,以完成以下操作:
- 显示并发送参与者的提示给 ChatGPT
- 接收并在聊天中显示 ChatGPT 的答复
- 记录聊天字符串(由参与者编写和由 ChatGPT 创建)
- 进展到下一个试验
为了本演示的目的,我们创建并命名了两个主要事件,以上动作将在这两个事件下进行处理:
- 发送事件: 即,向 ChatGPT 发送消息并在聊天中显示
- 接收事件: 即,接收来自 ChatGPT 的消息并在聊天中显示
发送事件
发送事件是指当参与者向 ChatGPT 发送询问时发生的操作,即它是从 Labvanced 发往 OpenAI 的信息。
我们希望通过此事件做到:
- 在聊天区域显示输入字段中的文本
- 将参与者写入的提示保存为变量数据
- 将其发送给 ChatGPT
触发器
激活此事件的触发器是 Enter on Input 类型,特定目标是我们之前创建的 input 对象。因此,当参与者在使用此对象时按下 Enter 键,此事件将被触发。

动作
指定上述内容后,我们继续定义由于此触发器而发生的动作。
此变量将把参与者的查询(输入)打包成聊天格式,通过前面加上文本‘You:’,然后添加一个换行符来开始新行。

Set/Record Variable动作包含我们之前创建的chatString变量。- 其中有几个
Arithmetic操作,它们基本上创建了聊天的效果。当将字符串元素与(+)结合时,您便是在附加并通过组合变量和值来使字符串更长。 - 以下是此算术操作中值的说明:
ChatString:调用特定变量,然后后面的内容将附加到它。You::一个常量字符串值,您直接输入以给参与者分配标识。input:命名为input的变量,即参与者在输入字段中输入的内容现在将在聊天框中显示。<br><br>:一个常量字符串值,这是通过 HTML<br>创建新行的方式。
在此事件中的第二个动作是 Send to OpenAI 动作,利用 API 将参与者所写的内容(即 input 变量的内容)发送给 OpenAI。

我们还希望将 PromptsLeft 变量的值减少 1(记得在开始时我们分配给参与者发送 5 个提示的额度)。

一旦参与者按下 Enter,我们还希望他们继续进行下一个试验。因此,为此我们使用了 Jump Action,并指定为 Next Trial。

注意: 我们为此 ChatGPT 研究创建了 6 次试验,您将在下面显示记录数据的部分了解更多。当然,有许多处理试验使用方式的方法,在此演示中我们选择了这种方法。如果您有任何问题,请随时与我们联系!

接收事件
通常,接收来自 ChatGPT 的响应需要大约 100-500 毫秒的时间。一旦接收到响应,这可以用作触发器,以:
- 将响应记录为存储变量
- 在聊天中可视化呈现答案
- 导航到下一个试验
触发器
OpenAI Trigger 利用 API 从 ChatGPT 接收答案,然后将该值存储到我们之前创建的 2 列数据框中(这里命名为 df)。

动作
指定上述内容后,我们继续定义由于此触发器而发生的动作。
与我们在上一步中显示参与者的输入的方式类似,我们现在将做同样的工作以显示 ChatGPT 的答案。
不同之处在于,代替‘You:’,我们写上‘chatGPT:’作为常量字符串值,以在聊天中引入答案...而且代替 input 变量,我们通过选择作为 特定触发器值,选择 Chat GPT Answer。

下面的动作还被添加以将 ChatGPT 答案(自动从 API 接收到)记录为其自己的值。

由于任务将在提示数量达到 =0 时自动结束,我们希望给参与者一个机会阅读 ChatGPT 的最后答案,因此我们使用 Control Action 的 Delayed Action 在最后一次试验结束时延迟 3000 毫秒,Requirement Action 规定如果 PromptsLeft 变量等于 0,则实验将继续进行到 Next Task.


结束屏幕和保存数据 - 任务 2
在我们的案例中,下一个任务称为‘结束’,这是一个感谢屏幕,其中实验被设置为接受会话,即研究结束。

接受会话事件
为了保存研究数据,我们希望在参与者到达这一点时接受会话并结束研究。
触发器
因此,触发器是 On Frame Start:

动作
使用另一个 Delayed Action 的 Jump Action → Accept / End Session 用于保存数据。

我们使用延迟操作,因为研究将在时间过去后自动关闭/结束,我们希望给参与者时间阅读屏幕上的内容,然后研究结束。
记录的数据预览 ChatGPT 演示
下图捕获了此研究设置的数据将在 数据视图和导出选项卡 中的样子,其中显示了试验编号(Trial_Nr)、任务名称(Task_Name)、chatGPT 答案、参与者提示(input),以及剩余提示数量(PromptsLeft):

结论
总的来说,这个演示展示了如何利用 ChatGPT 功能,在参与者和 ChatGPT 之间创建交互和对话,同时将输入和响应保存为变量值。
有许多方法和方式可以使用此功能来构建 ChatGPT 研究。如果您有任何问题,请与我们联系!