npm 包 botbuilder-handoff 使用教程

在当今的人工智能时代,机器人与人类的互动越来越频繁,尤其是在聊天机器人的开发方面。借助 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


猜你喜欢

  • npm 包 probe-srv 使用教程

    简介 在前端开发中,往往需要调用后端的 API 接口,这时候便需要获取服务器的地址。而在分布式系统中,服务器节点可能存在多个,这时候就需要一种可靠的方法来获取服务器的地址。

    3 年前
  • npm 包 @zcong/metrics-influxdb 使用教程

    前言 随着互联网技术的不断发展,前端开发的重要性日益凸显。越来越多的开发者开始将目光投向前端,而前端开发也越来越复杂和多样化。本文将介绍一个 npm 包 @zcong/metrics-influxdb...

    3 年前
  • npm 包 koa-proxies2 使用教程

    什么是 koa-proxies2 koa-proxies2 是一个基于 Koa2 的代理中间件,它可以让你轻松地将请求代理到其他的服务器或接口。使用 koa-proxies2,你可以快速地实现一些跨域...

    3 年前
  • npm 包wangrj-hs-text-lib使用教程

    概述 npm 是一个世界上最大的开源软件库,用于分享、发现和安装 node.js 应用程序的包或模块。wangrj-hs-text-lib 是一个在 npm 上可用的前端包,它包含了一些常用的文本操作...

    3 年前
  • npm 包 fa-icon-list 使用教程

    前言 在前端开发中,我们通常需要使用大量的图标来丰富页面的视觉效果。常见的图标包括字体图标、svg 图标等。在使用字体图标时,我们经常需要使用 font-awesome 这样的第三方库来进行管理和调用...

    3 年前
  • npm 包 nims 使用教程

    简介 nims 是一个用于管理 Node.js 项目依赖关系的工具,它可以让你更加便捷地管理和更新项目依赖库。在开发前端项目时,nims 是一个非常实用的工具,可以用来管理前端框架、UI 库等的依赖。

    3 年前
  • npm 包 isokay 使用教程

    简介 isokay 是一个基于 JavaScript 的小型库。它旨在为开发人员提供一种简单的方法来验证数据。它包含一组实用程序函数,可以简化数据验证的过程,同时提供更加清晰地代码和错误消息。

    3 年前
  • npm 包 sos-sms 使用教程

    简介 在前端开发中,常常需要进行短信验证、手机信息推送等操作。而 sos-sms 包是一款可以让开发者更方便、快捷地进行相关操作的 npm 包。本文会详细介绍 sos-sms 包的使用方法,并提供示例...

    3 年前
  • npm 包 @thisisbarney/request 使用教程

    简介 在前端开发中,我们经常需要从服务器中获取数据,而这时候 npm 包 @thisisbarney/request 可以帮助我们快速地发送 HTTP 请求,并处理响应。

    3 年前
  • npm 包 git-experiment 使用教程

    在前端开发中,很多时候需要使用 git 进行版本控制,而 git-experiment 是一个使用了前端技术的 git 命令行工具。本文将介绍如何使用 npm 包 git-experiment 进行前...

    3 年前
  • npm 包 rkm 使用教程

    前言 在前端开发中,我们经常会用到一些工具和框架来提高我们的开发效率和代码质量,而 npm 是前端开发中使用最为广泛的包管理工具之一。在 npm 中,有很多优秀的包可以帮助我们更好地完成任务,而 rk...

    3 年前
  • npm 包 angular-relative-day 使用教程

    angular-relative-day 是一个非常好用的 AngularJS 插件,它可以帮助我们轻松地将时间戳或日期格式化为相对时间字符串(如“X 天前”、“X 小时前”、“刚刚”等),并且非常易...

    3 年前
  • KoaJS2-Middlewares NPM包使用教程

    KoaJS2-Middlewares是一个npm包,可以轻松地为您的Koa2应用程序添加更多的功能。它是一个轻量级模块化工具,支持在应用程序中快速添加各种中间件。以下是使用教程,包括安装、基本配置和使...

    3 年前
  • npm 包 gulp-svg-multitool 使用教程

    什么是 gulp-svg-multitool? gulp-svg-multitool 是一个用于处理 SVG 文件的 gulp 插件,可以帮助我们在前端开发中更加高效地处理 SVG 图片。

    3 年前
  • npm 包 ta-maxlength 使用教程

    在前端开发中,有时候我们需要对输入框做一些限制,以保证输入的内容符合要求。而 npm 包 ta-maxlength 就是一款专门用于限制文本框最大输入长度的工具。本文将为大家介绍 ta-maxleng...

    3 年前
  • npm 包 node-pantilt-hat 使用教程

    在现代的前端开发中,Node.js 已经成为了不可或缺的一部分。前端开发人员可以使用 Node.js 进行自动化构建、服务器渲染、数据爬取、前端监控等操作。而 npm 作为 Node.js 的包管理工...

    3 年前
  • npm 包 ups-shipping-api 使用教程

    UPS 联合包裹服务(United Parcel Service)是美国的一家快递公司,也是全球运输和物流行业的领导者之一。UPS 提供巨大的规模和多样化的服务,为全球包裹和货物的运输、处理、跟踪和交...

    3 年前
  • npm 包 @schwarzhirsch/bundler 使用教程

    随着前端技术的不断发展和快速迭代,我们的项目往往会变得复杂而庞大,各种插件和库的使用也让我们的开发工作变得更加便捷。但是这些插件和库不仅仅只是需要被引用,还需要我们对其进行管理和打包,处理依赖关系和冗...

    3 年前
  • npm 包 repairs-client 使用教程

    简介 repairs-client 是一个基于 Node.js 的 npm 包,旨在为前端开发者提供一种方便、高效的方式来管理不同环境下的接口地址,代码库可以在开发、测试、线上环境中快速地进行切换。

    3 年前
  • npm 包 apply-spec-f 使用教程

    简介 apply-spec-f 是一个 npm 包,用于校验和转换 JavaScript 对象。它是 Rambda 库的一部分,可以帮助开发人员更有效地创建和转换对象。

    3 年前

相关推荐

    暂无文章