跳至內容
Astera Technology

把診斷文字與業務結果分開

只從指定資料欄取業務值,診斷文字不能補缺失欄位。

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

訂明本例驗收任務

假設結果封套有 diagnostic 與 payload 兩欄;只有 payload 作業務值,診斷文字另留本機覆核。payload 須為自身存在的欄,明示 null 也可;診斷看似答案也不能補 payload。欄名由本例訂,不聲稱模型供應商有此功能。

  1. 核 payload 欄存在
  2. 只從該欄取業務值
  3. 診斷文字另留

欠 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。
下載可編輯 CSV ↓

逐步處理 explicit-null-payload 個案,須得到甚麼結果?原因是甚麼?

查看參考答案

{"status":"payload-present","value":null}。存在與值分開;欄位在,值為 null。

執行完整本機驗算

另存為 .mjs,以 Node.js 執行;只驗提供的個案
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)}));
下載可執行例子 ↓

取得業務值後另作核對。分欄成功不代表值正確、齊備或已獲准匯入。

相關資源