> For AI agents: the complete documentation index is available at https://open-spaced-repetition.github.io/ts-fsrs/zh-TW/llms.txt, the full documentation bundle is available at https://open-spaced-repetition.github.io/ts-fsrs/zh-TW/llms-full.txt.

# Playground

直接在瀏覽器中執行目前工作區的建置。Monaco 使用儲存庫中 `ts-fsrs` 與 `@open-spaced-repetition/binding` 的真實宣告，因此懸停資訊、診斷、補全與跳至定義都與實際 package 一致。


瀏覽器實驗室

## 在 Worker 中執行具備完整型別的範例

ts-fsrs 排程器WASIP1 訓練器

正在載入型別編輯器…

Worker 輸出

編輯範例並執行。排程與參數訓練都在主執行緒之外進行，頁面會保持回應。


## 使用 WASIP1 binding 訓練

配套 package 的瀏覽器入口、CSV 轉換、`FSRSBindingItem` / `FSRSBindingReview` 建立，以及所有最佳化器呼叫都留在同一個專用 Worker 內。主執行緒只讀取所選 `File` 的文字並傳送給 Worker。


模型版本FSRS6FSRS7複習時區學習日開始時間00:0001:0002:0003:0004:0005:0006:0007:0008:0009:0010:0011:0012:0013:0014:0015:0016:0017:0018:0019:0020:0021:0022:0023:00排程懲罰

FSRS7 依每個學習日的實際長度計算小數天，保留當天內的間隔。所選時區和換日時間決定學習日邊界；日光節約時間下完整的 23 或 25 小時學習日仍計為 1 天。 為 FSRS7 訓練加入間隔增長和短間隔懲罰。預設關閉，不改變排程公式。

選擇 revlog.csv在專用 Worker 中訓練[下載範例 revlog.csv](https://github.com/open-spaced-repetition/fsrs-rs/files/15046782/revlog.csv)

請選擇 CSV 檔案。

revlog.csv schema（所有欄位皆為必填）| 欄位 | 型別 | 含義與限制 |
| --- | --- | --- |
| `card_id` | 字串 | 合併同一卡片歷史的穩定識別碼；包含逗號的值必須加上引號。 |
| `review_time` | 64 位元有號整數 | 毫秒 Unix 時間戳。FSRS6 使用整數學習日；FSRS7 依學習日實際長度計算小數天。 |
| `review_rating` | 無號整數（1–4） | 1 Again、2 Hard、3 Good 或 4 Easy。 |
| `review_state` | 無號整數（0–3） | 作答前狀態：0 New、1 Learning、2 Review 或 3 Relearning；從最後一個 New/Learning 區塊開始保留歷史。 |
| `review_duration` | 無號整數 | 必填的非負毫秒作答時間。 |


此連結會下載來自 `fsrs-rs` 的[範例 `revlog.csv`](https://github.com/open-spaced-repetition/fsrs-rs/files/15046782/revlog.csv)，包含 123,730 筆複習記錄，大小為 4,626,708 bytes。binding 使用 Rust `csv` parser，可正確處理 CRLF、引號與欄位內逗號。轉換器依 `card_id` 分組並按 `review_time` 排序，從最後一個 New/Learning 區塊開始保留歷史。所選 IANA 時區會逐筆解析時間戳記的當地時間與日光節約時間；早於所選 `nextDayStartsAt` 的當地複習會計入前一個學習日。FSRS6 以這些學習日之間的完整日數計算 `deltaT`。兩種模型都只建立目前 `deltaT > 0` 的訓練項目。

預設使用 FSRS7，同樣使用所選時區和學習日邊界。每個學習日內經過的時長除以該學習日的實際長度，跨日時累加各段占比，保留小數和當天內的間隔。日光節約時間下完整的 23 或 25 小時學習日仍計為 1 天。CSV 轉換和訓練應選擇相同模型。

FSRS6 可選擇啟用短期參數來建模同一天內的複習，或關閉它以只訓練長期權重。FSRS7 訓練一律使用 `enableShortTerm: true`。無論採用哪一種方式，頁面都會完整顯示回傳的 `weights` 陣列，不四捨五入也不截斷。
