在当今的人工智能时代,机器人与人类的互动越来越频繁,尤其是在聊天机器人的开发方面。借助 Microsoft Bot Framework,我们可以将聊天机器人应用于广泛的场景中。而 botbuilder-handoff
这个 npm 包,则是在 Microsoft Bot Framework 的基础上,提供了更加完善的用户转接功能。
本篇文章将详细介绍 botbuilder-handoff
的使用方法,并配有代码示例,帮助您更好地理解如何使用这个 npm 包。
安装和引用
首先,我们需要在我们的项目中安装 botbuilder-handoff
。使用 npm 命令即可完成:
--- ------- ------------------
然后,在我们的 JavaScript 文件中引用它:
----- ------- - ------------------------------
初始化
在使用 botbuilder-handoff
的功能前,我们需要对它进行初始化。这需要提供一个 BotBuilder
实例以及一些其他选项。以下是初始化的例子:
----- ------- - ------------------------------ ----- --- - --- -------------------------------- ----- ------------- - - ---- ---- --- ---------------------- -- -- ---------- -------- ------- -- --------------------------------------------- -- ----------------------------------
代码中,我们首先需要提供一个 BotBuilder
实例,即 bot
。然后,我们需要创建一个 handoffConfig
对象,并在此对象中指定一些选项:
app
对象,用于存储代理人的状态信息。conversationIdFactory
函数,用于生成代理交互所需的conversationId
,可以用一个唯一的字符串。isAgent
函数,则用于根据用户的信息判断其是否为代理人。
最后,使用 handoff.initialize
函数对 botbuilder-handoff
进行初始化。
设置代理人
在初始化完成后,我们需要为我们的机器人设置代理人,以达到用户与代理人自由转接的目的。
首先,我们需要通过 handoff.addAgent
函数,将代理人的信息进行注册。以下是代理人注册的例子:
------------------ --- -------- ----- ---- ------- ------ ---- ---
我们提供了代理人的信息,包括 id
(代理人唯一 ID)、name
(代理人名称)和 skill
(代理人技能值)。
然后,我们需要为我们的机器人设置一个代理人处理程序。这个处理程序将响应用户的请求,并查找可用的代理人来处理该请求。以下是如何进行设置:
---------------------- ------- -- - ---------------------------------------------- -------- -- - ------------------ -- ----- -- --- -- ----- --- ------- -- --------- -- - -------------------- ----- --- -- ------ --------- -- --- ------- ------ --- ----- --------- --- ---
我们使用 bot.dialog
函数来创建一个针对“手动转接”事件(手动转接的触发方式可以根据自己的需求来设置)的处理程序,即 /handoff
。当用户触发了此事件时,将使用 handoff.queueCustomerForAgent
函数,将用户加入到代理人的队列中。如果有可用的代理人,则立即转接。如果没有可用的代理人,则通知用户。
自动转接
在有些情况下,我们希望机器人能够自动转接到代理人,而无需用户发起转接的请求。
以下是如何设置自动转接:
------------------------ ------- -- - -- --------------------- --- -------- - -------------------------- - ------ ---- -------- ------- -- -------- -- - ------------------ ------------ --- ---- ------ --- ---- -- ------- -- --- ---- --------- --------- -- --------- -- - -------------------- ----- --- -- ------ --------- -- --- ------- ------ --- ----- --------- --- - ---- - --------------- -- -- --------- --------- ------ --- --- -- ----- -- ------ ----------- - ---
在此例中,我们使用了 handoff.autoQueue
函数,以自动转接到可用的代理人。
转接事件
在进行转接时,我们可能需要跟踪转接事件。botbuilder-handoff
为此提供了 handoffEventMiddleware
函数,用于收集和记录有关转接的事件数据。以下是如何使用它:
----- ------ - --- ---------------- ----------- - --- ---------------------------- --------- ----- ------------ ---- -- - --- ----------------------------------------
我们首先需要实例化一个日志对象,例如 winston
。然后,在我们的机器人中使用 bot.use
函数,并将日志对象作为参数传递给 handoffEventMiddleware
函数。
结论
如此,我们便完成了对 botbuilder-handoff
的介绍。使用 botbuilder-handoff
,我们可以轻松地实现代理人的转接,为用户提供更好的服务体验。
示例代码
全部代码如下:
----- ------- - ---------------------- ----- ------- - ------------------------------ ----- ------- - ------------------- ----- --------- - --- --------------------------- ----- --- - --- -------------------------------- ----- ------------- - - ---- ---- --- ---------------------- -- -- ---------- -------- ------- -- --------------------------------------------- -- ---------------------------------- -- -------- ----- ------------------ --- -------- ----- ---- ------- ------ ---- --- -- ------ ------- ----- ------- ---------------------- ------- -- - ---------------------------------------------- -------- -- - ------------------ -- ----- -- --- -- ----- --- ------- -- --------- -- - -------------------- ----- --- -- ------ --------- -- --- ------- ------ --- ----- --------- --- --- -- --------- ------- ------------------------ ------- -- - -- --------------------- --- -------- - -------------------------- - ------ ---- -------- ------- -- -------- -- - ------------------ ------------ --- ---- ------ --- ---- -- ------- -- --- ---- --------- --------- -- --------- -- - -------------------- ----- --- -- ------ --------- -- --- ------- ------ --- ----- --------- --- - ---- - --------------- -- -- --------- --------- ------ --- --- -- ----- -- ------ ----------- - --- -- ----- -------- ----- ------ - --- ---------------- ----------- - --- ---------------------------- --------- ----- ------------ ---- -- - --- ----------------------------------------
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/60065b4bc6eb7e50355dc002