Kernel API 文档
概述
Kernel 是 HeurAMS 的核心业务逻辑模块,负责管理记忆系统的所有核心功能,包括数据模型、算法、谜题生成和流程控制。
子模块
1. Particles - 数据模型层
Atom 类
统一的数据容器,管理记忆单元的所有组件。
python
class Atom()构造函数:
python
def __init__(self, ident = "")核心方法:
link(key, value)- 链接组件到原子persist(key)- 持久化组件数据到文件__getitem__(key)- 字典式访问组件__setitem__(key, value)- 字典式设置组件
Electron 类
算法元数据管理,处理记忆调度信息。
python
class Electron:构造函数:
python
def __init__(self, ident: str, algodata: dict = {}, algo: str = "supermemo2")核心方法:
activate()- 激活此电子modify(var, value)- 修改算法数据revisor(quality, is_new_activation)- 算法迭代决策
Nucleon 类
记忆内容数据管理。
python
class Nucleon:构造函数:
python
def __init__(self, ident, payload)核心方法:
__getitem__(key)- 访问载荷数据__iter__()- 迭代载荷键名__len__()- 获取载荷大小
Orbital 类型
学习策略配置。
python
class Orbital(TypedDict):字段:
quick_view: list- 快速复习策略recognition: list- 识别训练策略final_review: list- 最终复习策略puzzle_config: dict- 谜题生成配置
2. Reactor - 流程控制层
Reactor 类
核心反应堆,管理记忆流程的状态机。
python
class Reactor:核心方法:
- 多阶段记忆流程管理
- 原子调度和资源分配
- 质量反馈机制
- 自动重定向逻辑
Glimpse 类
状态查看器,提供流程状态信息。
python
class Glimpse:功能:
- 实时查看记忆流程状态
- 调试和监控接口
3. Puzzles - 谜题生成层
BasePuzzle 类
谜题基类,定义统一的谜题接口。
python
class BasePuzzle:抽象方法:
refresh()- 刷新谜题内容validate()- 验证用户答案get_hint()- 获取提示信息
MCQPuzzle 类
选择题生成器。
python
class MCQPuzzle(BasePuzzle):特性:
- 从指定字段生成选择题
- 支持干扰项生成
- 自动评分机制
ClozePuzzle 类
填空题生成器。
python
class ClozePuzzle(BasePuzzle):特性:
- 从指定字段生成填空题
- 支持多种填空模式
- 智能空格检测
PuzzleRegistry 类
谜题注册表,管理所有可用的谜题类型。
python
class PuzzleRegistry:方法:
register(name, puzzle_class)- 注册谜题类型get_puzzle(name)- 获取谜题实例list_puzzles()- 列出所有谜题类型
4. Algorithms - 算法层
SM-2 算法
SuperMemo 2 间隔重复算法实现。
算法参数:
efactor- 易度系数 (1.3-2.5)rept- 重复次数interval- 下次间隔 (天数)next_date- 下次复习时间戳
迭代规则:
- 用户提供记忆质量评分 (0-5)
- 根据质量评分更新易度系数
- 计算新的复习间隔
- 更新下次复习日期
算法注册机制
统一的算法管理和扩展接口。
python
def get_algorithm(name: str) -> dict功能:
- 获取指定算法的配置
- 支持算法插件扩展
- 统一的算法接口
使用示例
创建完整的记忆单元
python
from heurams.kernel.particles import Atom, Electron, Nucleon
from heurams.kernel.particles.orbital import Orbital
# 创建原子
atom = Atom("learning_unit_001")
# 链接核子
nucleon = Nucleon("content_001", {
"content": "学习内容",
"translation": "翻译内容"
})
atom.link("nucleon", nucleon)
# 链接电子
electron = Electron("algo_001", {}, "supermemo2")
atom.link("electron", electron)
# 链接轨道
orbital: Orbital = {
"quick_view": [["cloze", 1], ["mcq", 0.5]],
"recognition": [["recognition", 1]],
"final_review": [["cloze", 0.7], ["mcq", 0.7]],
"puzzle_config": {
"cloze": {"from": "content"},
"mcq": {"from": "keyword_note"}
}
}
atom.link("orbital", orbital)使用谜题系统
python
from heurams.kernel.puzzles import PuzzleRegistry
# 获取谜题实例
puzzle = PuzzleRegistry.get_puzzle("mcq")
puzzle.refresh()
# 验证用户答案
is_correct = puzzle.validate(user_answer)算法迭代
python
# 激活电子
electron.activate()
# 算法迭代
electron.revisor(quality=4, is_new_activation=False)设计模式
原子化数据模型
- Atom: 统一的数据容器
- Electron: 算法元数据
- Nucleon: 内容数据
- Orbital: 学习策略
插件化架构
- 算法和谜题采用注册机制
- 支持动态扩展
- 统一的接口规范
状态机驱动
- Reactor 管理完整的记忆流程
- 多阶段状态转换
- 质量反馈机制
版本兼容性
- HeurAMS 0.4.x: 完全支持
- HeurAMS 0.3.x: 部分支持 (需要适配)
- HeurAMS 0.2.x: 不支持