跳至內容
Astera Technology

分清漏搜尋與漏回答

先查內容齊備,再分搜尋與生成缺口,不讓答對掩蓋欠依據。

下載完整個案資料及參考答案 ↓

訂明本例驗收任務

假設診斷有非空所需文件清單、實際內容編號及同事標出的答案是否正確。內容欠項先列搜尋缺口;只有內容齊備而答案錯,才列生成缺口。即使答對,欠內容仍不是已證實有完整依據的成功。

  1. 先核對必需內容
  2. 內容齊後才用答案標籤
  3. 記錄缺口階段及欠項

所需清單或答案標籤未備好,先補資料再診斷。

使用已填個案

原創假設輸入及確切答案鍵
個案已提供輸入預期結構化結果判斷及原因
欠所需依據{"required":["D1"],"context":["X"],"correct":false}{"stage":"retrieval","missing":["D1"]}D1 沒進入內容;只改答案不能證明搜尋已修好。
有依據仍答錯{"required":["D1"],"context":["D1"],"correct":false}{"stage":"generation","missing":[]}所訂內容要求齊備,已標出的錯答案指向後一步。
欠答案標籤{"required":["D1"],"context":["D1"]}{"error":"answer-label"}沒有同事布林標籤,不能判答案正確或不正確。
答對卻欠依據{"required":["D1","D2"],"context":["D1"],"correct":true}{"stage":"retrieval","missing":["D2"]}答案標正確也不能抹掉內容欠 D2。
下載可編輯 CSV ↓

逐步處理 lucky-answer-gap 個案,須得到甚麼結果?原因是甚麼?

查看參考答案

{"stage":"retrieval","missing":["D2"]}。答案標正確也不能抹掉內容欠 D2。

執行完整本機驗算

另存為 .mjs,以 Node.js 執行;只驗提供的個案
import assert from 'node:assert/strict';

function evaluate(x){
 if(!x.required.length)return {stage:'unresolved'};
 if(typeof x.correct!=='boolean')return {error:'answer-label'};
 const missing=[...new Set(x.required)].filter(id=>!x.context.includes(id)).sort();
 return {stage:missing.length?'retrieval':x.correct?'pass':'generation',missing};
}

const cases = [
  {
    "id": "missing-context",
    "input": {
      "required": [
        "D1"
      ],
      "context": [
        "X"
      ],
      "correct": false
    },
    "expected": {
      "stage": "retrieval",
      "missing": [
        "D1"
      ]
    }
  },
  {
    "id": "wrong-generation",
    "input": {
      "required": [
        "D1"
      ],
      "context": [
        "D1"
      ],
      "correct": false
    },
    "expected": {
      "stage": "generation",
      "missing": []
    }
  },
  {
    "id": "missing-answer-label",
    "input": {
      "required": [
        "D1"
      ],
      "context": [
        "D1"
      ]
    },
    "expected": {
      "error": "answer-label"
    }
  },
  {
    "id": "lucky-answer-gap",
    "input": {
      "required": [
        "D1",
        "D2"
      ],
      "context": [
        "D1"
      ],
      "correct": true
    },
    "expected": {
      "stage": "retrieval",
      "missing": [
        "D2"
      ]
    }
  }
];
for (const c of cases) assert.deepEqual(evaluate(c.input), c.expected, c.id);
console.log(JSON.stringify({checked:cases.length,caseIds:cases.map(c=>c.id)}));
下載可執行例子 ↓

分開階段時沿用相同來源及問題。此檢查按提供的標籤,不推斷模型內部原因,也不自行證明答案語意正確。

相關資源