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

# Playground

直接在浏览器中运行当前工作区的构建。Monaco 使用仓库中 `ts-fsrs` 与 `@open-spaced-repetition/binding` 的真实声明，因此悬停信息、诊断、补全与跳转定义都和实际包一致。


浏览器实验室

## 在 Worker 中运行类型完备的示例

ts-fsrs 调度器WASIP1 训练器

正在加载类型编辑器…

Worker 输出

编辑示例并运行。调度与参数训练都在主线程之外执行，页面始终保持响应。


## 使用 WASIP1 binding 训练

配套包的浏览器入口、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` 解析器，正确支持 CRLF、引号和字段内逗号。转换器按 `card_id` 分组并按 `review_time` 排序，从最后一个 New/Learning 块开始保留历史。所选 IANA 时区会逐条解析时间戳的当地时间与夏令时，早于所选 `nextDayStartsAt` 的当地复习计入前一学习日；FSRS6 以这些学习日之间的完整日数计算 `deltaT`。两种模型都只创建当前 `deltaT > 0` 的训练项。

默认使用 FSRS7，同样使用所选时区和学习日边界。每个学习日内经过的时长除以该学习日的实际长度，跨日时累加各段占比，保留小数和当天内的间隔。夏令时下完整的 23 或 25 小时学习日仍计为 1 天。CSV 转换和训练应选择相同模型。

FSRS6 可选择启用短期参数来建模当天内的复习，或关闭它以只训练长期权重。FSRS7 训练始终使用 `enableShortTerm: true`。无论哪种方式，页面都会完整显示返回的 `weights` 数组，不舍入、不截断。
