npm 包 botbuilder-formflow 使用教程

在开发聊天机器人的过程中,我们经常需要处理用户的输入数据并根据其回答继续向用户发起问题。botbuilder-formflow 是一个 npm 包,可以帮助我们轻松地构建出这样的聊天机器人,本文将介绍如何使用 botbuilder-formflow

简介

botbuilder-formflow 是一个基于 Bot Builder for Node.js 的组件。它提供了一种声明式的方式来验证及处理聊天机器人的输入及输出数据,通过简明的配置,可以快速地构建出一个具有自然语言交互能力的聊天机器人。

安装

首先,我们需要安装 botbuilder-formflow 依赖:

--- - -------------------

使用

1. 创建 botbuilder-formflow 的 Form 对象

首先,我们需要创建 botbuilder-formflow 的 Form 对象:

----- - ------------------ ----------- --------------- - - -------------------------------
----- ------- - ----------------------

----- --- - --- --------------------------------

----- ------ - --- ------------
    ------------
        --------- ----- ----- -- -
            -- ---- ---- -----
        -
    ---

在创建 myForm 对象时,我们需要使用 FormDialog 构造函数创建一个输入对话框,然后使用 configure 方法对其进行配置。在 configure 方法中传入对话框要执行的回调函数数组。

FormDialog 采用一种堆栈式的回调方式,第一个函数将作为初始函数,后续函数将根据逻辑决定是否执行。在实例化对话框对象后,您还可以使用 FormDialog 上的其他方法对其进行定制,例如设置默认值等。

2. 创建 botbuilder-formflow 的 Waterfall 对象

使用 FormDialog 的函数返回 Entity 所需的值。为了让用户输入值,我们需要创建一个包含 FormDialogWaterfallDialog

----- --------- - --- -----------------
    -----------------

3. 将 Waterfall 对象设置为根对话

我们可以将 WaterfallDialog 对象设置为根对话,这样聊天机器人将首先调用 myForm 中的第一个方法来启动聊天。

这里我们使用 bot.dialog() 添加了 WaterfallDialog 对话对象。

--------------- -----------

4. 添加 Entity

当聊天机器人开始聊天之前,我们还需要向 botbuilder-formflow 添加实体,以表示我们当前对话的主题。

