鸿蒙HarmonyOS开发实战—AI功能开发(助手类意图识别)

助手类意图识别概述

随着人机交互越来越普遍,设备需要理解用户下达的各种指令,方便用户的操作。助手类意图识别能够利用机器学习技术,对用户发送给设备的文本消息进行语义分析和意图识别,进而衍生出各种智能的应用场景,使设备更智慧、更智能。

约束与限制
  • 当前只支持中文语境。
  • 助手类意图识别文本限制在50个字符以内,超过字数将返回参数错误。文本要求UTF-8格式,如果格式错误不会引发报错,但将导致分析结果不正确。
  • Engine支持多用户同时接入,但是不支持同一用户并发调用同一特性。若同一特性被同一进程同一时间多次调用,则返回系统忙错误;不同进程调用同一特性,则同一时间只能处理一个进程业务,其他进程进入队列排队。

助手类意图识别开发

场景介绍
  • 可以应用于语音助手,通过智能对话与即时问答的智能交互,帮助用户快速解决问题。比如,在驾驶时无法腾出双手来使用手机,但可以通过语音助手交互来操控手机,完成机票订购等操作。
  • 在家庭设备上可以做到声控设备的各种操作,比如家庭智能设备的打开和关闭等。
接口说明

助手类意图识别提供了一个函数接口getAssistantIntention(),该接口主要针对助手场景下的意图识别,分析用户的意图。

主要接口

功能描述

接口原型

助手类意图(同步接口)

ResponseResult getAssistantIntention(String requestData, int requestType)

助手类意图(异步接口)

ResponseResult getAssistantIntention(final String requestData, final int requestType, final OnResultListener<ResponseResult> listener)

初始化

void init(Context context, OnResultListener<Integer> listener, boolean isLoadModel)

销毁接口

void destroy(Context context)

接口输入值说明

requestType表示请求类型,通过NluRequestType类定义了以下请求类型:

类型

说明

static int

REQUEST_TYPE_LOCAL = 0 本地请求

requestData表示输入的文本信息,为JSON格式,如下:

参数名

是否必选

值类型

说明

text

String

待分析的文本,格式要求为“utf-8”,文本长度不超过50个字符。

category

String

需要分析的意图类别,默认分析所有类别,多个类别用半角逗号隔开。例如,需要系统设置类和出行类,取值为“systemSetting,trip”。取值详情参见表1。

module

String

用来指定具体分析哪些意图模块,默认分析所有模块,多个意图模块用半角逗号“,”隔开。例如分析订火车票和订机票意图,取值为“bookTrainTicket,bookAirTicket”。取值详情参见表1。 备注:分析时category与module取并集,如category为“systemSetting”,module为“bookTrainTicket”,将会分析系统设置类的所有意图、以及订火车票“bookTrainTicket”意图 。

callPkg

String

调用者名称

callType

int

调用者类型,取值如下: 0:普通应用(默认)1:快应用

callVersion

String

调用者版本号

callState

int

调用者状态,取值如下: -1:未知(默认)0:前台1:后台

  • 0:普通应用(默认)
  • 1:快应用

callVersion 否 String 调用者版本号 callState 否 int 调用者状态,取值如下:

  • -1:未知(默认)
  • 0:前台
  • 1:后台

意图类别(category)

包含意图

具体的意图模块(module)

trip

订机票、订火车票、导航、查询地点

bookTripTicket、bookAirTicket、queryTrain、navigation、queryPosition

contact

打电话

call

systemSetting

打开4g、关闭4g、设置4g、打开wifi、关闭wifi等

open4G、close4G、set4G、openWlan、closeWlan

接口返回值说明

返回值为JSONObject字符串:

参数名

子参数

是否必选

值类型

说明

code

-

int

0:成功 1:系统正在初始化 2:参数错误 3:系统忙 4:系统异常 5:任务超时 6:其它错误

message

-

String

异常信息

intentions

-

JSONArray

意图列表,数组里的类型为JSONObject

