运行问答机器人引擎

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

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

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

问答机器人推荐文章

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

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

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

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

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

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

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

启动Answer Bot引擎

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

的实例AnswerBotEngine:

             
引擎answerbotenengine = answerbotenengine . Engine ();

让引擎自己运转

要启动答疑机器人引擎,请传递您的AnswerBotEngine类的构造器的实例MessagingActivity如下:

             
MessagingActivity.builder ().withEngines (answerBotEngine),告诉(上下文);

引擎与其他引擎一起运行

将问答机器人引擎与支持引擎闲谈,聊天,获取两个引擎的实例,并将它们包含在MessagingActivity建造者:

             
引擎answerbotenengine = answerbotenengine . Engine ();Engine supportenengine = supportenengine . Engine ();引擎chatEngine = chatEngine . Engine ();MessagingActivity.builder ().withEngines(answerboengine, chatEngine, supportEngine),告诉(上下文);

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

使用Answer Bot API提供程序

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

添加提供者构件

要使用API提供程序,请更新您的build.gradle使用Answer Bot提供程序构件:

             
api集团:“com.亚博zendesk”模块:“answerbot-providers”版本:“3.1.0”

的依赖项消息传递answerbot如果您不使用这些组件。

使用AnswerBotProvider

Answer Bot的功能是通过AnswerBotProvider接口。的实例AnswerBotProvider使用AnswerBot单例模式:

             
AnswerBotProvider提供者=AnswerBot实例answerBotProvider

获取建议文章

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

             
提供者。getDeflectionForQuery("my query", new 亚博ZendeskCallback() {@Overridepublic void onSuccess(DeflectionResponse) {long deflectionId = deflectionresponse . get挠度().getId();String interactionAccessToken = deflectionResponse.getInteractionAccessToken();List articles = deflectionResponse.getDeflectionArticles();//用冠词做点什么@Overridepublic void onError(ErrorResponse) {//处理错误});

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

解决建议

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

             
long articleId = article.getId();provider.resolveWithArticle (deflectionIdarticle.getId (),interactionAccessToken,new 亚博ZendeskCallback() {@Overridepublic void onSuccess(void aVoid) {//处理成功@Overridepublic void onError(ErrorResponse) {//处理错误});

拒绝建议

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

             
provider.rejectWithArticle (deflectionIdarticle.getId (),interactionAccessToken,RejectionReason。NOT_RELATED,new 亚博ZendeskCallback() {@Overridepublic void onSuccess(void aVoid) {//处理成功@Overridepublic void onError(ErrorResponse) {//处理错误});