我们以井号(#)的形式定义实体 name 及处理用户输入方法:

---------------------------------------------- ------ -- ------------------- ----

EntityRecognizers 中的 addEntityRecognizer 函数将实体 #name 添加到实体器中。指定的处理程序要求输入的文本将被拆分成识别符和值数组。在这种情况下,我们将输入文本拆分为空格分隔的字符串,这样每个单词都被视为一个值。

5. 表单验证

在表单中设置验证器,如果表单数据不正确,则将触发这些验证器。

以下示例验证表单输入数据中是否包含 name 实体。

------
    -------------- --------- ------ -- -
        -- -------- -
            ------------------ ------ --- -- --------
            ------ -----
        - ---- -- ------------- - --- -
            ------------------ ------ --- -- ---- ---- -- ------------
            ------ -----
        - ---- -
            --------------------- - ------
            ------ ------
        -
    ---

myForm.field() 方法在构建表单时为每个表单字段设置一个新的字段。设置回调函数来检查数据是否有效,并在数据无效时返回空值。

6. 启动聊天

我们将 bot.dialog() 添加为第一次和每一次返回根对话时发送的内容。

---
    ------------------------- --------- -- -
        -- ---------------------- -
            --------------------------------------- -- -
                -- -------------------------- --- ------------------------------------- -
                    ------------ -----------------
                        -------------------------
                        -------------------
                -
            ---
        -
    --
    -------------- ---------------------------------------

示例

下面是一个完整的使用示例,聊天机器人用于让用户输入他们的名字:

----- - ------------------ ----------- --------------- - - -------------------------------
----- ------- - ----------------------

----- --------- - --- ------------------------------------
----- --- - --- --------------------------------

----- ------ - --- ------------
    ------------
        --------- ----- ----- -- -
            ----------------------------- ------- ---- --------
        --
        --------- -------- ----- -- -
            ------------------------------------ - -----------------
            ------------------ ---- -- ----------------------
            ------------------------------
        -
    --
    --------------- --------- ------ -- -
        -- -------- -
            ------------------ ------ --- -- --------
            ------ -----
        - ---- -- ------------- - --- -
            ------------------ ------ --- -- ---- ---- -- ------------
            ------ -----
        - ---- -
            --------------------- - ------
            ------ ------
        -
    ---

----- --------- - --- -----------------
    -----------------

---------------------------------------------- ------ -- ------------------- ----

--------------- ----------
    ------------------------- --------- -- -
        -- ---------------------- -
            --------------------------------------- -- -
                -- -------------------------- --- ------------------------------------- -
                    ------------ -----------------
                        -------------------------
                        -------------------
                -
            ---
        -
    --
    -------------- ---------------------------------------

运行聊天机器人,输入以下内容:

----- --
---- --------
---- ------ ---- -----
----- -----
---- ---- ---- -- -----

这是一个最简版本的实现聊天机器人,只有一个字段,如果你更改 myForm 对象配置并调用 configure 方法,步骤回调函数数组将被调整以处理预期的表单输入数据。

总结

通过本文,我们了解到了 botbuilder-formflow 这个 npm 包的基本使用方法。我们可以在创建聊天机器人时添加更多的字段,以便更全面地处理用户的输入数据,并向用户发起更多问题,以实现更自然的语言交互效果。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/79464


猜你喜欢

  • npm 包 babel-c 使用教程

    简介 babel-c 是一款在前端开发过程中用于编译 ES6 或 ES7 语法的 npm 包,能够将使用了最新 JavaScript 语法的代码转换成老版本的 JavaScript 语法,以保证在不支...

    5 年前
  • npm 包 pusher-client 使用教程

    介绍 对于前端开发人员来说,实时通信是非常重要的。Pusher是一个提供实时通信的即时API的服务,可以让我们轻松地向网页或者移动应用程序添加实时功能。 pusher-client 是一个 Pushe...

    5 年前
  • npm 包:lokka-transport-http 使用教程

    前言: 对于前端开发者来说,调用 GraphQL API 通常需要使用库。而 lokka-transport-http 则是 GraphQL API 的 JavaScript 框架。

    5 年前
  • npm 包 eslint-config-nodejs 使用教程

    前言 在 Node.js 应用的开发过程中,我们常常需要使用到大量的 JavaScript 代码,为了提高代码的质量和可读性,我们需要使用工具来检查和规范代码,而 eslint-config-node...

    5 年前
  • npm包grql使用教程

    GraphQL 是一种由 Facebook 发布的查询语言,可以更高效、更强大地管理 API。而 grql 则是与 GraphQL 平台互动的 JavaScript 客户端库,非常适合用于编写 UI ...

    5 年前
  • npm 包 fetch-graphql-schema 使用教程

    前言 GraphQL 是一种 API 查询语言,它允许客户端指定需要的数据结构,避免了 REST 中多个 API 端点的反复请求。GraphQL 用于查询数据,而不是为特定的 GET、POST、PUT...

    5 年前
  • npm 包 stylelint-custom-processor-loader 使用教程

    概述 stylelint-custom-processor-loader 是一个用于处理 CSS 或 SCSS 文件,以便可以使用 stylelint 进行代码风格检查的 npm 包。

    5 年前
  • 使用 react-day-picker 遇到的问题及解决方案

    moment 是一个非常优秀的日期处理库。然而,它越来越被 date-fns 所替代。 不过,我们依旧可以使用一些 react-day-picker 依赖 moment.js 的代码。

    5 年前
  • npm 包 pollicino-ui 使用教程

    介绍 Pollicino-UI 是一款基于 React 的 UI 组件库,包含了常用的 UI 组件,比如按钮、输入框、表格等等。它的特点是简洁易用,同时支持自定义主题和样式。

    5 年前
  • npm 包 react-simple-colorpicker 使用教程

    前言 在前端开发中,使用颜色选择器可以轻松地实现颜色的选择和编辑。React 是一个非常流行的前端框架,提供了大量的组件和插件供开发者使用。在本文中,我们将介绍一种叫做 react-simple-co...

    5 年前
  • npm 包 vanilla-picker 使用教程

    在前端开发工作中,常常需要使用颜色选择器。这时候可以使用 vanilla-picker 这个 npm 包。vanilla-picker 是一个基于原生 JavaScript 实现的简单易用的颜色选择器...

    5 年前
  • npm 包 xyz-components 使用教程

    简介 npm 是一个 Node.js 的包管理器,可以用于安装和管理 Node.js 模块和应用程序。而 xyz-components 是一个基于 React 和 TypeScript 的组件库,提供...

    5 年前
  • npm 包 browser-cookies 的使用教程

    在前端开发过程中,经常会需要使用到 Cookies 进行信息的存储。而 npm 包 browser-cookies 则是一个专门针对浏览器的 Cookies 读写库,非常方便并易于使用。

    5 年前
  • npm 包 react-idle-manager 使用教程

    在前端界中,我们经常需要进行一些空闲时间的处理,例如用户没有操作页面时,不希望页面一直处于静止状态。这时候,我们就可以使用 npm 包 react-idle-manager 来解决这个问题。

    5 年前
  • npm 包 react-parm 使用教程

    随着前端技术的发展和应用的广泛,前端开发所涉及的工具和框架也越来越多,其中一个很好用的工具就是 npm 包 react-parm。 在本篇文章中,我们将详细介绍 npm 包 react-parm 的使...

    5 年前
  • npm 包 rioct 使用教程

    Rioct 是一款用于快速构建 PC 网站的开源框架,它采用了流行的 React 和 Next.js 技术栈,提供了丰富的 UI 组件以及一整套良好的开发规范。本文将介绍如何使用 Rioct 框架,并...

    5 年前
  • npm 包 jsx-templates 使用教程

    在前端的开发过程中,构建和管理组件库是一个重要的环节。而在组件库的构建过程中,我们需要使用到一些模板语言来定义组件的展示方式。其中,jsx 模板语言已经成为了很多前端开发者的首选,方便开发者快速地编写...

    5 年前
  • npm 包 react-style-tag 使用教程

    前言 在前端开发中,我们常常需要处理一些样式相关的问题,比如样式的定义、样式的动态添加、样式的覆盖等。而 React 库提供了一种方便的方式来处理样式,即使用组件级别的样式定义。

    5 年前
  • npm 包 rioct-loader 使用教程

    本文将介绍一个前端类 npm 包 rioct-loader 的使用教程。该包可以帮助开发者实现页面或组件在加载过程中的动态效果,提高用户体验。 安装 在使用 rioct-loader 之前,需要先进行...

    5 年前
  • npm 包 rioct-cli 使用教程

    前言 随着前端技术的发展,我们经常会需要使用一些工具来提高开发效率,如构建工具、打包工具、测试工具等等。而 npm 是目前最流行的包管理器,可以方便地安装、管理这些工具。

    5 年前

相关推荐

    暂无文章