HarmonyOS7 端侧 AI:文本生成与图像识别入门
文章目录
- 前言
- 为什么要端侧 AI
- 文本生成:本地对话/补全
- 代码实现
- 图像识别:本地分类/检测
- 核心代码
- 端侧 AI 的实操注意
- 常见误区(小白必踩)
- 完整可运行示例:端侧文本生成
- 完整示例
- 写在最后
前言
"AI"不一定是调云端大模型。HarmonyOS7 强化了端侧 AI——模型跑在手机本地,不上传数据、不依赖网络、响应快、还保护隐私。
这篇文章带你入门端侧 AI 的两类常见能力:文本生成(本地小模型对话)和图像识别(本地分类/检测)。了解它们怎么接入、适合什么场景。
为什么要端侧 AI
| 维度 | 云端 AI | 端侧 AI |
|---|---|---|
| 网络依赖 | 必须联网 | 可离线 |
| 延迟 | 受网络影响 | 低 |
| 隐私 | 数据出端 | 数据不出设备 |
| 成本 | 按调用计费 | 一次部署 |
结论:涉及隐私、要离线、要低延迟、高频调用的,优先考虑端侧。复杂推理、知识广的,再上云端大模型。
文本生成:本地对话/补全
端侧文本能力通常通过Core AI或具体的 NLP Kit 接口,加载本地小模型做生成/补全:
代码实现
import{textGeneration}from'@kit.MindSporeLiteKit'// 示意包名,以官方为准asyncfunctionlocalChat(prompt:string):Promise<string>{// 1. 加载本地模型(通常随 app 打包或从市场下载)constmodel=awaitloadLocalModel('llm_tiny.ms')// 2. 推理生成constresult=awaitmodel.predict(prompt)returnresultasstring}要点(概念层面):
- 模型文件随 app 提供或首次使用时下载到本地。
- 推理在设备 NPU/CPU 上跑,数据不离开手机。
- 适合"短文生成、补全、翻译、摘要"这类轻任务。
注意:具体 API 包名和调用随版本演进,以官方最新文档为准;核心思路(加载本地模型 → 推理)不变。
图像识别:本地分类/检测
图像类任务(识物、扫码、场景识别)端侧很成熟:
核心代码
import{imageClassification}from'@kit.VisionKit'// 示意,以官方为准asyncfunctionrecognize(img:image.PixelMap):Promise<string[]>{constmodel=awaitloadClassifier('mobilenet.ms')constlabels=awaitmodel.classify(img)// 返回类别标签returnlabels}- 端侧图像模型(如 MobileNet)体积小、速度快,适合实时识物。
- 数据不出设备,做"相册智能分类""扫码识别"很合适。
端侧 AI 的实操注意
- 模型体积:端侧模型要小,几百 MB 还行,GB 级就别想了,除非用动态下载。
- 首次加载耗时:模型加载要时间,做成"预加载"或 loading 提示。
- 功耗:持续推理会发热耗电,别在后台疯狂跑。
- 降级策略:端侧搞不定的复杂任务,回退到云端。
常见误区(小白必踩)
| 误区 | 说明 |
|---|---|
| 模型过大 | 端侧模型要小,GB 级别想都别想,除非动态下载且用户接受等待。 |
| 首次加载无提示 | 模型加载要时间,做成预加载或 loading 提示,不然以为卡死。 |
| 后台狂跑推理 | 持续推理发热耗电,别在后台疯狂跑。 |
| 无降级策略 | 端侧搞不定的复杂任务,要能回退云端。 |
下面这段代码可以直接复制到 DevEco Studio 里运行。建议你边读边敲,改一改文末「动手改一改」里的参数,亲眼看看效果。
完整可运行示例:端侧文本生成
调用端侧 AI 能力做本地推理(无需联网)。
完整示例
// 端侧 AI:本地文本生成(示意 API)import{textGeneration}from'@kit.MindSporeLiteKit'// 以实际 SDK 为准@Entry@Componentstruct OnDeviceAI{@Stateout:string='点击生成'build(){Column({space:16}){Text(this.out).fontSize(16)Button('本地生成一句话').onClick(async()=>{// 真实项目替换为对应 SDK 的推理调用constr=awaittextGeneration.generate('写一句问候语')this.out=r??'生成完成(端侧)'})}.padding(20)}}你会看到什么:点按钮,模型在设备本地完成推理并返回结果,不依赖云端,隐私更好、响应更快。
动手改一改:
- 把模型换成图像分类,体验端侧识别。
- 给生成加 loading 态,推理期间禁用按钮。
- 用
Native接口加载量化模型,减小体积、提速。
写在最后
端侧 AI 是"隐私 + 离线 + 低延迟"的杀手锏,适合轻量文本生成和图像识别这类任务。套路就两步:加载本地模型 → 本地推理,数据全程不出设备。
想练手,从"本地图像分类"做起最直观:拍张照,手机本地告诉你是什么——不用联网、不泄隐私,用户体验还很"未来感"。复杂需求再考虑接入云端大模型。