作者:张大鹏 | 大鹏AI教育 | 2026-05-20
标签:
HarmonyOS端侧AIArkTS大模型隐私计算

📖 阅读提示
这篇不聊"端侧 AI 概念",只回答一个开发者更关心的问题:
用户的笔记、通讯录、企业资料不想上传云端,鸿蒙 App 能不能做一个本地问答助手?
结论:可以做,但要承认边界。 端侧问答适合隐私、短上下文、低延迟场景;复杂推理和多工具编排,仍建议和上一篇的 MCP Agent 混合。
你会拿到:
- 一条端侧问答的数据流
- 云端 API vs 端侧模型的选型表
- ArkTS 工程模块拆分
- 一个
EdgeLLMService.ets的服务层骨架 - 发布前必须做的真机检查清单
前言:为什么鸿蒙开发者开始谈「端侧大模型」?
问卷、会议纪要、个人笔记、企业通讯录,这些数据都有一个共同点:能不出设备,就不要出设备。
云端大模型能力很强,但并不适合所有 App。特别是下面三类场景:
- 用户明确要求离线可用
- 公司合规要求原文不上传
- 交互必须低延迟,比如本地知识问答、表单辅助填写
华为开发者网站已经给出 基于端侧问答模型实现智能问答 的 Codelab 路径。开发者要做的不是喊"端侧大模型来了",而是把模型加载、会话管理、UI 渲染和资源控制拆清楚。
1. 端侧大模型在鸿蒙上可行吗?
1.1 结论先说
可行,但有边界。 适合:
- 3B~7B 量级量化模型(视设备 NPU/内存而定)
- 短上下文问答、摘要、分类
- 强隐私、弱网、低延迟交互
不适合:
- 超长文档一次吞掉
- 复杂多工具 Agent
- 高强度长时间推理
- 对准确率要求极高且需要联网知识的场景
这里的 3B~7B 只是常见量级参考,具体能不能跑,要看机型、运行时、量化方案、内存峰值和散热表现。不要在产品文案里承诺"所有设备都能流畅运行"。
1.2 官方能力入口
华为开发者网站 Codelabs 提供「基于端侧问答模型实现智能问答」教程(HarmonyOS 5+),核心演示:
- 端侧模型加载与推理接口
- ArkUI 对话界面
- 基本多轮上下文管理
建议先跑通官方 Demo,再改业务 UI。
2. 架构:数据怎么走,哪里不能乱写?

用户输入 (ArkUI)
↓
会话管理(历史裁剪、token 控制)
↓
端侧推理引擎(Native / AI Kit)
↓
返回答案 → List 渲染
这条链路看起来简单,实际容易踩坑的是三处:
- 模型文件 随 HAP 打包或首次启动下载到沙箱,注意包体体积
- 推理线程 不要阻塞 UI 线程
- 内存峰值 要在真机测,模拟器往往不准
推荐目录结构如下:
text
entry/src/main/ets/
├── pages/
│ └── ChatPage.ets
├── service/
│ ├── EdgeLLMService.ets
│ └── SessionStore.ets
├── model/
│ └── Message.ets
└── utils/
└── PromptTemplate.ets
页面避免直接碰模型。页面只负责状态展示,推理统一收口到 EdgeLLMService。
3. 云端 vs 端侧:怎么选?

| 维度 | 云端 API | 端侧模型 |
|---|---|---|
| 隐私 | 需传输原文 | 数据不出设备 |
| 延迟 | 受网络影响 | 毫秒~秒级(看机型) |
| 能力上限 | 强模型、长上下文 | 受算力约束 |
| 成本 | 按 token 计费 | 一次性集成与包体 |
| 与 Agent 工具链 | MCP 生态成熟 | 需自建或混合架构 |
推荐组合(2026 常见做法):
- 默认 端侧 处理敏感问答
- 用户显式开启「增强模式」再走云端
- 复杂任务跳转 001 篇 的 MCP Agent 服务
4. ArkTS 工程模块清单:按这个拆,后期好维护

