labvanced logoLabVanced
  • Research
    • Publications
    • Researcher Interviews
    • Use Cases
      • Behavioral Psychology
      • Personality & Social Psychology
      • Cognitive & Neuro Psychology
      • Developmental & Educational Psychology
      • Clinical & Health Psychology
      • Sports & Movement Psychology
      • Marketing & Consumer Psychology
    • Labvanced Blog
  • Technology
    • Feature Overview
    • Desktop App
    • Phone App
    • Precise Timing
    • Experimental Control
    • Eye Tracking
    • Multi User Studies
    • More ...
      • Questionnaires
      • Artificial Intelligence (AI) Integration
      • Mouse Tracking
      • Data Privacy & Security
  • Learn
    • Guide
    • Videos
    • Walkthroughs
    • FAQ
    • Release Notes
    • Documents
    • Classroom
  • Experiments
    • Public Experiment Library
    • Labvanced Sample Studies
  • Pricing
    • Pricing Overview
    • License Configurator
    • Single License
    • Research Group
    • Departments & Consortia
  • About
    • About Us
    • Contact
    • Downloads
    • Careers
    • Impressum
    • Disclaimer
    • Privacy & Security
    • Terms & Conditions
  • Appgo to app icon
  • Logingo to app icon
Learn
指南
视频
教程
常见问题
发行说明
教室
  • 中國人
  • Deutsch
  • Français
  • Español
  • English
指南
视频
教程
常见问题
发行说明
教室
  • 中國人
  • Deutsch
  • Français
  • Español
  • English
  • 指南
    • 开始使用

      • 对象
      • 事件
      • 变量
      • 任务向导
      • 试验系统
      • 研究设计
        • 任务
        • 阻塞
        • 会议
        • 组
    • 特色主题

      • 随机化与平衡
      • 眼动追踪
      • 桌面应用
      • 示例研究
      • 参与者招募
      • API 访问
        • REST API
        • Webhook API
        • WebSocket API
      • 其他主题

        • 精确的刺激时序
        • 多用户研究
        • Labvanced中的头部追踪 | 指南
    • 主应用标签

      • 概览:主标签
      • 仪表盘
      • 我的研究
      • 共享研究
      • 我的文件
      • 实验库
      • 我的账户
      • 我的许可
    • 研究标签

      • 概览:研究特定标签
      • 研究设计
        • 任务
        • 阻塞
        • 会议
        • 组
      • 任务编辑器
        • 主要功能和设置
        • 试验系统
        • 画布和页面框架
        • 对象
        • 对象属性表
        • 变量
        • 系统变量表
        • 事件系统
        • 试验随机化
        • 文本编辑器功能
        • 任务中的眼动追踪
        • 任务中的头部追踪
        • 多用户研究
      • 研究设置
        • 启动和主要设置
        • 浏览器和设备设置
        • 实验特征设置
      • 描述
        • 关于描述信息的更多细节
        • 图像、链接和描述中的引用
      • 变量
      • 媒体
      • 翻译
      • 运行
      • 发布和记录
        • 在 Labvanced 发布研究的要求
        • 招募参与者和众包
        • 许可证选择与确认
        • 发布您的 Labvanced 研究后
      • 共享
      • 参与者
      • 数据查看与导出
        • 数据视图和变量 & 任务选择(旧版本)
        • 访问录音(旧版本)
  • 视频
    • 视频概览
    • 在 Labvanced 中开始使用
    • 创建任务
    • 元素视频
    • 事件与变量
    • 高级主题
  • 逐步指导
    • 简介
    • 斯特鲁普任务
    • 词汇决策任务
    • 波斯纳注视提示任务
    • 改变失明闪烁范式
    • 眼动追踪示例研究
    • 婴儿眼动追踪研究
    • 鼠标追踪下的注意力捕获研究
    • 快速串行视觉呈现
    • ChatGPT 研究
    • 眼动追踪演示:将SVG作为兴趣区
    • 多用户演示:在研究中显示参与者的光标
    • 游戏手柄/操纵杆控制器 - 基本设置
    • 带有 EEG 集成的桌面应用研究
  • 常见问题
    • 功能
    • 安全性与数据隐私
    • 许可
    • Labvanced 的精度
    • 程序化使用与 API
    • 离线使用 Labvanced
    • 故障排除
    • 研究创建问题
  • 版本说明
  • 教室

