HarmonyOS-鸿蒙app开发 —基于javaAI助手类意图识别开发指导

HarmonyOS-鸿蒙app开发 —基于javaAI助手类意图识别开发指导

场景介绍

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

接口说明

助手类意图识别提供了一个函数接口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:后台

表1 category与module取值说明

意图类别(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);

🚀 如未找到文章请搜索栏搜素 | Ctrl+D收藏本站 | 联系邮箱:15810050733@qq.com