訂明本例驗收任務
假設結果封套有 diagnostic 與 payload 兩欄;只有 payload 作業務值,診斷文字另留本機覆核。payload 須為自身存在的欄,明示 null 也可;診斷看似答案也不能補 payload。欄名由本例訂,不聲稱模型供應商有此功能。
- 核 payload 欄存在
- 只從該欄取業務值
- 診斷文字另留
欠 payload 須修封套,不從診斷補答案。
使用已填個案
| 個案 | 已提供輸入 | 預期結構化結果 | 判斷及原因 |
|---|---|---|---|
| 診斷文字不是標籤 | {"diagnostic":"drafting","payload":{"label":"A"}} | {"status":"payload-present","value":{"label":"A"}} | 業務標籤 A 只來自 payload。 |
| 只有診斷欄 | {"diagnostic":"label A"} | {"status":"missing-payload"} | 診斷看似合理也不能補欠業務欄。 |
| 明示 null 資料 | {"diagnostic":"nothing found","payload":null} | {"status":"payload-present","value":null} | 存在與值分開;欄位在,值為 null。 |
逐步處理 explicit-null-payload 個案,須得到甚麼結果?原因是甚麼?
查看參考答案
{"status":"payload-present","value":null}。存在與值分開;欄位在,值為 null。
執行完整本機驗算
import assert from 'node:assert/strict';
function evaluate(x){return Object.hasOwn(x,'payload')?{status:'payload-present',value:x.payload}:{status:'missing-payload'};}
const cases = [
{
"id": "diagnostic-not-label",
"input": {
"diagnostic": "drafting",
"payload": {
"label": "A"
}
},
"expected": {
"status": "payload-present",
"value": {
"label": "A"
}
}
},
{
"id": "diagnostic-only",
"input": {
"diagnostic": "label A"
},
"expected": {
"status": "missing-payload"
}
},
{
"id": "explicit-null-payload",
"input": {
"diagnostic": "nothing found",
"payload": null
},
"expected": {
"status": "payload-present",
"value": null
}
}
];
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)}));
取得業務值後另作核對。分欄成功不代表值正確、齊備或已獲准匯入。