Gemini + OpenSesame + JATOS 互動開發指南
一份協助無程式背景研究者的標準化工作流程,將實驗構想轉化為可執行的線上實驗。
STEP 1: 觀念建構:認識你的工具
在開始之前,必須先理解各個工具在您的研究中所扮演的角色。它們各自獨立,但又相輔相成,共同構成一個強大的線上實驗工作流程。
您的實驗設計師
OpenSesame 是一個專為實驗設計的圖形化介面。您可以使用它來繪製實驗的流程圖、定義變項,並透過其內建的 inline_html
和 inline_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 有效溝通的基礎。
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 進行測試。
- 設定 JATOS API: 在 OpenSesame 的 "Edit" -> "OSWeb and JATOS control panel" 中,填入您的 JATOS 伺服器網址和 API 金鑰,以建立連線。
- 匯出與上傳: 選擇 "File" -> "Publish to JATOS/MindProbe",並點擊「上傳至 JATOS」按鈕。OpenSesame 會自動將您的實驗上傳。
- 測試: 在 JATOS 頁面中,找到您剛上傳的實驗,並使用
Preview
功能來測試每個元件是否如預期運作。
STEP 7: 如何與 Gemini 討論除錯或優化
這是與 AI 協作最重要的一環。當您發現問題時,請遵循「具體描述、提供證據、明確提問」的原則。
❌ 無效的回報方式
「我的實驗不動了,請幫我修好。」
這樣的描述太模糊,Gemini 無法得知問題的上下文,也就難以提供有效的幫助。
✅ 有效的錯誤回報結構
1. 預期行為: 「我預期練習試驗結束後,會自動跳轉到下一個元件。」
2. 實際行為: 「但練習結束後畫面就變空白了。」
3. 錯誤訊息: 「瀏覽器開發者工具顯示錯誤:Uncaught TypeError: jatos.startNextComponent is not a function
」
4. 附上程式碼: 「這是相關的程式碼片段:[貼上程式碼]」
5. 明確提問: 「請問這個錯誤是什麼意思?我該如何修改程式碼?」