以自然語言開發 PsyToolkit 腳本:專為非程式設計者設計的指南

傳統上,在 PsyToolkit 上開發實驗和問卷需要學習兩種獨立的特定領域程式語言 (DSL)。然而,透過我們基於 Gemini 技術的新平台,您不再需要煩惱程式碼。這個平台就像一位精通 PsyToolkit 的程式設計助手,您只需用日常語言與其對話,它就會為您完成所有程式碼編寫工作。

本指南將引導您瞭解兩種腳本類型:問卷腳本(適合線上調查)和實驗腳本(適合認知心理學實驗)。


第一部分:快速入門 — 自然語言對話流程

無論您要建立問卷還是實驗,開發過程都遵循一個簡單的對話流程。

  1. 設定目標 (Objective):以一句簡單且精確的中文開始,告訴平台您想做什麼。請盡量提供詳細資訊,這有助於平台生成更準確的腳本 [1, 2]。
    • 範例指令:
      • 「建立一個關於壓力感知的問卷,包含 10 個李克特量表題。」
      • 「設計一個視覺 Stroop 實驗,包含協調和非協調兩種刺激物。」
      • 「建立一個簡單的反應時間實驗,參與者必須在螢幕出現紅色方塊時按下 ‘a’ 鍵。」
  2. 分步精煉 (Iterative Refinement):平台會根據您的指令生成一份初步腳本,並提出結構化的問題,引導您提供更多細節 [3]。您可以將此過程視為與一位專業程式設計師協作,逐步完善您的想法。
    • 平台可能提出的問題:
      • 「您希望問卷包含哪些人口學問題?」
      • 「您希望 Stroop 實驗中使用的顏色有哪些?」
      • 「您希望參與者看到紅色方塊的時間是多久?回應時間限制是多久?」
  3. 即時修正與驗證 (Real-time Correction):在對話過程中,如果您輸入的內容有任何邏輯或格式上的問題,平台會立即提醒您,並提供非技術性的修改建議。這讓您能夠專注於心理學設計,而非程式碼的技術細節 [4, 5]。
    • 範例錯誤提示:
      • 「您試圖在實驗中儲存一個名為 ‘my_score’ 的變數,但此變數尚未被定義。請先使用 set 指令定義它。」

第二部分:問卷腳本(Survey Syntax)使用指南

問卷腳本適用於需要收集參與者意見、填寫人口學資料或進行人格測驗等場景 [6, 7]。

核心對話模式:

  • 定義問題類型: 您可以透過自然語言指令來指定問題類型。例如:
    • 「建立一個單選題,問題是『你最喜歡的顏色?』,選項是紅、黃、藍。」這會生成 t: radio 類型的問題 [6]。
    • 「新增一個多選題,讓參與者選擇所有他們喜歡的運動,選項是足球、籃球、網球。」這會生成 t: check 類型的問題 [6]。
  • 自訂選項與邏輯:
    • 您可以指定每個選項的文字,甚至可以為選項添加分數。例如:「在李克特量表中,從『非常不同意』到『非常同意』,分數從 1 到 7。」[6, 8]。
    • 若想實現條件跳轉,您可以說:「如果參與者在『你最喜歡的顏色?』中選擇了藍色,就跳到名為『blue_lover_q』的問題。」這將生成 jump 指令 [6]。
  • 插入多媒體內容:
    • 「在問卷中嵌入一個 YouTube 影片,標題是『請觀看以下影片並回答問題』。」這將生成 t: youtube 的問題 [6]。
  • 腳本部署:
    • 對話結束後,您可以選擇將問卷腳本以 .txt.zip 檔案格式下載,然後手動上傳到您的 PsyToolkit 帳戶 [9, 10]。
    • 或者,平台可能會提供一個直接部署到您帳戶的選項,將整個過程自動化 [11, 10]。

第三部分:實驗腳本(Experiment Syntax)使用指南

實驗腳本適用於需要精確時間控制、測量反應時間和進行複雜隨機化任務的場景 [12, 7]。

核心對話模式:

  • 定義刺激物: 您可以透過自然語言上傳和管理刺激物。
    • 「上傳三張圖片:happy.jpgsad.jpgneutral.jpg。」平台會引導您將檔案上傳到雲端,並將其自動納入腳本的 bitmaps 區段 [13]。
  • 設計實驗流程: 將實驗流程分解為多個步驟,然後依序告訴平台。這比一次性描述整個實驗更有效 [1, 3]。
    • 「請定義一個名為『stroop_trial』的任務。」
    • 「在任務中,顯示一張 word.bmp 圖片,其顏色為紅色,並在畫面上停留 500 毫秒。」這會生成 show 指令 [14]。
    • 「接著,等待參與者按下鍵盤上的『F』或『J』鍵,並記錄反應時間和按鍵。」這會生成 readkey 指令 [12]。
  • 設定變數與邏輯:
    • 「建立一個全域變數 &trial_count,每完成一個試驗就增加 1。」這將生成 set &trial_count increase [12]。
    • 「如果參與者的反應是正確的,將分數變數 &score 加 1。」這會生成 if 條件判斷式 [9]。
  • 定義資料儲存:
    • 您可以指定要儲存哪些資料以供後續分析。「在每個試驗結束時,請儲存試驗號碼、刺激物類型、反應時間和分數。」這將生成 save 指令,並確保您的數據文件結構清晰 [12, 9]。
  • 腳本部署:
    • 與問卷腳本類似,您可以在平台完成後下載一個 .zip 檔案,其中包含了所有腳本和刺激物。您只需將其直接上傳到您的 PsyToolkit 帳戶即可 [9, 10]。

小提示:

  • 賦予角色 (Role Assignment):在開始對話時,您可以先給予一個角色,例如「您現在是一位專門協助心理學研究的程式設計師。」這會幫助平台更好地理解您的意圖並產生更精確的腳本 [1]。
  • 從範例中學習 (Learning from Examples):PsyToolkit 官方文件庫有超過 50 個經典實驗範例 [15]。如果需要,您可以要求平台參考這些範例來產生腳本,例如:「請參考 Stroop 實驗的範例,為我設計一個類似的實驗。」這將大幅提高生成腳本的準確性 [16]。
  1. https://www.psytoolkit.org/features.html
  2. https://www.psytoolkit.org/doc3.6.4/online-survey-syntax.html
  3. https://www.psytoolkit.org/doc3.6.4/syntax.html
  4. https://www.psytoolkit.org/doc3.6.2/feedback.html
  5. https://www.psytoolkit.org/experiment-library/nback2.html
  6. https://www.psytoolkit.org/experiment-library/
  7. https://www.psytoolkit.org/lessons/
  8. https://www.psytoolkit.org/doc3.6.4/short_syntax.html
  9. https://ai.google.dev/gemini-api/docs/embeddings
  10. https://www.prompthub.us/blog/using-llms-for-code-generation-a-guide-to-improving-accuracy-and-addressing-common-issues
  11. https://dev.to/nagasuresh_dondapati_d5df/15-prompting-techniques-every-developer-should-know-for-code-generation-1go2
  12. https://learn.microsoft.com/en-us/azure/ai-foundry/openai/how-to/structured-outputs
創用 CC 授權條款
本網站由慈濟大學人類發展與心理學系副教授陳紹慶創建維護,網站內容採用創用 CC 姓名標示-非商業性 4.0 國際 授權條款授權.