醫智匯

synthetic-data

synthetic-data

怎麼用

打開你的 AI 助手,把下面這句話貼給它。下面那一大段是寫給它看的,你不必讀。

請照平台的 synthetic-data 這個 skill 幫我做

適用:教學或示範用的工具需要「看起來像病歷、像排班表」的案例資料,但不是任何真實的人。

平台的安全檢查只認樣式,分不出真假:長得像身分證字號、健保卡號、病歷號就會被擋(twn-id、nhi-card、patient-mrn 是 blocker),

像病患或員工欄位名會抬高等級下限。照本 skill 產生資料,就不會命中;真的需要真實樣式時,走最後一節的人工核可。

什麼時候用這個 skill

  • 使用者要做教材、練習題、展示畫面,內容需要病人或員工「案例」。
  • 使用者手上有真資料想拿來當範例:不可以。立即提醒(llms.txt 鐵律 1),改用本 skill 產生。
  • 若工具會連到真實系統或存真實資料,這不是合成資料的問題,回到分級問診。

合成資料的長相(不會命中檢查)

欄位用這個不要用
身分證字號X0 開頭加 8 碼,例如 X012345678(第二碼是 0,真實格式第二碼只會是 1 或 2)A123456789 這類真實格式
健保卡號9999 開頭加 8 碼,例如 9999000012340000 開頭的 12 碼
病歷號欄位名用 case_no,值用 DEMO-000123「病歷號」「MRN」加純數字
姓名王測試、李範例、陳示範、林假名任何真實同仁或病人姓名
生日/日期1900 年代,例如 1901-02-03近年的真實日期
員工工號欄位名用 demo_staff_no,值用 T-0001employee_id、工號 加真實格式
診斷、檢驗值可以用常見教科書案例,但配上面的假姓名與假編號從真實病歷複製

畫面上要標示「示範資料,非真實個案」,讓使用者一眼看出。

產生器(貼進 index.html 即可)

const DEMO_NAMES = ['王測試', '李範例', '陳示範', '林假名', '張樣本'];
function makeFakePatient(i) {
  return {
    name: DEMO_NAMES[i % DEMO_NAMES.length],
    id_no: `X0${String(10000000 + i).slice(-8)}`,       // 第二碼 0:真實格式不會有
    nhi_no: `9999${String(10000000 + i).slice(-8)}`,
    case_no: `DEMO-${String(i).padStart(6, '0')}`,
    birth: `19${String(1 + (i % 99)).padStart(2, '0')}-01-01`,
  };
}
function makeFakeStaff(i) {
  return { name: DEMO_NAMES[i % DEMO_NAMES.length], demo_staff_no: `T-${String(i).padStart(4, '0')}`, unit: '示範科' };
}

manifest 怎麼寫

  • `data.collects` 留空,除非這個應用真的把資料存進平台的資料服務。

它問的是「這個應用存了什麼」,不是「畫面上出現了什麼」——平台用它判斷應用有沒有儲存

(目錄上的「會存資料」標記),而且 public/members 的應用只要它非空就會被發佈閘門擋下,

訊息是「不能儲存資料」。一個把假案例寫死在頁面裡的衛教工具什麼都沒存,填了反而讓它

被標成有儲存、而且再也不能設為公開(2026-09-20 實跑中真的發生過)。

應用若真的把假資料存進資料服務(例如讓學生練習填寫並留下紀錄),那就照 form-app 的規則

如實列出存下來的欄位。

  • classification.context 多半是 education。
  • skills_used 加 synthetic-data。
  • 不需要宣告 synthetic_fixtures:資料不會命中檢查。

真的需要「像真的」時:人工核可(例外路徑)

有些教學要學生辨識真實格式(例如身分證檢查碼),假資料必須長得像真的,檢查一定會命中。做法:

  • 把假資料集中在獨立檔案或目錄(例如 fixtures/),不要散在程式碼裡。
  • manifest 加 data.synthetic_fixtures: [fixtures/](目錄以 / 結尾,或列出檔案)。
  • push 讓 CI 掃過:這些檔案內的資料命中不會擋 CI,會列在 synthetic.hits,狀態 none。
  • 告訴使用者:到平台的應用管理頁「合成資料」卡簽署同意書並送出申請,審核員核准後才能發佈(測試環境與正式環境都要)。
  • 核可綁定這些檔案的內容:之後改動 fixtures/ 內的檔案,要重新申請;核可一年有效。

金鑰、eval、http:// 資源不在豁免範圍:即使放在 fixtures/ 也照常擋。