运行问答机器人引擎

Answer Bot是一个强大的偏转机制,它使用机器学习来建议帮助中心的文章来响应用户的查询。统一SDK可以使用引擎自动转移客户查询。如果转移不成功,统一SDK可以切换到由其他产品引擎驱动的另一个联系人选项,例如支持引擎

回答机器人引擎是如何工作的

回答机器人一次最多提供三篇文章来回应用户的查询。

问答机器人推荐文章

文章屏幕打开几秒钟后,系统会询问用户该文章是否解决了他们的问题。

回答Bot文章提示以获得反馈

如果用户返回消息屏幕时没有将问题标记为已解决或未解决,则会在消息屏幕上再次提示相同的问题。

回答机器人对话提示反馈 回答机器人对话提示反馈

当用户表示他们的问题还没有解决时,答案机器人会提供其他可用的替代联系选项,比如支持。如果没有其他引擎已包括,回答机器人不提供任何其他联系选项。

回答机器人提供了其他联系方式 回答机器人提供了其他联系方式

通过支持引擎创建的任何票证,从回答机器人移交将包含回答机器人对话的完整记录。

启动Answer Bot引擎

注意:一定要添加统一SDK依赖初始化SDK,识别您的用户

首先,导入必要的依赖项:

斯威夫特

             
进口AnswerBotSDK进口MessagingSDK进口MessagingAPI进口SDKConfigurations

objective - c

             
#进口<MessagingSDK/MessagingSDKh>#进口<AnswerBotSDK/AnswerBotSDKh>#进口<MessagingAPI/MessagingAPIh>#进口<SDKConfigurations/SDKConfigurationsh>

其次,获取an的实例AnswerBotEngine引擎:

斯威夫特

             
{做let answerbotenengine = try answerbotenengine .engine()} catch {//执行错误操作}

objective - c

             
NSError*错误=ZDKAnswerBotEngine*answerBotEngine=ZDKAnswerBotEngine engineAndReturnError&错误

让引擎自己运转

要在消息传递屏幕上自行启动应答机器人引擎,请传递您的AnswerBotEngine的实例。buildUI方法消息传递获取一个的实例ui

斯威夫特

             
{做let messagingConfiguration = messagingConfiguration ()让viewController = try message .instance。buildUI(引擎:[answerBotEngine],配置:[messagingConfiguration])self.navigationController ?。pushViewController(viewController, animated: true)} catch {//执行错误操作}

objective - c

             
-无效startConversation{NSError*错误=NSArray*引擎=@id<ZDKEngine>ZDKAnswerBotEngine engineAndReturnError&错误ZDKMessagingConfiguration*messagingConfiguration=ZDKMessagingConfiguration新ui*viewController=ZDKMessaging实例buildUIWithEngines引擎配置@messagingConfiguration错误&错误自我导航控制器pushViewControllerviewController动画是的}

引擎与其他引擎一起运行

将问答机器人引擎与支持闲谈,聊天引擎,获取所需引擎的实例,并将它们与buildUI方法:

斯威夫特

             
{做let messagingConfiguration = messagingConfiguration ()let answerbotenengine = try answerbotenengine .engine()let supportEngine = try supportEngine .engine()let chatEngine = try chatEngine .engine()让viewController = try message .instance。buildUI(引擎:[answerBotEngine,chatEngine, supportEngine],配置:[messagingConfiguration])self.navigationController ?。pushViewController(viewController, animated: true)} catch {//执行错误操作}

objective - c

             
-无效startConversation{NSError*错误=NSArray*引擎=@id<ZDKEngine>ZDKAnswerBotEngine engineAndReturnError&错误id<ZDKEngine>ZDKSupportEngine engineAndReturnError&错误id<ZDKEngine>ZDKChatEngine engineAndReturnError&错误ZDKMessagingConfiguration*messagingConfiguration=ZDKMessagingConfiguration新ui*viewController=ZDKMessaging实例buildUIWithEngines引擎配置@messagingConfiguration错误&错误自我导航控制器pushViewControllerviewController动画是的}

请注意answerBotEngine对象放置之前还有其他的引擎吗?这一点很重要,因为统一SDK将启动列表中的第一个引擎,任何后续引擎都将被视为潜在的联系选项。回答机器人可以移交给支持和聊天,但没有其他引擎可以移交给回答机器人。这意味着answerBotEngine必须放在列表的首位,否则它将永远不会启动。

使用Answer Bot API提供程序

如果统一SDK UI不适合你的Answer Bot用例,你可以使用Answer Bot SDK的API提供程序来代替,并构建你自己的UI。

将提供程序作为依赖项添加

若要仅将提供程序添加为依赖项,请参见添加SDK

使用AnswerBotProvider

的实例AnswerBotProvider使用AnswerBot单例模式:

斯威夫特

             
让answerBotProvider = AnswerBot.instance

objective - c

             
ZDKAnswerBotProvider*提供者=ZDKAnswerBot实例提供者

获取建议文章

要获取用户查询的建议文章,请调用getDeflectionForQuery

斯威夫特

             
answerBotProvider。getDeflectionForQuery(query: "query") {(result) in切换结果{case .success(let deflectionResponse):let deflectionId = deflectionResponse.deflectionId让interactionAccessToken = deflectionResponse.interactionAccessToken//用冠词做点什么案例.failure://处理错误}}

objective - c

             
提供者getDeflectionForQueryWithQuery@“查询”回调ZDKDeflectionResponse*_Nullable响应NSError*_Nullable错误{NSNumber*deflectionId=NSNumber numberWithUnsignedLong响应偏转deflectionIDNSString*interactionAccessToken=响应interactionAccessTokenNSArray<ZDKDeflectionArticle*>*文章=响应deflectionArticles//用冠词做点什么}

一定要保持deflectionIdinteractionAccessToken值,以便您可以解决或拒绝建议的条目。

解决建议

当建议文章解决了用户的问题时,将查询标记为已解决:

斯威夫特

             
answerBotProvider。resolveWithArticle (deflectionId: deflectionId,正如:article.id,interactionAccessToken: interactionAccessToken) {(result) in切换结果{案例.success://处理成功案例.failure://处理错误}}

objective - c

             
提供者resolveWithArticleWithDeflectionIddeflectionId正如文章idinteractionAccessTokeninteractionAccessToken回调id _空结果NSError*_Nullable错误{//处理输出}

拒绝建议

当最终用户指出建议的文章没有解决他们的查询时,拒绝该文章。拒绝电话也需要一个RejectionReason参数:

斯威夫特

             
answerBotProvider。rejectWithArticle (deflectionId: delfactionId,正如:article.id,interactionAccessToken: interactionAccessToken,原因:.notRelated){(结果)in切换结果{案例成功(让响应)://成功地做某事案例.failure://执行错误操作}}

objective - c

             
提供者rejectWithArticleWithDeflectionIddeflectionid正如文章idinteractionAccessTokenInteractionAccessToken原因ZDKRejectionReasonNotRelated回调id _空结果NSError*_Nullable错误{//处理输出}