Skip to content

记忆管理

本文详细介绍 HeurAMS 中记忆内容的创建、组织、编辑和导入导出.

数据模型概述

HeurAMS 使用三层数据模型管理学习内容:

1. Nucleon (核子) - 记忆内容

  • 位置data/nucleon/*.toml
  • 内容:问题、答案、元数据、模板等
  • 格式:TOML, 易于阅读和编辑
  • 作用:存储需要记忆的具体内容

2. Electron (电子) - 算法状态

  • 位置data/electron/*.json
  • 内容:复习历史、记忆强度、下次复习时间等
  • 格式:JSON, 由算法自动维护
  • 作用:跟踪每个 Nucleon 的学习进度

3. Orbital (轨道) - 策略配置

  • 位置data/orbital/*.toml
  • 内容:呈现方式、评估标准、模板绑定等
  • 格式:TOML, 可自定义
  • 作用:定义如何显示和评估记忆内容

4. Atom (原子) - 运行时关联

  • 内存对象:关联上述三者的统一接口
  • 作用:在运行时提供便捷的访问和操作

创建记忆内容

通过界面创建

  1. 主界面 → "创建内容" → 选择类型:

    • 基础问答:简单的一问一答
    • 古诗词:专为古诗文设计, 支持逐字解析
    • 选择题:预定义选项, 适合快速测试
    • 填空题:文中留空, 适合细节记忆
  2. 填写字段:

    toml
    # 示例:基础问答
    question = "光合作用的化学方程式是什么?"
    answer = "6CO₂ + 6H₂O → C₆H₁₂O₆ + 6O₂"
    tags = ["生物", "化学", "初中"]
    difficulty = 2  # 1-5, 难度系数
  3. 高级选项:

    • 模板:选择预定义的内容模板
    • :使用动态内容生成(见高级功能)
    • 语音:关联 TTS 发音文件
    • 图像:关联图片资源(计划中)

通过文件创建

可直接在 data/nucleon/ 目录创建 TOML 文件:

toml
# data/nucleon/biology_001.toml
id = "bio_001"
question = "细胞的基本结构包括哪些?"
answer = "细胞膜、细胞质、细胞核"
tags = ["生物", "细胞"]
metadata = { source = "教科书", chapter = "第一章" }

# 模板字段(使用古诗词模板时)
[template]
type = "poem"
author = "李白"
dynasty = "唐"

内容组织

标签系统

使用标签分类管理:

toml
tags = ["数学", "几何", "高中", "重要"]

界面中可按标签筛选、批量操作.

目录结构

可创建子目录组织相关文件:

data/nucleon/
├── 数学/
│   ├── 代数/
│   └── 几何/
├── 语文/
│   ├── 古诗词/
│   └── 文言文/
└── 英语/
    └── 单词/

系统会自动扫描所有子目录.

编辑与更新

界面编辑

  1. 内容管理界面选择要编辑的项目
  2. 修改后保存
  3. 系统会自动更新关联的 Electron 状态

文件编辑

直接编辑 TOML/JSON 文件, 重启应用后生效. 注意保持格式正确.

批量操作

  • 批量标签:为多个内容添加/删除标签
  • 批量移动:移动到不同目录
  • 批量导出:导出为 CSV 或 Anki 格式(计划中)

导入导出

导入现有数据

从 CSV 导入

  1. 准备 CSV 文件, 至少包含 "question" 和 "answer" 列
  2. 使用工具菜单的 "导入 CSV" 功能
  3. 映射字段, 选择目标标签

从 Anki 导入(开发中)

计划支持直接导入 .apkg 文件.

导出数据

导出为 CSV

bash
python -m heurams.tools.export_csv --output my_deck.csv

备份完整数据

复制整个 data/ 目录即可完整备份.

模板系统

内置模板

  1. 基础模板:简单问答

  2. 古诗词模板

    toml
    [template]
    type = "poem"
    title = "静夜思"
    author = "李白"
    dynasty = "唐"
    content = "床前明月光, 疑是地上霜. 举头望明月, 低头思故乡. "
    notes = "这是一首思乡诗. "
  3. 选择题模板

    toml
    [template]
    type = "mcq"
    question = "以下哪个是素数?"
    options = ["4", "7", "8", "9"]
    correct_index = 1  # 0-based
    explanation = "7只能被1和自身整除. "

自定义模板

data/template/ 创建 .toml 文件定义新模板:

toml
# data/template/my_template.toml
name = "化学方程式"
fields = [
    { name = "反应物", type = "text" },
    { name = "生成物", type = "text" },
    { name = "条件", type = "text", optional = true }
]
display = "{{反应物}} → {{生成物}} (条件: {{条件}})"

高级内容:宏与动态生成

宏系统

在内容中使用 插入动态内容:

toml
question = "{{random_number}} 的平方根是多少?"

系统会在显示时替换为实际值.

可用宏

  • :当前日期
  • :当前时间
  • :随机数字
  • :从列表中随机选择
  • 更多宏可通过插件扩展

最佳实践

内容设计建议

  1. 一个问题一个重点:避免复合问题
  2. 答案简洁明确:便于评估记忆
  3. 合理使用标签:便于后期管理
  4. 循序渐进:从简单到复杂安排内容

组织策略

  1. 按学科分类:数学、语文、英语等
  2. 按优先级标记:重要、复习、补充等
  3. 定期整理:删除已掌握或不再需要的内容

数据安全

  1. 定期备份 data/ 目录
  2. 版本控制:可将 nucleon/ 目录加入 Git
  3. 云同步:使用同步工具备份到云端(注意隐私)

故障排除

内容不显示

  • 检查文件是否在正确目录
  • 检查 TOML 语法是否正确
  • 查看日志文件 heurams.log

导入失败

  • 确认文件格式符合要求
  • 检查字符编码(推荐 UTF-8)
  • 查看错误日志

标签失效

  • 标签名称不要包含特殊字符
  • 重启应用重新加载

下一步

了解内容管理后, 可继续学习: