端侧大模型如何在鸿蒙 App 中落地?
本文探讨了端侧大模型在鸿蒙应用中的架构重构问题。传统云端AI模式存在网络依赖、延迟高等问题,而端侧模型带来三大本质变化:常驻运行、参与业务决策和系统级调度。作者提出应将模型置于Domain层而非Data层,通过抽象接口实现业务集成,并结合鸿蒙分布式能力实现跨设备协同。文章分析了工程挑战如推理耗时管理、输出校验和算力适配,指出未来鸿蒙应用的竞争力在于嵌入式决策能力。端侧大模型不仅是技术升级,更是从功


大家好,我是 子玥酱,一名长期深耕在一线的前端程序媛 👩💻。曾就职于多家知名互联网大厂,目前在某国企负责前端软件研发相关工作,主要聚焦于业务型系统的工程化建设与长期维护。
我持续输出和沉淀前端领域的实战经验,日常关注并分享的技术方向包括 前端工程化、小程序、React / RN、Flutter、跨端方案,
在复杂业务落地、组件抽象、性能优化以及多端协作方面积累了大量真实项目经验。
技术方向:前端 / 跨端 / 小程序 / 移动端工程化
内容平台:掘金、知乎、CSDN、简书
创作特点:实战导向、源码拆解、少空谈多落地
文章状态:长期稳定更新,大量原创输出
我的内容主要围绕 前端技术实战、真实业务踩坑总结、框架与方案选型思考、行业趋势解读 展开。文章不会停留在“API 怎么用”,而是更关注为什么这么设计、在什么场景下容易踩坑、真实项目中如何取舍,希望能帮你在实际工作中少走弯路。
子玥酱 · 前端成长记录官 ✨
👋 如果你正在做前端,或准备长期走前端这条路
📚 关注我,第一时间获取前端行业趋势与实践总结
🎁 可领取 11 类前端进阶学习资源(工程化 / 框架 / 跨端 / 面试 / 架构)
💡 一起把技术学“明白”,也用“到位”
持续写作,持续进阶。
愿我们都能在代码和生活里,走得更稳一点 🌱
文章目录
引言
过去两年,大模型的落地路径几乎都围绕一个方向展开:
- 云端推理
- API 调用
- 聊天式交互
- 结果回传渲染
无论是 iOS、Android,还是 Web,大多数应用的 AI 能力,本质上仍然是:
把请求发到云端,然后等待结果。
但当模型开始下沉到设备本地——
当推理能力不再依赖网络——
当系统本身具备统一 AI 调度能力——
一个新的问题出现了:
端侧大模型,在鸿蒙 App 里,到底应该怎么落地?
这不是“接 SDK”的问题,这是一场架构级重构。
传统 AI 接入方式,本质是什么
在讨论端侧之前,我们先看旧模式。传统 AI 接入通常是这样:
页面触发
用户点击按钮:
Button('生成总结')
.onClick(async () => {
const result = await requestAI(this.text)
this.summary = result
})
云端请求
async function requestAI(content: string) {
const response = await http.post('/ai/summarize', {
text: content
})
return response.data
}
UI 展示结果
Text(this.summary)
流程非常清晰:
用户 → 页面 → 网络 → 云端模型 → 返回 → 页面展示
这个模式的问题在于:
- 强依赖网络
- 延迟不可控
- 无法深度参与业务逻辑
- AI 只是“外挂能力”
本质上:
模型不在系统里,只在接口里。
端侧大模型出现后,变化在哪里
当模型运行在本地设备上,变化并不只是“更快”。而是三件更本质的事情:
第一,AI 可以常驻
它不再是一次调用,而是一个持续存在的能力。
第二,AI 可以参与业务决策
不只是生成文本,而是参与流程判断。
第三,AI 可以被系统级调度
在鸿蒙环境下,它甚至可以跨设备协同。这意味着:
端侧模型,不应该放在“页面层”,而应该进入“业务核心层”。
在鸿蒙架构中,端侧模型应该放在哪里?
回顾我们之前的工程分层:
UI 层
ViewModel 层
Domain 层
Data 层
很多人会 instinctively 把模型放在 Data 层。
但真正合理的位置是:
Domain 层。
因为:
- UI 负责展示
- Data 负责数据来源
- Domain 负责决策与规则
而大模型,本质是:
概率决策引擎。
一个真实场景:智能待办拆解
传统待办创建:
addTask(title: string) {
this.list.push({
title: title,
priority: 'normal'
})
}
逻辑是固定的,但如果用户输入:
“帮我准备下周产品发布会的材料”
端侧模型可以自动:
- 提取时间
- 识别主题
- 拆分子任务
- 设置优先级
定义 AI 服务接口
先抽象一层:
export interface LocalAIService {
parseTask(input: string): Promise<ParsedTask>
}
本地模型实现
import aiEngine from '@ohos.ai.engine'
export class DeviceAIService implements LocalAIService {
async parseTask(input: string): Promise<ParsedTask> {
const result = await aiEngine.run({
modelId: 'task_parser_local',
prompt: input
})
return {
title: result.title,
priority: result.priority,
deadline: result.deadline
}
}
}
注意:
页面不知道模型存在。
ViewModel 也不知道模型细节。
只有 Domain 使用它。
在 UseCase 中接入模型
export class CreateTaskUseCase {
constructor(
private repository: TaskRepository,
private ai: LocalAIService
) {}
async execute(input: string) {
const parsed = await this.ai.parseTask(input)
await this.repository.save(parsed)
}
}
这里发生了一件关键的变化,传统流程:
输入 → 存储
现在变成:
输入 → 模型推理 → 决策 → 存储
模型开始参与业务,这才叫“落地”。
鸿蒙环境下的特殊优势
端侧模型在鸿蒙中更具意义,因为:
鸿蒙不是单设备系统。
分布式场景示例
用户在手机上说:
“把会议纪要整理一下。”
模型在手机上完成推理,然后通过分布式能力同步到平板:
import distributedData from '@ohos.data.distributedData'
await kvStore.put('meeting_summary', summaryText)
另一设备读取:
let content = await kvStore.get('meeting_summary')
display(content)
用户不会意识到:
- 推理在哪台设备完成
- 数据如何同步
这就是:
AI + 分布式 = 体验级融合。
端侧模型落地的三大工程挑战
推理耗时管理
端侧模型并非瞬间完成,必须在 ViewModel 中处理状态:
this.loading = true
await this.usecase.execute(text)
this.loading = false
否则 UI 会卡顿。
不确定性输出校验
模型输出是概率性的,必须做结构验证:
if (!result.title) {
throw new Error('模型解析失败')
}
否则业务会失控。
多设备算力差异
不同设备算力不同,可以使用策略模式:
class AIServiceFactory {
static create(): LocalAIService {
if (device.isHighPerformance()) {
return new DeviceAIService()
} else {
return new CloudFallbackService()
}
}
}
这是鸿蒙独有的工程优势。
更深层的变化:从“工具”到“智能体”
当端侧模型真正进入 Domain 层后,App 的本质会改变。
旧模型:
功能集合
新模型:
能力集合
export interface AIAbility {
name: string
run(params: object): Promise<any>
}
App 不再只是页面堆叠,而是:
- 解析能力
- 推理能力
- 规划能力
- 协调能力
这是一种形态进化。
一个关键判断
未来三年,端侧模型在鸿蒙中的真正价值,不在“聊天”。
而在:
嵌入式决策能力。
真正有竞争力的应用,将具备:
- 本地语义理解
- 本地任务规划
- 本地个性化学习
- 跨设备协同执行
如果模型只停留在“生成文本”层面,那它只是功能升级。
如果模型进入业务核心,那它是系统升级。
总结
很多人以为:
端侧大模型 = 更快的 AI 调用。
但真正的变化是:
AI 从接口能力,变成架构核心。
当模型成为 Domain 的一部分、当它参与决策而不仅仅输出文本、当它能跨设备流转,鸿蒙 App 就不再只是“应用程序”,而是一个真正的智能体系统。
更多推荐




所有评论(0)