Skip to content

项目结构

本文档介绍 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"

扩展性设计

插件系统

支持通过插件扩展功能:

  • 算法插件 - 自定义间隔重复算法
  • 界面插件 - 自定义界面主题
  • 服务插件 - 集成新的外部服务

配置扩展

  • 支持自定义配置项
  • 环境变量覆盖
  • 用户偏好设置

性能考虑

内存管理

  • 使用惰性加载减少内存占用
  • 缓存常用数据提升性能
  • 定期清理过期数据

响应性优化

  • 异步处理耗时操作
  • 界面渲染优化
  • 网络请求并发控制

注意: 项目结构可能随开发进展而调整,请关注更新日志。