| 模块 | 职责 |
|---|---|
pages/ChatPage.ets |
消息列表、输入框、加载态 |
service/SessionStore.ets |
多轮历史持久化 |
service/EdgeLLMService.ets |
封装推理调用、错误码 |
model/Message.ets |
角色、内容、时间戳 |
utils/PromptTemplate.ets |
系统提示词、安全拒答 |
4.1 Message.ets:先统一消息结构
typescript
export type MessageRole = 'user' | 'assistant' | 'system';
export interface Message {
id: string;
role: MessageRole;
content: string;
createdAt: number;
}
消息结构越早统一,后面做持久化、导出、联网增强都省事。
4.2 EdgeLLMService.ets:页面避免直接调模型
下面是服务层骨架,重点是接口边界,并非具体 SDK 名称。
typescript
import type { Message } from '../model/Message';
export interface GenerateOptions {
maxTokens?: number;
temperature?: number;
signal?: AbortSignal;
}
export class EdgeLLMService {
private ready: boolean = false;
async init(): Promise<void> {
// 1. 检查模型文件
// 2. 初始化端侧推理运行时
// 3. 做一次轻量 warmup
this.ready = true;
}
async generate(messages: Message[], options: GenerateOptions = {}): Promise<string> {
if (!this.ready) {
await this.init();
}
const prompt = this.buildPrompt(messages);
// 示意:这里替换为官方 Codelab / AI Kit 对应的推理调用
const result = await this.callLocalModel(prompt, options);
return result.trim();
}
private buildPrompt(messages: Message[]): string {
return messages
.slice(-8)
.map(item => `${item.role}: ${item.content}`)
.join('\\n');
}
private async callLocalModel(prompt: string, options: GenerateOptions): Promise<string> {
// TODO: 接入端侧问答模型推理接口
return '这里返回端侧模型生成结果';
}
}
这个服务层至少解决三件事:
- UI 不关心模型初始化细节
- 会话历史可以统一裁剪
- 后续切换云端增强模式时,接口不用大改
4.3 UI 侧注意
- 长回答用
LazyForEach,避免一次渲染过长文本卡顿 - 推理中展示 可取消 按钮(用户切后台时释放资源)
- 首次启动说明 「本地处理,不上传对话」,建立信任
4.4 与 Agent(001)协作
端侧模型可做 意图路由:
- 「查天气 / 设闹钟」→ 本地工具或系统 Ability
- 「分析这份 PDF」→ 若超限,提示切换云端或 MCP 工具
- 「总结本地笔记」→ 优先端侧处理,必要时只上传脱敏摘要
一个实用策略是:
| 输入类型 | 默认策略 |
|---|---|
| 本地隐私文本 | 端侧模型 |
| 公开资料搜索 | 云端 / MCP 工具 |
| 写入日程、任务 | 本地工具 + 二次确认 |
| 超长文档分析 | 分块摘要,必要时提示增强模式 |
5. 实测与发布前检查
不要只跑模拟器。端侧 AI 的体验,必须在真机上看。
| 检查项 | 为什么重要 |
|---|---|
| 连续 10 轮对话 | 看内存峰值、发热、降频 |
| 飞行模式问答 | 验证核心能力是否真的离线 |
| 首次加载耗时 | 影响用户第一印象 |
| 模型文件升级 | 决定包体与后续维护方式 |
| 敏感问题兜底 | 避免本地模型胡答、越权 |
| 切后台 / 锁屏 | 确认推理任务是否释放资源 |
我建议发布前至少记录这 4 个指标:
text
首次模型加载耗时:
单轮平均响应时间:
连续 10 轮后内存峰值:
连续 10 轮后机身温度 / 主观发热:
6. 下一步怎么做
HarmonyOS 5 的端侧问答并非单纯概念,官方 Codelab 已经给出可参考路径。实际决定体验的,是工程拆分:
ChatPage 只管交互,SessionStore 管历史,EdgeLLMService 管推理,PromptTemplate 管边界。
端侧模型最适合解决"数据不出设备"的问题;MCP Agent 适合复杂工具编排。两者不是替代关系,而是组合关系:
- 端侧:隐私、弱网、低延迟
- 云端:强模型、长上下文、开放知识
- MCP:工具调用、业务系统连接、多步骤任务
如果你正在做鸿蒙 AI 应用,建议先跑通一个本地问答闭环,再考虑云端增强和 MCP 工具链。
📚 参考来源
作者 :张大鹏|来源 :大鹏AI教育
标签 :AI · 鸿蒙 · 端侧大模型 · ArkTS
原创内容,转载需授权