互動開發指南

Gemini + OpenSesame + JATOS 互動開發指南

一份協助無程式背景研究者的標準化工作流程,將實驗構想轉化為可執行的線上實驗。

STEP 1: 觀念建構:認識你的工具

在開始之前,必須先理解各個工具在您的研究中所扮演的角色。它們各自獨立,但又相輔相成,共同構成一個強大的線上實驗工作流程。

您的實驗設計師

OpenSesame 是一個專為實驗設計的圖形化介面。您可以使用它來繪製實驗的流程圖、定義變項,並透過其內建的 inline_htmlinline_javascript 等「控制元件」,來嵌入客製化的程式碼。它提供了結構,而 Gemini 則提供內容。

關鍵設定:為了將實驗部署到 JATOS,在 OpenSesame 的 Experiment 控制元件中,必須將部署目標設定為 In a browser with OSWeb (osweb)

STEP 2: 研究主題與變項定義

在與 Gemini 溝通前,您必須先釐清自己的研究。將這些定義整理成一個清晰的列表,這對後續與 Gemini 溝通至關重要。

1. 研究問題

您想探討什麼?例如:「不同情緒效價的詞彙是否會影響 Stroop 效果的強度?」

2. 自變項 (Independent Variables)

您操弄的變項。例如:word_type (情緒詞: 正向, 負向, 中性) 和 congruency (一致, 不一致)。

3. 依變項 (Dependent Variables)

您測量的變項。例如:reaction_time (反應時間) 和 accuracy (正確率)。

4. 控制變項

保持恆定的條件,例如刺激呈現時間、字體大小等。

STEP 3: 實驗流程設計 (Flowchart)

這是整個計畫中最關鍵的一步。請用文字或簡單的流程圖,描述實驗的完整順序。一個清晰的流程是與 Gemini 有效溝通的基礎。

1
歡迎與同意書 (HTML)
2
指導語 (HTML)
3
練習試驗 (JavaScript)
4
正式實驗指導語 (HTML)
5
正式試驗 (JavaScript)
6
基本資料問卷 (HTML)
7
感謝與結束 (HTML)

STEP 4: 與 Gemini 的有效溝通 (Prompt Engineering)

有了清晰的流程後,就可以開始「指導」Gemini 工作。建議將一個元件的程式碼作為一次對話的目標。以下是一個請求生成「正式試驗」元件的範例 Prompt。

扮演一位專精於認知心理學實驗設計與 JavaScript 程式設計的專家。

我的目標是為 JATOS 平台建立一個「情緒 Stroop 任務」的實驗元件。

這是這個元件的詳細需求:
1.  **實驗目的:** 測量受試者對不同顏色詞彙的反應時間與正確率。
2.  **試驗總數:** 120 次。
3.  **刺激與變項:**
    * 自變項 A (word_type): 'positive', 'negative', 'neutral'
    * 自變項 B (congruency): 'congruent', 'incongruent'
    * 每個組合重複 20 次。
4.  **試驗流程:**
    * **隨機化:** 所有 120 個試驗必須在開始前完全隨機排序。
    * **流程細節:**
        a. 顯示一個置中的注視點 '+',持續 500 毫秒。
        b. 清除注視點,立即顯示刺激詞彙。
        c. 等待受試者按鍵 ('r', 'b', 'g')。
        d. 記錄反應鍵、反應時間與正確率。
        e. 不要顯示回饋。
        f. 進入下一個試驗。
5.  **數據記錄 (JATOS 整合):**
    * 在每一次試驗結束後,使用 `jatos.appendResultData(resultData)` 函數儲存數據。
    * `resultData` 應包含 trial_number, word_type, congruency 等資訊。
6.  **結束流程:**
    * 當所有試驗完成後,呼叫 `jatos.startNextComponent()`。

請為我生成一份完整的單一 HTML 檔案,將所有需要的 JavaScript 和 CSS 都包含在內。

STEP 5: OpenSesame 實作:將 Gemini 程式碼填入正確位置

有了 Gemini 產生的程式碼後,下一步就是將它們整合進您的 OpenSesame 實驗。您需要根據程式碼的類型,選擇對應的 OpenSesame 控制元件。

HTML 內容 (例如:指導語、問卷)

對於靜態內容,請使用 OpenSesame 的 inline_html 控制元件。在實驗流程中,找到並拖曳這個元件,然後將 Gemini 生成的 HTML 程式碼完整貼入其編輯器中。

JavaScript 腳本 (例如:試驗流程)

對於動態的實驗邏輯,您需要使用 OpenSesame 的 inline_javascript 控制元件。將 Gemini 生成的 JavaScript 程式碼貼入這個元件的編輯器中。OpenSesame 會在匯出時,自動將您的腳本打包進一個 JATOS 元件中。

STEP 6: 腳本部署與初步測試

完成 OpenSesame 的設定後,就可以將實驗上傳至 JATOS 進行測試。

  1. 設定 JATOS API: 在 OpenSesame 的 "Edit" -> "OSWeb and JATOS control panel" 中,填入您的 JATOS 伺服器網址和 API 金鑰,以建立連線。
  2. 匯出與上傳: 選擇 "File" -> "Publish to JATOS/MindProbe",並點擊「上傳至 JATOS」按鈕。OpenSesame 會自動將您的實驗上傳。
  3. 測試: 在 JATOS 頁面中,找到您剛上傳的實驗,並使用 Preview 功能來測試每個元件是否如預期運作。

STEP 7: 如何與 Gemini 討論除錯或優化

這是與 AI 協作最重要的一環。當您發現問題時,請遵循「具體描述、提供證據、明確提問」的原則。

❌ 無效的回報方式

「我的實驗不動了,請幫我修好。」

這樣的描述太模糊,Gemini 無法得知問題的上下文,也就難以提供有效的幫助。

✅ 有效的錯誤回報結構

1. 預期行為: 「我預期練習試驗結束後,會自動跳轉到下一個元件。」

2. 實際行為: 「但練習結束後畫面就變空白了。」

3. 錯誤訊息: 「瀏覽器開發者工具顯示錯誤:Uncaught TypeError: jatos.startNextComponent is not a function

4. 附上程式碼: 「這是相關的程式碼片段:[貼上程式碼]」

5. 明確提問: 「請問這個錯誤是什麼意思?我該如何修改程式碼?」