ChatGPT 研究 | 指南

概述

在这个 ChatGPT 演示中, 你也可以将其导入到你的账户,并用作构建 ChatGPT 研究的模板。你会看到当参与者写下一个提示时,来自 ChatGPT 的答案会直接显示在 Labvanced 中!

如下面所示,有一个聊天区域,其中显示了所有历史记录,以及一个输入字段,参与者可以在其中输入他们的提示:

用户输入触发菜单

这就是演示的实际效果以及视频末尾展示的记录数据:

在本指南中,我们将逐步讨论如何设置 ChatGPT 研究,以便你熟悉其内容并开始在下一个研究中整合这一强大功能!

注意:为了在你的研究中建立与 ChatGPT 的连接,你需要在 实验设置 标签下的 实验特性 栏目中输入自己独特的 API 密钥,并激活专门用于 Open AI 集成 的选项。

ChatGPT 任务中的变量

变量 用于保存和存储记录数据,包括字符串和数值。通常,熟悉使用 Labvanced 的研究人员会在现场创建变量,就像创建事件时一样。

为了演示的目的,我们将提前列出即将介绍的变量:

列出在此 ChatGPT 研究中使用的自定义变量的变量表
变量名称描述
chatString这是将保存整个聊天字符串的变量,基本上格式化聊天中显示的参与者提示和 ChatGPT 消息的行,详细内容将在下面的事件部分中解释。

附加变量设置:
  • 起始值: 欢迎!请开始在下面的输入字段中输入:)<br><br>
  • 记录类型: 仅最终值
df这是一个包含 2 列的 .csv 文件,作为数据框变量上传。
chatGPTAnswer当你调用它时,这个变量会被系统自动识别 [后面会进一步解释]。此时无需创建它,但我们列出它是因为稍后会提到。

附加变量设置:
  • 记录类型: 仅最终值
PromptsLeft对于这个演示,我们希望为参与者分配 5 个提示。因此,我们需要创建一个初始值为 5 的数值变量,然后使用事件在每次发送提示到 ChatGPT 时减少该计数器。

附加变量设置:
  • 起始值: 5
  • 记录类型: 仅最终值
Input此变量将在你将 输入字段对象 放入编辑器时创建。它存储参与者输入的作为其提示的值。

附加变量设置:
  • 记录类型: 仅最终值

向画布添加对象

为了设置聊天界面并呈现说明,需要向画布添加几种不同类型的对象,如下所述。

ChatGPT 研究中画布框架中的对象视图

显示文本对象

显示文本对象对于这个 ChatGPT 研究是必需的,目的是:

  1. 提供说明
  2. 在屏幕上显示聊天历史

在这个演示中,我们创建并命名了以下显示元素:

显示文本名称描述
聊天框聊天框 本质上是参与者的所有提示和 ChatGPT 的答案以聊天格式出现的地方。在这个元素中,有一个名为 chatString 的链接变量,它会显示参与者的聊天字符串和 ChatGPT 的答案。

说明: 添加显示元素,将其调整为较大,修改占位符文本为其他内容,如“文本”,突出显示它,点击文本编辑器顶部的红色 [x],从菜单中选择 ChatString 变量。起始值 文本现在会显示。
顶部说明顶部说明 包含参与者的说明,并包括一个名为 PromptsLeft 的链接变量,该变量会显示参与者剩余的提示数量。

创建聊天框效果

在我们深入之前,先来谈谈聊天框,聊天内容将在其中显示。

由于 Labvanced 是一个在浏览器中运行的应用程序,它从屏幕顶部到屏幕底部进行渲染。这影响信息的呈现方式。为了创建聊天效果,我们需要为 聊天框 对象输入一条 CSS 命令,使聊天文本反向显示,更近的文字显示在底部(我们希望如此,因为这正是现实生活中聊天的样子,更近的消息出现在底部)。