name

String

意图名

attributes

JSONArray

意图对应的属性

开发步骤

在使用助手类意图识别API时,将实现助手类意图识别的相关的类添加至工程。

import ohos.ai.nlu.NluRequestType;
import ohos.ai.nlu.NluClient;
import ohos.ai.nlu.OnResultListener;
import ohos.ai.nlu.ResponseResult;

复制

使用NluClient静态类进行初始化,通过异步方式获取服务的连接。

  • context:应用上下文信息,应为ohos.aafwk.ability.Ability或ohos.aafwk.ability.AbilitySlice的实例或子类实例。
  • listener:初始化结果的回调,可以传null。
  • isLoadModel:是否加载模型,如果传true,则在初始化时加载模型;如果传false,则在初始化时不加载模型。
NluClient.getInstance().init(context, new OnResultListener<Integer>(){
        @Override
        public void onResult(Integer result){
         // 初始化成功回调,在服务初始化成功调用该函数
        }
}, true);

复制

调用助手类意图识别接口。

/** Constructing input parameters for testing getAssistantIntention method. */
String requestData = "{\"text\":\"关闭wlan\"}";
 
/** Start analyzing intention based on assistant tool */ 
ResponseResult responseResult = NluClient.getInstance().getAssistantIntention(requestData, NluRequestType.REQUEST_TYPE_LOCAL);

复制

或者调用助手类意图识别的异步接口

NluClient.getInstance()
.getAssistantIntention(requestData, NluRequestType.REQUEST_TYPE_LOCAL, new OnResultListener<ResponseResult>() {
                @Override
                public void onResult(ResponseResult result) {
                    // 异步返回结果处理
                }
            });

复制

解绑服务

/** release resource*/
NluClient.getInstance().destroy(context);

最后,为了能让大家更好的去学习提升鸿蒙 (Harmony OS) 开发技术,小编连夜整理了一份30个G纯血版学习资料(含视频电子书学习文档等)以及一份在Github上持续爆火霸榜的《纯血版华为鸿蒙 (Harmony OS)开发手册》(共计890页),希望对大家有所帮助。

纯血版鸿蒙 HarmonyOS 4.0 视频学习资料

 需要以上视频学习资料小伙伴

请点击→纯血版全套鸿蒙HarmonyOS学习资料


《纯血版华为鸿蒙 (Harmony OS)开发手册》

这份手册涵盖了当前鸿蒙 (Harmony OS) 开发技术必掌握的核心知识点

纯血版鸿蒙 (Harmony OS)开发手册部分精彩内容

HarmonyOS 概念:

  • 系统定义
  • 技术架构
  • 技术特性
  • 系统安全

如何快速入门?

  • 基本概念
  • 构建第一个ArkTS应用
  • 构建第一个JS应用
  • ……


开发基础知识: 

  • 应用基础知识
  • 配置文件
  • 应用数据管理
  • 应用安全管理
  • 应用隐私保护
  • 三方应用调用管控机制
  • 资源分类与访问
  • 学习ArkTS语言
  • ……

基于ArkTS 开发:

  • Ability开发
  • UI开发
  • 公共事件与通知
  • 窗口管理
  • 媒体
  • 安全
  • 网络与链接
  • 电话服务
  • 数据管理
  • 后台任务(Background Task)管理
  • 设备管理
  • 设备使用信息统计
  • DFX
  • 国际化开发
  • 折叠屏系列
  • .……

获取以上文中提到的这份纯血版鸿蒙 (Harmony OS) 开发资料的小伙伴 

请点击→纯血版全套鸿蒙HarmonyOS学习资料


🚀写在最后

  • 如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙:
  • 点赞,转发,有你们的 『点赞和评论』,才是我创造的动力。
  • 关注小编,同时可以期待后续文章ing🚀,不定期分享原创知识。
  • 想要获取更多完整鸿蒙最新VIP学习资料,请点击→纯血版全套鸿蒙HarmonyOS学习资料

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值