【OpenHarmony/HarmonyOs 】端侧 AI 与元服务能力集成:物理视界的智能学习助手设计
【OpenHarmony/HarmonyOs 】端侧 AI 与元服务能力集成:物理视界的智能学习助手设计
本文基于我的 OpenHarmony/HarmonyOS 项目「物理视界 PhysicsVision」整理。项目当前已经具备 28 个物理模型、物理公式计算器、知识挑战、收藏、最近浏览和成就系统。
这一篇重点讨论:在不破坏隐私边界的前提下,如何把端侧 AI、元服务能力、人脸识别开放能力等方向,设计成一个真正服务学习的智能助手。🤖
一、先说清楚:当前项目没有做人脸识别和云端 AI
为了避免误导,先说明项目现状:
- 当前没有接入人脸识别;
- 当前没有接入拍照识题;
- 当前没有调用云端大模型;
- 当前没有网络请求;
- 当前的智能推荐主要来自本地学习状态。
这并不是缺点。对教育类 App 来说,本地优先是一种很稳的架构:低延迟、少权限、隐私压力小,也更容易离线使用。
本文会基于当前项目,设计几个可以逐步接入的方向:
- 端侧 AI:学习推荐、错题解释、公式提示;
- 元服务:把高频模型做成免安装轻量入口;
- 人脸识别开放能力:只讨论可选登录/家长确认等边界场景;
- 本地学习画像:利用已有收藏、浏览、挑战数据进行个性化。
二、当前项目已经有“端侧智能”的雏形
项目虽然没有接入 AI SDK,但已经有本地推荐逻辑。
例如实验室页会根据用户是否访问过模型,优先推荐未探索的基础模型:
getRecommended(): number[] {
let result: number[] = []
for (let i = 0; i < this.names.length; i++) {
if (!this.isVisited(i) && this.difficulties[i] === '基础') {
result.push(i)
if (result.length >= 4) break
}
}
if (result.length < 4) {
for (let i = 0; i < this.names.length; i++) {
if (!this.isVisited(i) && this.difficulties[i] === '进阶') {
result.push(i)
if (result.length >= 4) break
}
}
}
return result
}
这就是最朴素的端侧智能:
- 数据在本地;
- 规则可解释;
- 不需要联网;
- 不需要上传学习记录;
- 推荐结果和学生当前进度相关。
未来如果接入端侧 AI,可以把这个逻辑升级为更细的学习路径规划。
三、学习画像:从收藏、浏览、挑战中提取信号
项目中有四类关键学习状态:
PersistentStorage.persistProp('favorites', '')
PersistentStorage.persistProp('highScore', 0)
PersistentStorage.persistProp('totalPlayed', 0)
PersistentStorage.persistProp('visitedModels', '')
这些状态可以形成一个轻量学习画像:
| 数据 | 可以推断什么 |
|---|---|
| 收藏模型 | 用户认为重要或薄弱的知识点 |
| 最近浏览 | 用户当前学习主题 |
| 已探索数量 | 学习覆盖度 |
| 挑战次数 | 练习频率 |
| 最高正确率 | 掌握程度 |
| 题目分类 | 薄弱学科方向 |
注意,这些数据不需要实名,也不需要上传云端。端侧 AI 可以直接在本机利用这些信号做推荐。
四、端侧 AI 方向一:个性化模型推荐
当前项目的推荐规则是“未探索 + 基础优先”。如果加入端侧 AI,可以进一步考虑:
- 用户收藏了很多电磁学模型,说明近期关注电磁学;
- 用户挑战正确率低,优先推荐基础模型;
- 用户访问了“光的干涉”,可以推荐“凸透镜成像”“光的反射”;
- 用户很久没做挑战,可以推荐 5 道轻量复习题。
示例设计:
interface LearningProfile {
favoriteCount: number
visitedCount: number
highScore: number
totalPlayed: number
recentCategories: string[]
}
interface ModelRecommendation {
modelIndex: number
reason: string
}
推荐结果不只是“给你一个模型”,还要告诉用户为什么:
- “你最近学习了光学,建议继续观察凸透镜成像。”
- “你的挑战正确率还不高,先从基础力学模型开始。”
- “你收藏了电磁学内容,可以复习库仑定律和电场线分布。”
这种解释比黑盒推荐更适合教育场景。
五、端侧 AI 方向二:公式计算器智能提示
项目中的物理公式计算器已经结构化定义了公式、输入项和计算函数:
{
name: '牛顿第二定律',
formula: 'F = m · a',
inputs: [
{ label: '质量 (m)', unit: 'kg', defaultValue: '1.0' },
{ label: '加速度 (a)', unit: 'm/s²', defaultValue: '9.8' }
],
calculate: (v) => `合外力 F = ${(v[0] * v[1]).toFixed(2)} N`
}
计算时会校验输入并即时输出结果:
doCalculate() {
const calc = this.calculators[this.selectedIndex]
const nums: number[] = []
for (let i = 0; i < calc.inputs.length; i++) {
const val = parseFloat(this.inputValues[i])
if (isNaN(val)) {
this.result = '请输入有效数值'
return
}
nums.push(val)
}
this.result = calc.calculate(nums)
}
端侧 AI 可以在这里做三件事:
- 判断输入是否明显异常,例如质量为负数、速度过大;
- 根据公式生成解释,例如“质量越大,在相同加速度下合外力越大”;
- 根据结果推荐相关模型,例如计算了库仑力后推荐“电场线分布”。
这样 AI 不是替代计算器,而是让计算器更像老师。
六、端侧 AI 方向三:挑战后的错因分析
挑战模块已经有题目、答案、分类、年级和解析:
interface QuizQuestion {
question: string
optionA: string
optionB: string
optionC: string
optionD: string
answer: number
category: string
grade: string
explanation: string
}
选择答案后,会记录得分和连对:
selectOption(index: number): void {
if (this.answered) return
this.stopQuestionTimer()
this.selectedAnswer = index
this.answered = true
const q = this.currentQuestions[this.currentQ]
if (index === q.answer) {
this.score++
this.streak++
if (this.streak > this.maxStreak) this.maxStreak = this.streak
} else {
this.streak = 0
}
}
端侧 AI 可以根据错题分类生成学习建议:
- “你在力学题中错得较多,建议复习匀变速直线运动和平抛运动。”
- “你对电磁学公式掌握不稳定,建议先看库仑定律模型。”
- “你在限时模式下错误率升高,可以先取消限时练准确率。”
这类分析不需要上传真实身份,完全可以基于本地题目和作答结果完成。
七、元服务方向:把高频模型变成轻量入口
「物理视界」有很多适合做成元服务入口的功能:
- 打开“公式计算器”;
- 打开“今日 5 题挑战”;
- 打开“最近浏览模型”;
- 打开“光的干涉演示”;
- 打开“收藏模型列表”。
元服务的价值是低门槛:用户不一定要完整进入 App,也可以快速完成一个学习动作。
比较适合拆出的元服务卡片:
| 元服务入口 | 适合场景 |
|---|---|
| 今日物理挑战 | 课间 3 分钟刷题 |
| 公式速算 | 做作业时快速算结果 |
| 最近模型 | 延续上次学习 |
| 光学演示 | 老师课堂快速展示 |
| 我的收藏 | 考前复习 |
项目中每个模型已经有路由:
private routes: string[] = [
'pages/SoundPropagation',
'pages/LightReflection',
'pages/SeriesParallelCircuit',
'pages/UniformAcceleration'
]
这意味着做元服务入口时,可以直接把高频功能映射到已有页面。
八、人脸识别开放能力:教育 App 要慎用
人脸识别是敏感能力。对于「物理视界」这种学习工具,我不建议把人脸识别放进核心学习链路。
如果未来确实要接入,也应该只用于低频、明确、可替代的场景:
- 家长确认进入某些管理页;
- 多学生共用设备时切换本地学习档案;
- 老师端确认身份后查看班级学习数据。
不建议用于:
- 打开 App 必须刷脸;
- 学生答题过程刷脸监控;
- 用人脸推断学习能力;
- 把人脸数据和成绩强绑定。
一个更克制的设计是:优先使用本地档案选择,只有用户主动开启时,才考虑人脸识别,而且必须提供密码或手动切换作为替代方式。
九、AI 与隐私的边界
如果做端侧 AI,我会坚持这几个原则:
- 默认关闭高敏感能力;
- 不做拍照识题;
- 不上传学生图像;
- 不上传完整学习记录;
- AI 推荐必须可解释;
- 用户可以清除本地学习画像;
- AI 只辅助理解,不直接替代学习过程。
教育产品的 AI 不应该变成“答案机器”,而应该变成“引导机器”。
它应该告诉学生为什么、怎么学、下一步看什么,而不是绕过思考。
十、可以逐步落地的路线图
结合当前项目,我建议按这个顺序升级:
第一阶段:规则推荐增强
基于收藏、浏览、挑战正确率,给出推荐理由。
不接入任何外部 AI,先把本地规则做扎实。
第二阶段:本地学习报告
在成就页或设置页增加“学习报告”:
- 已探索模型数量;
- 薄弱分类;
- 收藏偏好;
- 挑战表现;
- 下周推荐学习路径。
第三阶段:端侧 AI 解释
对公式计算器、错题解析、模型观察生成简短解释。
重点是帮助理解,而不是直接给标准答案。
第四阶段:元服务入口
把高频功能拆成轻量入口,例如今日挑战、公式速算、最近模型。
让用户在更短路径中完成学习任务。
第五阶段:可选身份能力
如果有多用户或家长控制需求,再考虑身份能力。
人脸识别必须是可选项,而不是学习的前置门槛。
结语
「物理视界」现在已经有一个很好的基础:学习内容结构化、数据状态本地化、交互模型清晰。
在这个基础上接入端侧 AI 和元服务,不应该追求“炫”,而应该追求“更懂学习过程”。
我理想中的智能学习助手,是这样的:
- 它知道我刚学过什么;
- 它知道我哪里容易错;
- 它能推荐下一步;
- 它能解释公式含义;
- 它不偷看我的照片;
- 它不强迫我上传数据。
这也是我认为 OpenHarmony/HarmonyOS 教育应用很值得探索的方向:用端侧能力把学习体验做聪明,同时把隐私边界守住。🚀

更多推荐



所有评论(0)