要创建此效果,你只需选择 聊天框 对象,然后在列表出对象属性的右侧面板中向下滚动到 更改 CSS 属性 区域,并插入以下代码片段: p{ height: 300px; overflow: auto; display: flex; flex-direction: column-reverse; padding: 10px }

这可以通过 column-reverse CSS 样式选项实现,基本上反转文本的流动,最终在聊天底部显示更新的消息,而不是顶部。

这应该看起来像这样:

在侧边菜单中输入代码以创建聊天效果的对象属性。

一旦你输入这个代码片段,ChatString 变量的名称将跳至该对象的底部。

使用相同的 对象属性 面板,你还可以指定聊天框的样式,通过设置 边框大小 和 边框颜色,如上面的例子中,边框大小 设置为 2,边框颜色 设置为黑色。

起始值:聊天框内的文本

一般来说,当某人访问 ChatGPT 时,会有某种提示信息,例如 “嗨,我今天可以如何帮助你?” 你可以通过访问创建的变量(该变量链接在 聊天框 对象内)并在 变量属性 下输入 起始值 来添加这样的起始消息。

在变量中输入起始值。

如上所示,我们在这个演示中使用了以下起始消息: 欢迎!请开始在下面的输入字段中输入:)<br><br>

注意: <br> 是用于创建文本中的 换行符 的 HTML 标签,以便在聊天框中创建新行时形成新行。

输入字段

输入字段是参与者将写下他们的提示并发送给 ChatGPT 的地方。要创建一个,只需从编辑器侧的对象面板中插入 输入对象。

插入后,系统会提示你命名与此对象相关联的变量。对于这个演示,我们将这个对象命名为 input。

重要: 此外,为了进一步控制与此特定对象相关的选项,在对象属性的右侧面板中,当选择该对象时,请确保指示以下选项:

  • 显示问题标题: 选项 未选中
  • 输入类型 选择为 文本。
  • 聚焦 标记为 true,这将使输入字段处于活动状态(即参与者不必每次都点击才能输入)。

事件概述

事件在这项 ChatGPT 研究中是必要的,以实现以下操作:

  1. 显示并发送参与者的提示给 ChatGPT
  2. 接收并在聊天中显示 ChatGPT 的答案
  3. 记录聊天字符串(由参与者写入和 ChatGPT 创建)
  4. 进行下一个试验

为了本指南的目的,我们在上述行动下创建并命名了两个主要事件:

  • 出站事件: 即,向 ChatGPT 发送消息并在聊天中显示
  • 入站事件: 即,从 ChatGPT 接收消息并在聊天中显示

出站事件

出站事件指的是参与者向 ChatGPT 发送查询时发生的操作,即它是从 Labvanced 发出并发送至 OpenAI 的信息。

通过这个事件,我们的目标是:

  1. 将输入字段中的文本呈现在聊天区域
  2. 将参与者写的提示保存为变量数据
  3. 将其发送给 ChatGPT

触发器

触发此事件的是 在输入时按回车 触发器类型,特定目标是我们之前创建的 input 对象。因此,当参与者在使用此对象时按回车,这个事件将被触发。

在输入时按回车触发器

动作

在指定了上述内容后,我们继续定义因该触发器而发生的动作。

结合这些,变量将参与者的查询(输入)打包为一种聊天格式,以 'You:' 开头,并加入一个换行符,以开始新的一行。

设置 chatstring 变量以记录在 ChatGPT 研究中的聊天交流。

  • 设定/记录变量 动作包含我们之前创建的 chatString 变量。
  • 其中包含几个 算术 操作,基本上创建了聊天的效果。通过组合字符串元素与 (+),你是在附加并使字符串通过组合变量和数值变得更长。
  • 这里是此算术操作内值的解释:
    • ChatString:调用特定变量,然后后面的内容将附加到它。
    • You: 一个常量字符串值,你输入以给参与者他们的标签。
    • input:变量名为 input,即参与者在输入字段中输入的内容现在将在聊天框中显示。
    • <br><br>:常量字符串值,这是使用 HTML <br> 创建新行的方式。

