🚧 Hazelita 项目仍处于早期构建阶段。项目的实际架构 和/或 定位可能会发生较大转变,以下内容仅供预览。
👋 简介
这里是 Hazelita 项目的预告帖。该帖旨在阐明 Hazelita 项目的基本构想和预计的开发情况。
🛠️ Hazelita 是什么?
Hazelita 是一款基于 SymPy 的 创新型高中数学计算套件。与传统的计算工具或搜题软件不同,Hazelita 旨在通过智能算法,以交互式方式展示 完整的解题过程,并在这一过程中 引导学生深入理解 数学概念和解题方法,在从分析题目到解答题目的过程中 对学生进行全程的思维引导。
🤔 Hazelita 不是什么?
Hazelita 不是普通的数学计算器,也不是搜题 app 工具。参见下方的对比表格。
对比维度 | 普通计算器 | 搜题 app | 计算工具 app | Hazelita |
核心功能 | 数值/符号 的计算和输出 | 题库匹配和答案展示 | 基于 CAS 的符号计算 | 解题过程和逻辑 |
输出内容 | 只提供最终答案 | 展示参考答案 | 可能提供计算过程 | 生成完整严格的数学推导 |
技术本质 | 预置算法 | 图像识别和数据库检索 | CAS 系统 | 适用于高中生的 CAS 系统 |
适用范围 | 几乎全部受众 | 几乎全部受众 | 几乎全部受众 | 专注于高中学生和教师 |
教育意义 | 工具依赖性强 | 容易形成思维惰性 | 仅可用于中间步骤的计算 | 在解题过程中培养数学思维 |
🤓 Hazelita 的通俗理解
读者或许试用过 微软数学、Photomath 之类的软件。Hazelita 的预期定位与它们在大多数方面大同小异,但仍有一些区别。前者只能给出针对某个算式或方程的详细过程;而你可以直接向 Hazelita 提问 情景化的计算问题。
例如,你可以直接向 Hazelita 提问:椭圆 C: x2/4 + y2/3 = 1 与直线 l: y = x+1 的两交点之间的距离是?Hazelita 会 自动规划解题路径,如联立并对联立后方程使用韦达定理得出结果等。
读者可能会疑惑,这一点完全可以在 Wolfram Mathematica 等大型计算套件中完成,为何选择 Hazelita?事实上,前者的适用范围远大于高中数学,一定程度上,其功能过于复杂和臃肿;另外,前者需要非常严格的语法和较高的学习成本,这一切都使得这些大型计算套件不适合高中生使用。Hazelita 采用 交互式操作逻辑,降低了高中生的使用难度和学习成本;同时其相对轻量,可以 无压力地部署 在学校的希沃白板或家用电脑上。
🗳️ Hazelita 的技术宣言
- 不做「答案打印机」。Hazelita 处理的每一道题目都会附有 可验证的、完整的、严格的数学推导逻辑。
- 拒绝「黑箱计算」。Hazelita 计算中的每一步均可回溯和人工干预。你甚至可以 提供自己的解题流程 供 Hazelita 评估和学习。
- 教学逻辑优先。对于同一问题,Hazelita 提供多种解法。例如部分导数题中,Hazelita 会同时提供高等解法(如洛必达法则)和高考允许的解法(如参数分离)。
- 场景化知识图谱。Hazelita 可生成题目的报告,如其涉及到的知识点和考生应具备的能力等。
- 部署灵活高效。你可以选择在自己的电脑上独立部署 Hazelita。学校管理员也可以考虑在校园内服务器上部署 Hazelita.Server,供全校班级接入使用。「集控」功能允许管理员或教师查看各班的使用情况。
🖥️ Hazelita 的开发
Hazelita 项目由 零音LyRin 发起。遗憾地,由于零音仍处于高三备考阶段,在高考前零音无法进行 Hazelita 的开发,因此 Hazelita 项目将在 2025 年 6 月 正式动工。我们期望能够在 2026 春季 发布第一个预览版本。
🪜 项目主体架构
Hazelita 项目采用 混合架构方案,在保证 跨平台兼容性 的同时实现 灵活的可扩展性。
🟢 Hazelita.Core
- 由 Python 开发,基于 SymPy。
- 完成 底层的运算逻辑,如题目分析、解法选优、计算与解答、逻辑检查、复杂度分析等。
+-----------------------+
| Problem Parser |
| (自然语言理解模块) |
+-----------------------+
↓
+-----------------------+
| Problem Decomposer |
| (问题拆解引擎) |
+-----------------------+
↓
+-----------------------+
| Strategy Controller |
| (策略管理中心) |
+-----------------------+
↓
+-----------------------+ +-----------------------+
| Subproblem Solvers | ↔ | Knowledge Database |
| (子问题求解器集群) | | (题型模式库) |
+-----------------------+ +-----------------------+
↓
+-----------------------+
| Solution Composer |
| (解答合成器) |
+-----------------------+
↓
+-----------------------+
| Explanation Generator |
| (自然语言解释生成) |
+-----------------------+
🟣 Hazelita.Client
- 可能 采取多种方案,如 WPF/WinUI、PyQt、Electron 等。
- 社区可以设计多个第三方 Client,满足用户的不同需求。
🌉 gRPC
- 参与 .Core 和 .Client 之间的通信。
📃 扩展性
Hazelita 项目将实现 灵活的可扩展性,包括 第三方逻辑提供方、更优化解法贡献 和 与其他软件的紧密集成。
✍️ 逻辑提供方
加入你偏好的的计算引擎!你可以在 Hazelita 中集成 第三方逻辑提供方,它们可以与 .Core 紧密配合,完成内置逻辑不支持的 题目分析、解法选优、计算与解答、逻辑检查、复杂度分析等 功能。这类似于向词典软件添加第三方词典;基于此,你可以让 Hazelita 完成它本不支持的运算。
✋ 更优化解法贡献
觉得 Hazelita 的默认解法不好?还是说,Hazelita 没有「注意到」一些可以简化计算的内容?欢迎贡献你自己的解法!借助 交互式的答案生成器,你可以使用 Hazelita 逐步 编写你自己的解法;完成后,你可以让 Hazelita 学习你的更好的解法。如果你使用过 Coq 等工具,这一过程将倍感熟悉。
📦 高集成度
将 Hazelita 与其他工具共用,事半功倍!或许将来,你可以设置 Hazelita 完成计算后使用 ClassIsland 或 Class Widgets 弹出通知;也可以直接在 Inkways 中框选手写的算式,调用 Hazelita 进行计算。
🤖 机器学习
Hazelita 后期可能会加入机器学习以辅助题目解答!这将允许 Hazelita 更好地理解自然语言的提问、生成更优的解法、「注意到」题目中的更多细节。
😪 结语
目前零音和 Project Hazelita 所拥有的一切条件,距离将 Hazelita 开发至完善,仍然有很长的路要走。事实上这确实令人悲伤——零音的前 17 个年头并没有将技能点太多地点到数学和软件开发上,而对 UI 设计之类的内容也一知半解。Hazelita 在零音高考完之后的一段时间内或许也会处于沉寂状态:毕竟,零音仍然需要大力狂补 Python 和 C# 之类的知识。
Hazelita 是零音寄予厚望的数学套件,但它究竟能否达到我们的预期?零音的确不是很清楚,但或许,正因前途迷茫,这场冒险才更激动人心。零音便如是期盼着。
所学甚寡,欲学者众;所历甚稀,欲为者繁。宜共勠力。
期以十六周之后,所愿之事必成,所欲之己必至。冀彼时得晤,共瞻新颜。
——《「赫瑟璃妲」传 · 上》
感谢你看到这里!( •̀ ω •́ )✧祝你天天开心~