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

这是演示在行动中的效果,并伴随着视频结尾处显示的录制数据:
在本教程中,我们将逐步讨论如何设置 ChatGPT 研究,以便您熟悉其内容并开始在下一个研究中整合这一强大功能!
注意:为了在您的研究中与 ChatGPT 建立连接,您需要在 Settings 标签下的 Special Features 中输入您自己的唯一 API 密钥,专门用于 开放 AI 集成。
ChatGPT 任务中的变量
变量 保存和存储记录的数据,包括字符串和数值。通常,熟悉使用 Labvanced 的研究人员会在现场创建变量,就像在创建事件时一样。
出于本演示的目的,我们将按照即将到来的部分列出变量:

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

显示文本对象
Display text 对象对于此 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. 下面输入来添加这样的起始消息。

如上所示,我们在本演示中使用了以下起始消息: 欢迎!请开始在下面的输入框中输入 😃 <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 对象。因此,当参与者在使用该对象时按下回车键,此事件将被触发。

动作
在指定上述内容后,我们继续定义作为此触发器结果发生的动作。
这样,这个变量将把参与者的查询(输入)打包成类似聊天的格式,通过在前面加上文本“你:”并添加一个换行符来开始新的一行。

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

我们还希望将 PromptsLeft 的变量值减少 1(请记住,在开始时我们让参与者能够发送 5 个提示)。

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

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

incoming event
通常,从 ChatGPT 获取响应需要时间,大约 100-500 毫秒。收到响应后,则可以作为触发器使用:
- 将响应记录为存储变量
- 在聊天中直观展示答案
- 导航到下一个试验
Trigger
OpenAI Trigger 利用 API 接收来自 ChatGPT 的答案,然后将该值存储到我们之前创建的 2 列数据框(此处名为 df)。

动作
在指定上述内容后,我们继续定义作为此触发器结果发生的动作。
以与先前步骤中显示参与者输入相似的方式,我们现在将显示 ChatGPT 的答案。
这里的不同之处在于,我们不是以“你:”开头,而是写“chatGPT:”作为常量字符串值,以引导聊天中的答案……而不是调用“输入”变量,我们通过选择它作为点击笔图标时列出的 触发器特定值 来调用 Chat GPT Answer。

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

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


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

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

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

我们使用延迟动作,因为研究将在时间过后自动关闭/结束,我们希望给参与者时间阅读屏幕上的内容,然后再结束研究。
ChatGPT 演示的记录数据预览
下面的图像捕捉了本研究设置的数据将如何在 Dataview and Export Tab 中显示,其中显示了试验编号(Trial_Nr)、任务名称(Task_Name)、chatGPT 答案和参与者提示(输入)以及剩下的提示数量(PromptsLeft):

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