此次事件中的第二个动作是 发送至 OpenAI 动作,它利用 API 将参与者写的内容(即 input 变量的内容)发送给 OpenAI。

发送至 OpenAI 动作,利用 API 发送参与者写的内容

我们还希望将变量 PromptsLeft 的值减少 1(记得最开始我们允许参与者发送 5 个提示)。

设置变量以计算剩余提示数量

一旦参与者按下回车,我们也希望他们进入下一个试验。因此为此我们使用了 跳转动作 并指定 下一个试验。

跳转动作中的下一个试验选项

注意: 我们为这个 ChatGPT 研究创建了 6 个试验,稍后你将明白下面部分 显示记录的数据。当然有很多方法来处理试验的使用,这里我们选择这种方法。如果你有任何问题,请与我们联系!

选择 6 个试验以对齐提示计数

入站事件

通常,从 ChatGPT 获得响应需要时间,大约 100-500 毫秒。一旦收到响应,则可以用作触发器来:

  1. 将响应记录为存储变量
  2. 在聊天中可视化呈现答案
  3. 转到下一个试验

触发器

OpenAI 触发器 利用 API 从 ChatGPT 接收答案,并将该值存储到我们之前创建的的 2 列数据框(此处命名为 df)中。

发送提示到 OpenAI 的 OpenAI 触发器

动作

在指定了上述内容后,我们继续定义因该触发器而发生的动作。

以类似的方式,我们将在之前的步骤中显示参与者的输入,现在也同样显示 ChatGPT 的答案。

不同之处在于,不是 ‘You:’ 我们写 ‘chatGPT:’ 作为常量字符串值来引入聊天中的答案。。。而且不再使用 ‘input’ 变量,而是选择 Chat GPT 答案 作为 触发器特定值,并在点击铅笔图标时列出。

设置聊天字符串变量以附加来自 ChatGPT 的答案

下面的动作也被添加,以将 ChatGPT 答案(通过 API 自动接收的)记录为它自己的值。

创建变量以存储 Chat GPT 答案

因为当 Prompts 数量达到 0 时任务将自动结束,我们希望给参与者一个机会来阅读 ChatGPT 的最后答案,因此我们使用 控制动作 中的 延迟动作 将最后试验结束的时间延迟 3000 毫秒,需求动作 规定如果 PromptsLeft 变量等于 0,则实验进展到 下一个任务。

当提示计数达到零时,延迟 3000 毫秒的延迟动作。

指定因此,实验将跳转到 ChatGPT 研究的下一个任务。

结束屏幕和保存数据 - 任务 2

在我们的案例中,下一个任务称为“结束”,并呈现感谢屏幕,实验被设置为接受会话,即研究结束。

任务编辑器中第二个 ChatGPT 研究的视图

接受会话事件

为了保存研究的数据,我们希望在参与者达到这一点时接受会话并结束研究。

触发器

因此,触发器是 在帧开始时:

在帧开始时触发器

动作

通过另一个 延迟动作,跳转动作 → 接受/结束会话 被用于保存数据。

延迟动作,在该动作中会话被接受。

我们使用延迟动作是因为在时间过后,研究会自动关闭/结束,我们希望给参与者时间阅读屏幕上的内容,然后研究才结束。

ChatGPT 演示的记录数据预览

下面的图像捕捉到本研究设置的数据在 数据查看和导出标签 中的样子,其中显示了试验编号(Trial_Nr),任务名称(Task_Name),chatGPT 答案,和参与者提示(input),以及剩余提示数量(PromptsLeft):

查看数据查看和导出标签,记录的每个变量的数据在 ChatGPT 研究中显示。


结论

总而言之,这个演示展示了如何利用 ChatGPT 功能创造参与者与 ChatGPT 之间的互动和对话,同时将输入和响应保存为变量值。

有许多方法和途径可以利用此功能构建 ChatGPT 研究。如果你有任何问题,请与我们联系!

Prev
快速串行视觉呈现
Next
眼动追踪演示:将SVG作为兴趣区