labvanced logoLabVanced
  • Research
    • Publications
    • Researcher Interviews
    • Use Cases
      • Developmental Psychology
      • Linguistics
      • Clinical & Digital Health
      • Educational Psychology
      • Cognitive & Neuro
      • Social & Personality
      • Arts Research
      • Sports & Movement
      • Marketing & Consumer Behavior
      • Economics
      • HCI / UX
      • Commercial / Industry Use
    • 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
      • Text Transcription
      • Heart Rate Detection (rPPG)
  • Learn
    • Guide
    • Videos
    • Walkthroughs
    • FAQ
    • Release Notes
    • Documents
    • Classroom
  • Experiments
    • Cognitive Tests
    • Sample Studies
    • Public Experiment Library
  • 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 入门
    • 创建任务
    • 元素视频
    • 事件与变量
    • 高级主题
  • 操作指南
    • 介绍
    • 斯特鲁普任务
    • 词汇决策任务
    • 波斯纳凝视提示任务
    • 变化盲点闪烁范式
    • 眼动追踪示例研究
    • 婴儿眼动追踪研究
    • 带鼠标追踪的注意力捕获研究
    • 快速串行视觉呈现
    • 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 的提示。

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

向画布添加对象

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

聊天 GPT 研究的画布框架中对象的视图

显示文本对象

在此 ChatGPT 研究中,显示文本对象是必要的,以:

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

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

显示文本名称描述
Chat BoxChat Box 实际上是参与者的所有提示和 ChatGPT 的答案将以聊天格式呈现的地方。在此元素内部,有一个链接的变量称为 chatString,将显示参与者和 ChatGPT 答案的聊天字符串。

方向: 添加显示元素,将其调整为更大形状,修改占位符文本为其他内容,例如“文本”,突出显示它,在文本编辑器中单击顶部的红色 [x] 并从菜单中选择 ChatString 变量。Start value 文本将现在显示。
Top InstructionsTop 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 研究中是必要的,以完成以下操作:

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

为了本演示的目的,我们创建并命名了两个主要事件,以上动作将在这两个事件下进行处理:

  • 发送事件: 即,向 ChatGPT 发送消息并在聊天中显示
  • 接收事件: 即,接收来自 ChatGPT 的消息并在聊天中显示

发送事件

发送事件是指当参与者向 ChatGPT 发送询问时发生的操作,即它是从 Labvanced 发往 OpenAI 的信息。

我们希望通过此事件做到:

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

触发器

激活此事件的触发器是 Enter on Input 类型,特定目标是我们之前创建的 input 对象。因此,当参与者在使用此对象时按下 Enter 键,此事件将被触发。

输入触发的Enter

动作

指定上述内容后,我们继续定义由于此触发器而发生的动作。

此变量将把参与者的查询(输入)打包成聊天格式,通过前面加上文本‘You:’,然后添加一个换行符来开始新行。

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

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

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

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

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

设置变量以计算剩余多少提示

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

跳转动作下的下一次试验选项

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

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

接收事件

通常,接收来自 ChatGPT 的响应需要大约 100-500 毫秒的时间。一旦接收到响应,这可以用作触发器,以:

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

触发器

OpenAI Trigger 利用 API 从 ChatGPT 接收答案,然后将该值存储到我们之前创建的 2 列数据框中(这里命名为 df)。

发送提示到 OpenAI 的 OpenAI 触发器

动作

指定上述内容后,我们继续定义由于此触发器而发生的动作。

与我们在上一步中显示参与者的输入的方式类似,我们现在将做同样的工作以显示 ChatGPT 的答案。

不同之处在于,代替‘You:’,我们写上‘chatGPT:’作为常量字符串值,以在聊天中引入答案...而且代替 input 变量,我们通过选择作为 特定触发器值,选择 Chat GPT Answer。

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

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

创建变量以存储 Chat GPT 答案

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

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

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

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

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

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

接受会话事件

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

触发器

因此,触发器是 On Frame Start:

开始帧触发器

动作

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

延迟操作,其中接受会话。

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

记录的数据预览 ChatGPT 演示

下图捕获了此研究设置的数据将在 数据视图和导出选项卡 中的样子,其中显示了试验编号(Trial_Nr)、任务名称(Task_Name)、chatGPT 答案、参与者提示(input),以及剩余提示数量(PromptsLeft):

数据视图和导出选项卡的视图,其中显示了记录的每个变量的 ChatGPT 研究。


结论

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

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

Prev
快速串行视觉呈现
Next
眼动追踪演示:SVG作为关注区域