基于 Antd 制作的纯前端客服机器人
简介
- 由于客服机器人场景使用很多,大部分都需要前后端通信,甚至可能还需要智能对话平台利用 nlp 进行处理,不说那些平台需要花钱,如果自己写前后端写起来也相当麻烦,所以我着手制作了个只需要前端并且支持对话定制的客服机器人。当然,同时支持使用后端或者平台。
- ui 使用了 antd,这样很多人能看得懂代码并且方便定制修改。几乎所有样式都暴露出来,可以直接进行修改样式。antd 配置项也几乎全部暴露出来,满足各种特殊需要。
快速上手
- 需要 react 版本 16.8 以上,支持 hooks。
- 需要 antd4。
- 安装:
npm i chatbot-antd
;;;;; //text是语句,reg会生成正则匹配,useReg会使用自定义匹配library.push //语料库,push进去,也可以不用 , , ;
使用说明
按需引入样式
- 按需引入样式,或者全量或者按需引入 antd 样式,这个样式完全是 antd 的,如果全量引入可以不引 css
;
- 按需引入需要引入,引入对应的 less 也可以。
antd/lib/style/index.css
antd/lib/button/style/index.css
antd/lib/avatar/style/index.css
antd/lib/input/style/index.css
antd/lib/modal/style/index.css
antd/lib/popover/style/index.css
- 全量引入直接:
import "antd/dist/antd.css";
library 语料库
- 语料库部分,是跟主体进行分离的,可以不用,直接对接平台。
- 使用语料库导入 library 后自己配置即可,text 是机器人需要返回的话,reg 会生成正则匹配,useReg 则会使用自定义正则进行匹配。
library.push //语料库,push进去,也可以不用 , , ;
useRegister 注册钩子
- 这个是自定义钩子,也是主体部分,传入参数,以及返回格式:
;
- 返回里可以拿到 render 渲染结果以及 setList 来设置对话框中的聊天语句。
- 值得注意的是 callback 设置语句请使用 useCallback 将函数作为常驻变量,否则用户每次输入都会触发:
;
-
callback 传入 register 的第二个参数。
-
callback 可以直接去发请求给平台获取结果,再 setList 回来,让机器人发送。
-
setList 的格式为:
-
isUser 表示是否是用户所发。
-
text 表示每条对话。其中用户所发的 text 类型为 string,而机器人所发 text 类型可以是 ReactNode。
响应生成器 generateRespones
- 这个函数结合 library 用正则去匹配收到的语句,从而返回机器人的响应。
- 如果觉得不好用可以自己制作响应生成器。
修改样式
- 可以直接靠 css 修改。
- 不少样式都以变量方式暴露出来,可以参考源码导入暴露的变量进行修改。
修改头像
- 修改头像请导入暴露的变量 robotAvatarOptions 或者 userAvatarOptions,去除 icon,传入 children 进行修改。
更新日志 changelog
- 如果有需要请自行下载对应版本:npm i chatbot-antd@版本号
- 0.6.0 增加清空功能与发送图片功能
- 0.5.0 增加按需引入 css
- 0.3.0 增加回车键发送功能
- 0.2.0 基本完成功能
效果演示
- 预览地址:https://yehuozhili.github.io/chatbot-antd/
- 此预览地址的语料库为 demo 中的那几个