主入口(HwICSUiSdk)
本节介绍Web SDK的接口详情。
接口 |
描述 |
---|---|
获取当前生效的交互模式(语音问答/文本问答)。 |
|
回调注册。 |
|
检查浏览器是否支持。 |
|
创建交互任务。 |
|
销毁交互任务。 |
|
获取交互任务信息。 |
|
切换交互模式(语音问答/文本问答)。 |
|
中断数字人讲话。 |
|
数字人静音。 |
|
发送问题文本。 |
|
更新配置项。 |
|
设置日志级别。 |
|
开始对话。 |
|
开始说话(注:接口已重命名为startUserSpeak,请直接切换至新接口)。 |
|
用户开始提问。 |
|
结束对话。 |
|
停止说话(注:接口已重命名为stopUserSpeak,请直接切换至新接口)。 |
|
用户停止提问(注:此处只是停止ASR接收用户语音,对话仍处于激活态)。 |
|
数字人取消静音。 |
activeInteractionMode
(static) activeInteractionMode(): Promise<InteractionModeResult>
【功能说明】
获取当前生效的交互模式(语音问答/文本问答)。
【请求参数】
无。
【返回参数】
参数 |
类型 |
描述 |
---|---|---|
result |
boolean |
执行结果。 |
errorCode |
string | undefined |
错误码,详细见表1。 |
errorMsg |
string | undefined |
错误信息。 |
interactionMode |
'AUDIO' | 'TEXT' |
交互模式。 |
【代码示例】
const { result, interactionMode } = await HwICSUiSdk.activeInteractionMode();
addEventListeners
(static) addEventListeners(eventMap: EventMap): void
【功能说明】
设置事件回调。
【请求参数】
参数 |
是否必须 |
默认值 |
类型 |
描述 |
---|---|---|---|---|
eventMap |
是 |
- |
EventMap |
事件注册Map,请参见表4。 |
参数 |
是否必须 |
默认值 |
类型 |
描述 |
---|---|---|---|---|
error |
否 |
- |
(icsError: IcsError) => any |
错误事件。 |
jobInfoChange |
否 |
- |
(jobInfo: JobInfo) => any |
交互任务信息变更事件。 |
speakingStart |
否 |
- |
() => any |
数字人开始讲话事件。 |
speakingStop |
否 |
- |
() => any |
数字人结束讲话事件。 |
speechRecognized |
否 |
- |
(question: SpeechRecognitionInfo) => any |
语音识别结果。 |
semanticRecognized |
否 |
- |
(answer: SemanticRecognitionInfo) => any |
语义识别结果。 |
【返回参数】
无
【代码示例】
HwICSUiSdk.addEventListeners({ error: (icsError) => { console.error('icsError', icsError); }, jobInfoChange: (jobInfo) => { console.info('jobInfoChange', jobInfo); } });
checkBrowserSupport
(static) checkBrowserSupport(): Promise<boolean>
【功能说明】
检查当前浏览器是否支持运行SDK。
【请求参数】
无
【返回参数】
Promise<boolean>:当前浏览器是否支持运行SDK。
【代码示例】
1 2 3 4 5 6 |
const result = await HwICSUiSdk.checkBrowserSupport(); if (result) { // 支持 } else { // 不支持 } |
create
(static) create(param: CreateParam): Promise<void>
【功能说明】
通过获取的任务链接和一次性鉴权码,创建智能交互任务。
【请求参数】
参数 |
是否必选 |
默认值 |
类型 |
描述 |
---|---|---|---|---|
param |
是 |
- |
CreateParam |
创建活动选项,请参见表6。 |
参数 |
是否必选 |
默认值 |
类型 |
描述 |
---|---|---|---|---|
onceCode |
是 |
- |
string |
一次性鉴权码,获取方式请参见创建一次性鉴权码。
说明:
CreateOnceCode接口需要在后台调用,不能在浏览器直接调用,否则有跨域问题。 |
serverAddress |
是 |
- |
string |
智能交互服务端地址。 不同Region的取值如下所示:
|
robotId |
否 |
- |
string |
智能交互活动ID,为参数“taskUrl”取值URL中携带的robot_id参数的值。 示例,如果URL为“https://metastudio-api.cn-north-4.myhuaweicloud.com/icswebclient?robot_id=a1b2c3d4e5f6”,则robotId值为a1b2c3d4e5f6。 注意:robotId和taskUrl必须至少设置一个参数。 |
taskUrl |
否 |
- |
string |
在MetaStudio控制台创建生成的数字人互动任务页面URL。URL获取方式,请参见创建智能交互数字人。 注意:robotId和taskUrl必须至少设置一个参数。 |
containerId |
是 |
- |
string |
渲染SDK交互界面UI的DOM节点ID。 |
config |
否 |
- |
ConfigMap |
配置信息,请参见表12。 |
eventListeners |
否 |
- |
EventMap |
事件注册Map,请参见表4。 第三方驱动的智能交互场景,必须传本参数。 |
logLevel |
否 |
info |
string |
日志级别。 取值如下所示:
|
【返回参数】
无
【代码示例】
HwICSUiSdk.create({ serverAddress: 'serverAddress', onceCode: 'onceCode', robotId: 'robotId', containerId: 'ics-root', logLevel: 'debug', config: { enableCaption: true, enableChatBtn: false }, eventListeners: { error: (error) => { console.error('sdk error', { message: error.message, code: error.code, }, error); } } });
destroy
(static) destroy(): Promise<void>
【功能说明】
销毁交互任务。
【请求参数】
无
【返回参数】
无
【代码示例】
HwICSUiSdk.destroy();
getJobInfo
(static) getJobInfo(): Promise<JobInfo>
【功能说明】
获取交互任务信息。
【请求参数】
无
【返回参数】
参数 |
类型 |
描述 |
---|---|---|
jobId |
string |
任务ID。 |
websocketAddr |
string | undefined |
智能交互服务端websocket地址,三方驱动场景用来拼接websocket链接。
须知:
参数返回的地址默认无wss://前缀,实际使用时,需要补齐前缀。示例:如果返回字段内容为metastudio-api.cn-north-4.myhuaweicloud.com:443,则需要拼接为wss://metastudio-api.cn-north-4.myhuaweicloud.com:443。 |
【代码示例】
const jobInfo = await HwICSUiSdk.getJobInfo();
interactionModeSwitch
(static) interactionModeSwitch(param: InteractionModeParam): Promise<InteractionModeResult>
【功能说明】
切换交互模式(语音问答/文本问答)。
【请求参数】
参数 |
是否必须 |
默认值 |
类型 |
描述 |
---|---|---|---|---|
interactionMode |
否 |
AUDIO |
|
交互模式,语音交互还是文本交互。 |
【返回参数】
见:表2
【代码示例】
const { result } = await HwICSUiSdk.interactionModeSwitch({ interactionMode: 'AUDIO' });
interruptSpeaking
(static) interruptSpeaking(): Promise<UISdkResult>
【功能说明】
中断数字人讲话。
【请求参数】
无
【返回参数】
请参见表16。
【代码示例】
const { result } = await HwICSUiSdk.interruptSpeaking();
muteRemoteAudio
(static) muteRemoteAudio(): Promise<boolean>
【功能说明】
数字人静音。
【请求参数】
无
【返回参数】
Promise<boolean>:数字人静音是否成功。
【代码示例】
const result = await HwICSUiSdk.muteRemoteAudio();
sendTextQuestion
(static) sendTextQuestion(param: TextQuestionParam): Promise<TextQuestionResult>
【功能说明】
发送问题文本。
【请求参数】
参数 |
是否必须 |
默认值 |
类型 |
描述 |
---|---|---|---|---|
text |
是 |
- |
string |
问题文本。 |
【返回参数】
参数 |
类型 |
描述 |
---|---|---|
result |
boolean |
执行结果。 |
errorCode |
string | undefined |
错误码,详细见表1。 |
errorMsg |
string | undefined |
错误信息。 |
chatId |
string |
对话id。 |
【代码示例】
const { result } = await HwICSUiSdk.startChat({ interactionMode: 'AUDIO' });
setConfig
(static) setConfig(config: ConfigMap): void
【功能说明】
设置配置项,用于控制是否显示字幕或交互按钮。
【请求参数】
参数 |
是否必须 |
默认值 |
类型 |
描述 |
---|---|---|---|---|
config |
是 |
- |
ConfigMap |
配置信息,请参见表12。 |
参数 |
是否必须 |
默认值 |
类型 |
描述 |
---|---|---|---|---|
enableCaption |
否 |
false |
boolean |
是否显示字幕。 |
enableChatBtn |
否 |
false |
boolean |
是否显示交互按钮。 |
enableHotIssues |
否 |
false |
boolean |
是否显示热点问题。 |
enableWeakErrorInfo |
否 |
true |
boolean |
是否显示弱提示。 示例:SDK内部websocket异常提示。 |
enableBusinessTrack |
否 |
true |
boolean |
是否上报SDK埋点数据。 |
enableJobCache |
否 |
true |
boolean |
是否启用任务缓存。如果用户希望每次修改任务配置后能快速生效,可不启用缓存。
|
useDefaultBackground |
否 |
true |
boolean |
是否使用默认背景图。 |
【返回参数】
无
【代码示例】
HwICSUiSdk.setConfig({ enableCaption: true, enableChatBtn: false, enableHotIssues: false, enableWeakErrorInfo: true, });
setLogLevel
(static) setLogLevel(logLevel: 'debug' | 'info' | 'warn' | 'error' | 'none'): void
【功能说明】
设置输出日志的级别。
【请求参数】
参数 |
是否必须 |
默认值 |
类型 |
描述 |
---|---|---|---|---|
logLevel |
是 |
info |
|
日志级别。 |
【返回参数】
无
【代码示例】
HwICSUiSdk.setLogLevel('warn');
startChat
(static) startChat(param?: ChatParam): Promise<ChatResult>
【功能说明】
开始对话。
【请求参数】
参数 |
是否必须 |
默认值 |
类型 |
描述 |
---|---|---|---|---|
interactionMode |
否 |
AUDIO |
|
交互模式,语音交互还是文本交互。 |
【返回参数】
参数 |
类型 |
描述 |
---|---|---|
result |
boolean |
执行结果。 |
errorCode |
string | undefined |
错误码,详细见表1。 |
errorMsg |
string | undefined |
错误信息。 |
chatId |
string |
对话id。 |
【代码示例】
const { result } = await HwICSUiSdk.startChat({ interactionMode: 'AUDIO' });
startSpeak
(static) startSpeak(): Promise<UISdkResult>
【功能说明】
开始说话。
【请求参数】
无
【返回参数】
请参见表16。
【代码示例】
const { result } = await HwICSUiSdk.startSpeak();
startUserSpeak
(static) startUserSpeak(): Promise<UISdkResult>
【功能说明】
用户开始提问。
【请求参数】
无
【返回参数】
参数 |
类型 |
描述 |
---|---|---|
result |
boolean |
执行结果。 |
errorCode |
string | undefined |
错误码,详细见表1。 |
errorMsg |
string | undefined |
错误信息。 |
【代码示例】
const { result } = await HwICSUiSdk.startUserSpeak();
stopChat
(static) stopChat(): Promise<ChatResult>
【功能说明】
结束对话。
【请求参数】
无
【返回参数】
请参见表15。
【代码示例】
const { result } = await HwICSUiSdk.stopChat();
stopSpeak
(static) stopSpeak(): Promise<UISdkResult>
【功能说明】
停止说话。
【请求参数】
无
【返回参数】
请参见表16。
【代码示例】
const { result } = await HwICSUiSdk.stopSpeak();
stopUserSpeak
(static) stopUserSpeak(): Promise<UISdkResult>
【功能说明】
用户停止提问。
【请求参数】
无
【返回参数】
请参见表16。
【代码示例】
const { result } = await HwICSUiSdk.stopUserSpeak();