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 包 hyper-media-control-spotify-local 使用教程

    前言 Hyper 是一个基于 Electron 技术的强大终端应用程序。它为开发者提供了一种全新的方式来使用和操作终端,而 npm 包 hyper-media-control-spotify-loca...

    3 年前
  • npm 包 jquery-time-bar 使用教程

    如果你是一个前端开发工程师,并且正在寻找一种方法来为你的用户提供很好的时间轴界面,那么 jquery-time-bar 就是一个不错的选择。该插件旨在帮助开发人员创建最佳的时间轴条,在良好的性能和访问...

    3 年前
  • npm 包 json-server-visop 使用教程

    什么是 json-server-visop? json-server-visop 是一个基于 json-server 的 npm 包,它提供了更多的功能以及可视化界面,方便开发者进行开发和调试工作。

    3 年前
  • npm 包 ng-sweetalert-2-wrapper 使用教程

    ng-sweetalert-2-wrapper 是一个基于 SweetAlert2 的 AngularJS 服务封装,它可以帮助我们更方便地在 AngularJS 程序中使用 SweetAlert2 ...

    3 年前
  • npm 包 ows-native-dns-packet 使用教程

    前言 在前端开发过程中,我们通常需要进行 DNS 解析操作。而 npm 包 ows-native-dns-packet 则提供了一种快捷的方式,方便我们在前端中进行 DNS 协议的解析和构造。

    3 年前
  • npm 包 polix-request 使用教程

    前置知识 在使用 polix-request 之前,你需要了解以下基本前端知识: Node.js 环境,以及 npm 包管理器 HTTP 协议,以及常见的请求头、响应头 Promise 模式,异步编...

    3 年前
  • npm 包 qtool 使用教程

    前言 在前端开发中,我们经常需要用到一些工具库和框架,其中一个十分常用的就是 qtool 工具库。qtool 是一款基于 jquery、underscore、backbone 等工具库开发的前端组件库...

    3 年前
  • npm 包 react-form-validizr 使用教程

    介绍 React 是一种广泛使用的前端框架,而在 React 中,表单是开发中不可避免的一个部分。而表单的验证是表单中不可或缺的一部分,而 react-form-validizr 就是一个专为 Rea...

    3 年前
  • npm 包 taskrun.io 使用教程

    在前端开发过程中,构建工具的运用非常重要,而 taskrun.io 就是一款优秀的构建工具。本文将详细介绍该工具的使用教程,包括创建新任务、运行任务,以及过滤、排序等高级用法,并提供示例代码供读者参考...

    3 年前
  • NPM包botkit-mixpanel使用教程

    在这篇文章中,我们将学习如何使用npm包 botkit-mixpanel来跟踪和分析机器人的用户交互数据。 botkit-mixpanel是一个用于创建基于机器人的分析的库。

    3 年前
  • npm 包 dom-to-image-h4 使用教程

    前言 dom-to-image-h4是一个基于js的npm包,用于将HTML DOM节点转换为图像、Canvas和SVG。HTML DOM文档是web页面在浏览器中运行时的模型。

    3 年前
  • npm 包 es6-currency-codes 使用教程

    在前端开发中,我们经常需要处理货币相关的数据,例如计算汇率、格式化货币等等。而 es6-currency-codes 是一个使用 ES6 和 TypeScript 编写的轻量级库,它提供了标准的货币码...

    3 年前
  • npm 包 hello-rl1m-npm 使用教程

    前言 在现代 web 开发中,npm 包已经成为构建前端应用的重要组成部分。很多优秀的开发者们发布了一些非常有用的 npm 包,减轻了开发者的工作负担,让开发者能够更加专注于业务逻辑的实现。

    3 年前
  • npm 包 peppa 使用教程

    Peppa 是一个便于前端开发的 npm 包,它提供了一些常用的工具函数和组件,让我们能够更加轻松地写出高质量的前端代码。 本文将从以下几个方面来介绍 Peppa 的使用: 安装 Peppa 使用 ...

    3 年前
  • npm 包 react-native-autocomplete-select 使用教程

    本文将为前端开发者介绍一款优秀的 npm 包——react-native-autocomplete-select。这个 npm 包可以帮助我们在 React Native 应用中实现自动补全下拉框,并...

    3 年前
  • npm 包 @zeix/body-scroll-lock 使用教程

    简介 随着移动互联网的发展,越来越多的网站和应用需要在移动端提供更好的用户体验。其中,滚动页面时的体验是必不可少的。但是,手机浏览器在滚动时会经常出现页面晃动、弹跳等问题,影响用户的使用感受。

    3 年前
  • npm 包 meson-js 使用教程

    在前端开发中,使用各种第三方库和框架可以极大地提高开发效率和代码质量。其中,npm 是一个非常流行的包管理工具,拥有数十万的开源库,覆盖了几乎所有前端开发的需求。meson-js 就是其中之一,它是一...

    3 年前
  • npm 包 teamwork-time-logger 使用教程

    前言 在团队协作中,准确记录时间的重要性不言而喻。为了解决团队协作时时间记录的问题,开发了一个 npm 包——teamwork-time-logger。该包使用简单,支持多种时间记录方式以及自定义输出...

    3 年前
  • npm 包 test-sr-demo 使用教程

    关于 npm 包 test-sr-demo npm 是目前最受欢迎的 JavaScript 包管理工具,可以让开发者轻松地分享、发现和安装代码包。test-sr-demo 是一个基于 JavaScri...

    3 年前
  • npm 包 images-viewer 使用教程

    前言 对于前端开发者来说,在网站开发中经常需要用到图片,而简单的展示并不能满足要求。这时候,选择一个好用的图片查看器就至关重要了。今天我们要介绍的就是一个基于 npm 的图片展示组件:images-v...

    3 年前

相关推荐

    暂无文章