什么是 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