npm 包 botbuilder-toybox-dialogs 使用教程

阅读时长 12 分钟读完

什么是 botbuilder-toybox-dialogs?

botbuilder-toybox-dialogs 是一个可以帮助开发者快速创建对话机器人的 npm 包,解决了对话机器人开发中较为繁琐和复杂的问题。

botbuilder-toybox-dialogs 集成了 BotBuilder 中所有常见的对话控制器,比如 Prompt、Confirm、Choice 等等。同时,它还允许开发者轻松定义自己的自定义对话控制器,以适应更复杂的对话流程。

安装

使用教程

1. 基本概念

在开始 botbuilder-toybox-dialogs 的使用之前,我们先来了解几个基本概念。

  • Dialog:对话控制器,定义对话的流程和行为。
  • Library:对话库,包含了一组对话,可以被其他库或者 bot 引用。
  • Session:对话中的一个 session,在对话的整个过程中保存了各种状态和上下文信息。

2. 创建对话机器人

首先,我们需要创建一个 botBuilder 实例,然后将其传入 botbuilder-toybox-dialogs 中进行初始化,最后启动 botBuilder 实例。

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

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

上面代码进行了以下操作:

  • 创建一个 botBuilder 实例并传入 ConsoleConnector 实例。
  • 创建 botbuilder-toybox-dialogs 的 library 实例(createLibrary())。
  • 初始化 dialogs 并为 bot.library() 设置一个引用。
  • 定义了以下几个对话控制器:/cancel、/help、/repeat。
  • 使用 beginDialogAction() 定义了对话中的帮助、重复和取消操作。
  • 在 '/' 对话中提供了简单的对话流程。

3. 加入自定义对话文件

我们可以将自定义对话文件加入到 botbuilder-toybox-dialogs 中通过调用 dialog() 方法。

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

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

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

4. 使用当前 session 数据

可使用 session.dialogData 获取当前 session 中保存的数据,用以改变对话行为。

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

5. 实现多语言支持

botbuilder-toybox-dialogs 提供了本地化语言支持的方式,以便支持多种语言的机器人。

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

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

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

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

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

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

6. 使用结果过滤器

结果过滤器是一个函数,接收两个参数:原始结果和 session 对象。开发人员可以使用结果过滤器来转换和改变结果。

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

总结

本文介绍了 npm 包 botbuilder-toybox-dialogs 的使用教程,包含了如何创建对话机器人、加入自定义对话文件、使用当前 session 数据、实现多语言支持等等。除此之外,还介绍了如何使用结果过滤器,以便开发人员可以更加灵活地使用该 npm 包来开发自己的对话机器人。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066c81ccdc64669dde4ceb

纠错
反馈