找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

991

积分

0

好友

127

主题
发表于 昨天 05:16 | 查看: 0| 回复: 0

在鸿蒙(HarmonyOS)构建的“1+8+N”全场景生态中,设备形态从手机、平板延伸到手表、智慧屏乃至各类智能家居产品。面对如此多样化的跨设备场景,用户体验的挑战不仅在于操作的流畅性,更在于信息获取的智慧化——用户不再满足于被动的操作,而是期望设备能够理解其潜在意图,主动提供贴切的服务。

为应对这一挑战,HarmonyOS意图框架应运而生。它深度融合了系统的多维感知能力与先进的大模型等人工智能技术,构建起一套全局化的意图理解范式。这套框架不仅能精准捕获用户的显性指令,更能挖掘其深层需求,并通过高效的协同机制,将这些需求准确匹配给生态中的最合适服务。这实现了用户体验从“被动响应”到“主动适配”的跃升,同时也为开发者开辟了高效的流量分发与业务转化通道。

HarmonyOS生态系统与意图框架结构图

意图框架的核心运作基于“意图”这一概念。简单来说,一个“意图”就是开发者所实现的一项具体业务功能。系统通过理解用户输入和上下文,智能地调用或共享对应的意图,完成服务的智慧分发。接入意图框架的完整流程通常包括 意向、开发、验证和上架 四个关键阶段。

意图框架开发与上线流程

理论结合实践,下面我们通过一个具体的“播放歌曲”功能示例,来学习如何在HarmonyOS上进行基于意图框架的AI开发

实战:基于意图框架开发播放歌曲功能

在HarmonyOS上利用意图框架实现歌曲播放,主要涵盖三个核心步骤:意图注册、端侧意图调用以及功能一步达。下面我们逐一解析其开发流程。

意图注册

开发者需要编辑一个名为 insight_intent.json 的配置文件来完成意图注册。该文件必须放置在模块(module)的 /src/main/resources/base/profile/ 目录下,且整个工程中只能存在一份此文件。

以下是一个意图注册的JSON配置示例:

{
     "insightIntents": [
     {
         // 意图名称,应当遵循意图框架规范,当前仅支持预置垂域意图,不允许自定义
         // 应用内意图名称唯一,不允许出现相同的名称定义
         "intentName": "PlayMusic",
         // 意图所属的垂域
         "domain": "MusicDomain",
         // 意图版本号,插件引用意图时会校验该版本号,只有和插件定义的版本号一致才
         //能正常调用
         "intentVersion": "1.0.1",
         // 意图调用逻辑入口
         "srcEntry": "./ets/entryability/InsightIntentExecutorImpl.ets",
         // 选填字段,意图调用选择 uiAbility 为意图执行组件时填写
         "uiAbility": {
             "ability": "EntryAbility",
             // UIAbility 支持前后台两种执行模式
             "executeMode": [
                 "background",
                 "foreground"
             ]
         }
     }
 ]
}

端侧意图调用

完成注册后,开发者需要实现端侧的意图调用逻辑,以响应系统的功能调用请求。如果意图执行组件指定为 uiAbility,则需要开发者实现一个意图框架执行器 InsightIntentExecutor 来承接调用并执行业务逻辑。

具体实现可参考以下ArkTS代码。这段代码首先继承 InsightIntentExecutor,然后重写 onExecuteInUIAbilityForegroundMode 方法,最后在 playMusic 方法中处理参数并拉起对应的歌曲播放页面:

export default class InsightIntentExecutorImpl extends
InsightIntentExecutor {
    private static readonly PLAY_MUSIC = 'PlayMusic';
    onExecuteInUIAbilityForegroundMode(name: string, param:
Record<string, Object>, pageLoader: window.WindowStage):
    Promise<insightIntent.ExecuteResult> {
    // 根据意图名称分发处理逻辑。接入方可根据实际业务实现页面跳转
    switch (name) {
        case InsightIntentExecutorImpl.PLAY_MUSIC:
            return this.playMusic(param, pageLoader);
        default:
            break;
    }
    return Promise.resolve({
        code: -1,
        result: {
            message: 'unknown intent'
        }
    } as insightIntent.ExecuteResult);
    }
    // 实现调用播放歌曲功能
    private playMusic(param: Record<string, Object>, pageLoader:
    indow.WindowStage): Promise<insightIntent.ExecuteResult> {
        return new Promise((resolve, reject) => {
        // 实现意图调用,loadContent 的入参为歌曲落地页路径,如 pages/SongPage
        pageLoader.loadContent('pages/SongPage').then(() => {
        console.info('成功拉起落地页'); // 调用成功的情况
    })
        .catch((err: BusinessError) => {
        console.error(err.message); // 调用失败的情况
        });
    })
    }
}

功能一步达

“功能一步达”方案的接入,建立在完成意图注册的基础之上。开发者首先要在意图声明文件中明确声明应用支持的功能,然后针对端侧意图调用开发具体的功能页面,确保系统能够精准“拉起”目标界面。

该方案的交互流程如下图所示。

功能一步达接入流程示意图

下图展示了 JumpFunctionPage 意图的具体参数定义,这是实现精准功能调用的关键。

JumpFunctionPage意图参数定义表

通过以上步骤,一个基于HarmonyOS意图框架的AI驱动功能就基本实现了。实际上,除了意图框架,HarmonyOS AI还提供了基础语音、场景化视觉、昇思推理框架等丰富的服务能力。对于希望更系统、更深入学习鸿蒙应用与AI开发的开发者而言,参考权威的技术文档和系统教程至关重要。掌握这些核心能力,将帮助开发者在前端 & 移动的全场景时代构建出更智能、体验更佳的应用。




上一篇:蚂蚁开源LingBot-World世界模型:10分钟长时序一致,支持实时交互
下一篇:Linux内核维护者继任计划敲定:72小时内启动交接,保障项目延续性
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-2-1 01:42 , Processed in 0.281092 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表