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
    • Services
  • Technology
    • Feature Overview
    • Code-Free Study Building
    • Eye Tracking
    • Mouse Tracking
    • Generative AI Integration
    • Multi User Studies
    • More ...
      • Reaction Time/Precise Timing
      • Text Transcription
      • Heart Rate Detection (rPPG)
      • Emotion Detection
      • Questionnaires/Surveys
      • Experimental Control
      • Data Privacy & Security
      • Desktop App
      • Mobile App
  • Learn
    • Guide
    • Videos
    • Walkthroughs
    • FAQ
    • Release Notes
    • Documents
    • Classroom
  • Experiments
    • Cognitive Tests
    • Sample Studies
    • Public Experiment Library
  • Pricing
    • Licenses
    • Top-Up Recordings
    • Subject Recruitment
    • Study Building
    • Dedicated Support
    • Checkout
  • About
    • About Us
    • Contact
    • Downloads
    • Careers
    • Impressum
    • Disclaimer
    • Privacy & Security
    • Terms & Conditions
    • Third-Party Licenses
  • Appgo to app icon
  • Logingo to app icon
Learn
指南
视频
步骤说明
常见问题解答
通讯档案
文档
课堂
  • 中國人
  • Deutsch
  • Français
  • Español
  • English
  • 日本語
指南
视频
步骤说明
常见问题解答
通讯档案
文档
课堂
  • 中國人
  • Deutsch
  • Français
  • Español
  • English
  • 日本語
  • 指南
    • 入门

      • 任务编辑器
      • 帧
        • 画布框架
        • 页面框架
        • 网站框架
      • 试验时间线
      • 刺激呈现
      • 响应的正确性
      • 对象
      • 事件
      • 变量
      • 任务向导
      • 试验系统
      • 实验设计
        • 创建研究
        • 数据框模式
        • 多用户实验设计
        • 纵向实验设计
    • 特色主题

      • 随机化与平衡
      • 眼动追踪
        • 在眼动追踪任务中呈现刺激
        • 如何选择眼动追踪校准设置
        • 在任务中设置眼动追踪
        • 记录和导出注视数据
        • 使用形状作为眼动追踪的兴趣区域 (AOI)
        • 参与者校准体验
      • 网页桥接
        • 选择网站 AOI | 锚定、调整和验证 AOI 跟踪
        • 在网站 AOI 上跟踪鼠标行为 | Web Bridge 指南
      • 问卷
      • 桌面应用
      • 示例研究
      • 参与者招募
      • API 访问
        • REST API
        • Webhook API
        • WebSocket API
      • 其他主题

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

      • 概述:主标签
      • 仪表板
      • 我的研究
      • 共享研究
      • 我的文件
      • 实验库
      • 我的账户
      • 许可与服务
    • 研究标签

      • 概述:研究特定标签
      • 研究设计
        • 任务
        • 阻塞
        • 会议
        • 组
      • 任务编辑器
        • 任务控制
        • 试验系统
        • 框架类型
        • 对象
        • 对象属性表
        • 变量
        • 系统变量表
        • 事件系统
        • 文本编辑器功能
        • 任务编辑器中的眼动追踪选项
        • 任务中的头部追踪
        • 多用户研究
      • 设置
      • 变量
      • 媒体
      • 文本与翻译
      • 启动与参与
      • 受试者管理
      • 数据视图和导出
        • 数据视图和变量 & 任务选择(旧版本)
        • 访问录音(旧版本)
  • 视频
    • 视频概览
    • 在 Labvanced 中开始使用
    • 创建任务
    • 元素视频
    • 事件与变量
    • 高级主题
  • 讲解
    • 简介
    • 斯特鲁普任务
    • 词汇决策任务
    • 波斯纳注视提示任务
    • 改变失明闪烁范例
    • 眼动追踪样本研究
    • 婴儿眼动追踪研究
    • 鼠标追踪注意捕获研究
    • 快速串行视觉呈现
    • ChatGPT 研究
    • 眼动追踪演示:图形作为 AOI
    • 多人演示:显示被试的光标
    • 手柄 / 摇杆控制器 - 基本设置
    • 具有 EEG 集成的桌面应用研究
    • 被试组平衡与变量设置
    • 构建多用户研究
    • 网站框架眼动追踪讲解
    • 条件性网络摄像头眼动追踪
  • 常见问题
    • 功能
    • 支持政策与指南
    • 安全与数据隐私
    • 许可
    • Labvanced 的精确度
    • 编程使用与 API
    • 离线使用 Labvanced
    • 故障排除
    • 研究创建问题
  • 新闻通讯档案
  • 文档
  • 课堂

ChatGPT 研究 | 教程

概述

在这个 ChatGPT 演示中, 您也可以将其导入到您的帐户中,并用作构建 ChatGPT 研究的模板,您可以看到当参与者写下提示时,ChatGPT 的回答会直接出现在 Labvanced 中!

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

用户输入触发菜单

这是演示在行动中的效果,并伴随着视频结尾处显示的录制数据:

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

注意:为了在您的研究中与 ChatGPT 建立连接,您需要在 Settings 标签下的 Special Features 中输入您自己的唯一 API 密钥,专门用于 开放 AI 集成。

ChatGPT 任务中的变量

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

出于本演示的目的,我们将按照即将到来的部分列出变量:

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

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

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

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

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

向画布添加对象

要设置聊天界面并展示说明,需要将几种不同类型的对象添加到画布中,如下所述。

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

显示文本对象

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

在变量中输入起始值。

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

输入触发器的回车

动作

在指定上述内容后,我们继续定义作为此触发器结果发生的动作。

这样,这个变量将把参与者的查询(输入)打包成类似聊天的格式,通过在前面加上文本“你:”并添加一个换行符来开始新的一行。

设置 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 个提示)。

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

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

跳转操作下的下一个试验选项

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

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

incoming event

通常,从 ChatGPT 获取响应需要时间,大约 100-500 毫秒。收到响应后,则可以作为触发器使用:

  1. 将响应记录为存储变量
  2. 在聊天中直观展示答案
  3. 导航到下一个试验

Trigger

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

发送提示到 OpenAI 的 OpenAI 触发器

动作

在指定上述内容后,我们继续定义作为此触发器结果发生的动作。

以与先前步骤中显示参与者输入相似的方式,我们现在将显示 ChatGPT 的答案。

这里的不同之处在于,我们不是以“你:”开头,而是写“chatGPT:”作为常量字符串值,以引导聊天中的答案……而不是调用“输入”变量,我们通过选择它作为点击笔图标时列出的 触发器特定值 来调用 Chat GPT Answer。

设置 chat string 变量以附加 ChatGPT 的答案

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

创建一个变量来存储 Chat GPT 答案

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

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

规定结果是实验将跳转到 ChatGPT 研究的下一个任务。

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

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

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

接受会话事件

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

触发器

因此,触发器是 On Frame Start:

帧开始的触发器

动作

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

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

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

ChatGPT 演示的记录数据预览

下面的图像捕捉了本研究设置的数据将如何在 Dataview and Export Tab 中显示,其中显示了试验编号(Trial_Nr)、任务名称(Task_Name)、chatGPT 答案和参与者提示(输入)以及剩下的提示数量(PromptsLeft):

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


结论

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

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

Prev
快速串行视觉呈现
Next
眼动追踪演示:图形作为 AOI