You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PCIbex Farm实验代码运行显示空白屏问题求助

问题诊断与修复方案

核心问题分析

  1. HTML转义导致渲染失败:Target试次中直接将<input>标签拼接进newText,PennController会自动转义HTML字符,导致输入框无法正常渲染,甚至引发DOM加载异常,最终显示空白屏。
  2. 试次标签与序列调度冲突:同一行生成的两个试次共用training标签,randomize("training")会打乱所有同标签试次的顺序,破坏Prime-Target的配对关系,同时可能引发试次加载逻辑冲突。

修复后的完整代码

PennController.ResetPrefix(null)

// 按pair分组随机化,每组内先执行Prime再执行Target
Sequence(
    randomize("training_pair"),
    SendResults()
)

Template("training_trials.csv", row =>
    newTrial("training_pair",
        // Prime试次模块
        newText("PRIME: " + row.prime_sentence).print(),
        newController("AcceptabilityJudgment", {
            s: row.prime_sentence,
            as: ["1", "2", "3", "4", "5", "6", "7"],
            presentAsScale: true,
            instructions: "Evaluate the sentence",
            leftComment: "weird",
            rightComment: "good"
        }).center().print().wait(),
        newTimer("pause", 300).start().wait(),
        
        // Target试次模块:用newHtml渲染带输入框的内容
        newHtml("target-content", 
            "TARGET: " + row.target_sentence.replace("___", "<input type='text' id='gap' style='width:100px;'>")
        ).print(),
        newButton("Next").print().wait()
    )
)

关键修复点说明

  • 替换newText为newHtml处理HTML内容:newHtml会直接解析HTML标签,确保输入框正常显示,解决空白屏的核心问题。
  • 合并Prime与Target为单个试次组:将同一CSV行的两个试次整合到一个newTrial中,用training_pair作为标签,既保证Prime-Target的严格顺序,又能通过randomize("training_pair")实现组间随机化。
  • 消除标签重复问题:每个CSV行对应独立试次组,避免同标签试次引发的序列混乱。

可选拆分试次方案(如需独立试次)

如果必须将Prime和Target拆分为独立试次,可通过pairID生成唯一标签保证配对顺序:

PennController.ResetPrefix(null)

// 随机化pair组,每组内先执行Prime再执行Target
Sequence(
    ...shuffle(Template("training_trials.csv", row => [`training_prime_${row.pairID}`, `training_target_${row.pairID}`]).flat()),
    SendResults()
)

Template("training_trials.csv", row => [
    newTrial(`training_prime_${row.pairID}`,
        newText("PRIME: " + row.prime_sentence).print(),
        newController("AcceptabilityJudgment", {
            s: row.prime_sentence,
            as: ["1", "2", "3", "4", "5", "6", "7"],
            presentAsScale: true,
            instructions: "Evaluate the sentence",
            leftComment: "weird",
            rightComment: "good"
        }).center().print().wait(),
        newTimer("pause", 300).start().wait()
    ),
    newTrial(`training_target_${row.pairID}`,
        newHtml("target-content", 
            "TARGET: " + row.target_sentence.replace("___", "<input type='text' id='gap' style='width:100px;'>")
        ).print(),
        newButton("Next").print().wait()
    )
])

该方案通过pairID生成唯一试次标签,用shuffle和数组展开实现pair组的随机化,同时严格保留每组内Prime-Target的顺序。

内容的提问来源于stack exchange,提问作者maria_turner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 22:13:10