项目结构
本文档介绍 HeurAMS 项目的整体架构和模块组织结构。
系统架构概览
HeurAMS 采用分层架构设计,各层之间通过清晰的接口进行通信。
架构层次
┌─────────────────┐
│ Interface │ 用户界面层
├─────────────────┤
│ Kernel │ 核心业务层
├─────────────────┤
│ Providers │ 服务提供层
├─────────────────┤
│ Services │ 基础设施层
├─────────────────┤
│ Utils │ 工具函数层
└─────────────────┘模块详解
Interface 模块
用户界面层,负责与用户交互和界面展示。
主要功能:
- 终端用户界面 (TUI) 组件
- 交互逻辑处理
- 多平台适配支持
- 用户输入验证
核心组件:
ui/- 用户界面组件widgets/- 界面小部件screens/- 屏幕管理navigation/- 导航控制
Kernel 模块
核心业务逻辑层,包含间隔重复算法和记忆管理。
主要功能:
- SM-2 间隔重复算法实现
- 记忆数据管理和调度
- 学习进度跟踪
- 算法参数优化
核心组件:
algorithms/- 算法实现scheduler/- 学习调度器memory/- 记忆数据管理progress/- 进度跟踪
Providers 模块
外部服务提供层,集成第三方服务和 API。
主要功能:
- AI 服务接口集成
- TTS 语音服务
- 云存储同步
- 外部数据源
核心组件:
ai/- AI 服务提供者tts/- 语音服务提供者storage/- 存储服务提供者data/- 数据源提供者
Services 模块
基础设施服务层,提供通用的系统服务。
主要功能:
- 文件系统操作
- 网络通信
- 配置管理
- 日志记录
核心组件:
filesystem/- 文件系统服务network/- 网络服务config/- 配置管理logging/- 日志服务
Utils 模块
工具函数层,包含通用的辅助函数和工具。
主要功能:
- 通用工具函数
- 数据类型处理
- 字符串操作
- 数学计算
核心组件:
common/- 通用工具types/- 数据类型strings/- 字符串处理math/- 数学计算
数据流设计
学习流程数据流
用户输入 → Interface → Kernel → 算法处理 → 记忆更新 → 界面反馈服务调用数据流
Kernel → Providers → 外部服务 → 数据处理 → 结果返回文件组织结构
heurams/
├── src/
│ ├── interface/ # 用户界面层
│ ├── kernel/ # 核心业务层
│ ├── providers/ # 服务提供层
│ ├── services/ # 基础设施层
│ └── utils/ # 工具函数层
├── tests/ # 测试代码
├── docs/ # 文档
├── config/ # 配置文件
└── scripts/ # 构建脚本依赖关系
内部依赖
- Interface 依赖 Kernel 和 Utils
- Kernel 依赖 Providers、Services 和 Utils
- Providers 依赖 Services 和 Utils
- Services 依赖 Utils
外部依赖
- Textual - 终端用户界面框架
- Python 标准库 - 基础功能
- 第三方 API - AI 和 TTS 服务
配置管理
配置文件结构
toml
[interface]
theme = "dark"
language = "zh-CN"
[kernel]
algorithm = "sm2"
review_threshold = 0.8
[providers.ai]
api_key = ""
model = "gpt-3.5-turbo"
[providers.tts]
enabled = true
voice = "zh-CN-XiaoxiaoNeural"扩展性设计
插件系统
支持通过插件扩展功能:
- 算法插件 - 自定义间隔重复算法
- 界面插件 - 自定义界面主题
- 服务插件 - 集成新的外部服务
配置扩展
- 支持自定义配置项
- 环境变量覆盖
- 用户偏好设置
性能考虑
内存管理
- 使用惰性加载减少内存占用
- 缓存常用数据提升性能
- 定期清理过期数据
响应性优化
- 异步处理耗时操作
- 界面渲染优化
- 网络请求并发控制
注意: 项目结构可能随开发进展而调整,请关注更新日志。