轻量型js聊天框架Botui(附示例源码)

最近在捣鼓typecho博客,无意中发现一个好玩的小插件botui,可以实现简单的自定义聊天对话,因此通过"抽丝剥茧“提取出来一个简单的示例代码,就是一些js,css之类的。非常适合移植作为博客插件。

1.Botui介绍

 官方文档:https://docs.botui.org/

        一款自动回复文字、图片、视频的JS聊天机器人框架BotUI,可以自由设置多种选项、触发关键词、输入框等内容,聊天内容或范围也可以自由设置,回复内容可以是文字、图片(GIF亦可)、视频。弄成一个博客插件简直是不要太爽。

Botui是vue.js结合Botui.js使用的,官方文档也是针对脚手架项目如何引入以及使用进行的说明。

2.示例效果

        这里是想抽丝剥茧出来,移植到博客里面的,脚手架什么的肯定不考虑,最好整理出来的示例就是一些html,js,css的才是lz所期望的。所以,老规矩,先看效果,后上源码。还是一如既往的单页。方便拿来即用。

展示效果:

源码:botui.html

<html><meta charset="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"><meta name="description" content="Examples of conversational UIs built using BotUI."><head><title>BotUI</title><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/botui/build/botui.min.css" /><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/botui/build/botui-theme-default.css" /></head><body><div class="central central-600"><div class="botui-app-container" id="botui-app"><bot-ui></bot-ui></div></div></body><script src="https://cdn.jsdelivr.net/vue/2.0.5/vue.min.js"></script><script src="https://cdn.jsdelivr.net/npm/botui/build/botui.js"></script><script>var botui = new BotUI("botui-app");botui.message.bot({delay: 200,content: "Hi, 欢迎你的来访"}).then(function () {return botui.message.bot({delay: 1000,content: "花有重开日 人无再少年"})}).then(function () {return botui.message.bot({delay: 1000,content: "记录生活 留住感动"})}).then(function () {return botui.action.button({delay: 1500,action: [{text: "听我介绍",value: "and"},{text: "结束介绍",value: "gg"}]})}).then(function (res) {if (res.value == "and") {other()}if (res.value == "gg") {return botui.message.bot({delay: 1500,content: " ![告辞](gaoci.png) "})}});var other = function () {botui.message.bot({delay: 1500,content: "你好,这里是流情 Liuqing"}).then(function () {return botui.message.bot({delay: 1500,content: "26岁,技术宅,喜欢捣鼓各种稀奇古怪的东西"})}).then(function () {return botui.message.bot({delay: 1500,content: "对有趣的世界和可能有趣的你感到好奇"})}).then(function () {return botui.message.bot({delay: 1500,content: "在学习过程中遇到了许多问题 也是只能自己探索解决 ..."})}).then(function () {return botui.message.bot({delay: 1500,content: "喜欢探索知识,热爱IT和国风文化,从事互联网产品/Web开发相关工作"})}).then(function () {return botui.message.bot({delay: 1500,content: "希望能与你在比特之海的繁星之下相见!"})}).then(function () {return botui.action.button({delay: 1500,action: [{text: "为什么叫 流情?",value: "next"}]})}).then(function (res) {return botui.message.bot({delay: 1500,content: "似水流,过无情——流情"})}).then(function (res) {return botui.message.bot({delay: 1500,content: "嗨,请叫我流情,或者流情无水也行"})}).then(function (res) {return botui.message.bot({delay: 1500,content: "记住是流情无水,不是流水无情"})}).then(function (res) {return botui.message.bot({delay: 1500,content: "当然跟这个没有关系哈哈"})}).then(function () {return botui.action.button({delay: 1500,action: [{text: "涉及的所有技术栈",value: "next"}]})}).then(function (res) {return botui.message.bot({delay: 1500,content: "主攻Vue全家桶"})}).then(function (res) {return botui.message.bot({delay: 1500,content: "作为前端,会一点点php很合理吧"})}).then(function (res) {return botui.message.bot({delay: 1500,content: "作为前端,会一点点Linux服务器也很合理吧"})}).then(function (res) {return botui.message.bot({delay: 1500,content: "作为前端,会一点PS也是情理之中吧哈哈"})}).then(function (res) {return botui.message.bot({delay: 1500,content: "欢迎您的来访 IP已记录"})}).then(function (res) {return botui.message.bot({delay: 1500,content: "本次会话结束..."})}).then(function () {return botui.message.bot({delay: 1500,content: "..."})});}</script><style>.central{background: url(botuibg.jpg) no-repeat center top;border-radius: 3rem;background-size: cover;overflow: hidden;box-shadow: 0 8px 12px #ababab87;border: 2px solid rgba(208, 206, 206, 0.4) !important;}.central-600 .botui-app-container {width: 100%;background: #35353563;}.central-600 .botui-container {border-radius: 3rem;background: transparent;}.central-600 .botui-actions-buttons-button {border-radius: 8px;background: #919191;font-family: 'Noto Serif SC', serif !important;font-weight: 400 !important;}.central-600 .botui-message-content {padding: 10px 16px;color: #999999;background-color: #ffffff;}.central-600 .botui-message-content.human {color: #fff;background-color: #919292;}.central-600 .botui-container {/* padding: 1rem; */box-sizing: border-box;}.central .botui-container{border-radius: 3rem;}</style>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/880212.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

记录linux环境下搭建本地MQTT服务器实现mqtt的ssl加密通讯

1、ubuntu安装mosquitto sudo apt-get update//安装服务端 sudo apt-get install mosquitto//安装客户端 sudo apt-get install mosquitto-clients 2、安装openssl 3、mqtts/tls加密传输 mosquitto原生支持了TLS加密&#xff0c;TLS&#xff08;传输层安全&#xff09;是SSL&…

怎么录制游戏视频?精选5款游戏录屏软件

对于热爱游戏的你来说&#xff0c;记录游戏中的精彩瞬间并分享给朋友或粉丝&#xff0c;无疑是一种享受。然而&#xff0c;在众多录屏软件中&#xff0c;如何选择最适合你的那一款&#xff1f;今天&#xff0c;我们就为大家精选了五款游戏录屏软件&#xff0c;需要的朋友快来选…

编译原理3——词法分析

3.1词法分析器的作用 词法分析是编译的第一阶段。词法分析器的主要任务是读入源程序的输入字符、将它们组成词素&#xff0c;生成并输出一个词法单元序列&#xff0c;每个词法单元对应于一个词素。 但在这个过程中&#xff0c;词法分析器还要和语法分析器进行交互。交互&…

Redis: 特点,优势,与其他产品的区别以及高并发原理

入门Redis概述 1 &#xff09;选择Redis是因为其高性能 因为 Redis 它数据存储的机制是存在内存中的&#xff0c;减少了传统关系数据库的磁盘IO它是单线程的保证了原子性&#xff0c;它还提供了事务&#xff0c;锁等相关的机制 2 &#xff09;Redis 环境安装配置 linux 或 d…

学习制作第一个LC带通滤波器的初步认识与总结

作为业余爱好&#xff0c;之前没有接触过射频方面的知识。 收音机&#xff0c;fm调频话筒等等想必是很多人都想制作的一个入门制作。但是这个里面的振荡&#xff0c;谐振&#xff0c;滤波&#xff0c;虽然在电子报上面频频看见&#xff0c;对于普通爱好者&#xff0c;如果没有…

在视频上绘制区域:使用Vue和JavaScript实现交互式画布

在数字时代&#xff0c;交互式媒体内容的创建和消费变得越来越普遍。特别是视频内容&#xff0c;它不仅提供了视觉信息&#xff0c;还允许用户与之互动&#xff0c;从而增强了用户体验。本文将介绍如何使用Vue.js框架和JavaScript创建一个交互式组件&#xff0c;该组件允许用户…

【Docker】Docker快速入门

Docker学习笔记 一、Docker概述 为什么会出现Docker? 安卓开发流程&#xff1a;apk(java开发的)发布到应用商店&#xff0c;用户安装apk即可使用。 后端开发流程&#xff1a; jar(java开发的)带上环境发布到Docker仓库&#xff0c;用户从Docker仓库拉取镜像并部署。 总结…

Android 如何实现搜索功能:本地搜索?数据模型如何设计?数据如何展示和保存?

目录 效果图为什么需要搜索功能如何设计搜索本地的功能&#xff0c;如何维护呢&#xff1f;总结 一、效果图 二、为什么需要搜索功能 找一个选项&#xff0c;需要花非常多的时间&#xff0c;并且每次都需要指导客户在哪里&#xff0c;现在只要让他们搜索一下就可以。这也是模…

低代码平台后端搭建-阶段完结

前言 最近又要开始为跳槽做准备了&#xff0c;发现还是写博客学的效率高点&#xff0c;在总结其他技术栈之前准备先把这个专题小完结一波。在这一篇中我又试着添加了一些实际项目中可能会用到的功能点&#xff0c;用来验证这个平台的扩展性&#xff0c;以及总结一些学过的知识。…

数据库数据恢复—Oracle报错“需要更多的恢复来保持一致性”的数据恢复案例

Oracle数据库故障&检测&#xff1a; 打开oracle数据库报错“system01.dbf需要更多的恢复来保持一致性&#xff0c;数据库无法打开”。 数据库没有备份&#xff0c;无法通过备份去恢复数据库。用户方联系北亚企安数据恢复中心并提供Oracle_Home目录中的所有文件&#xff0c;…

大小端字节序 和 内存高低地址顺序

目录 1. 大小端字节序 1.1 什么是大小端字节序&#xff1f; 1.2 为什么有大小端字节序? 1.3 习题&#xff1a;用程序结果判断大端小端 2. 各种易混淆的高低地址顺序 2.1 监视窗口的地址表示【计算机标准展示方式】 2.2 横向地址表示 2.3 一个字节 与 多个字节 的地址…

C语言 | Leetcode C语言题解之第416题分割等和子集

题目&#xff1a; 题解&#xff1a; bool canPartition(int* nums, int numsSize) {if (numsSize < 2) {return false;}int sum 0, maxNum 0;for (int i 0; i < numsSize; i) {sum nums[i];maxNum fmax(maxNum, nums[i]);}if (sum & 1) {return false;}int tar…

《程序猿之设计模式实战 · 适配器模式》

&#x1f4e2; 大家好&#xff0c;我是 【战神刘玉栋】&#xff0c;有10多年的研发经验&#xff0c;致力于前后端技术栈的知识沉淀和传播。 &#x1f497; &#x1f33b; CSDN入驻不久&#xff0c;希望大家多多支持&#xff0c;后续会继续提升文章质量&#xff0c;绝不滥竽充数…

springboot文件上传+拦截器

springboot文件上传拦截器 文章目录 springboot文件上传拦截器1.静态资源访问静态目录&#xff1a; 2.文件上传文件上传配置文件书写文件上传代码 3.拦截器1.初始化拦截器2.初始化配置文件 1.静态资源访问 静态目录&#xff1a; 这里的static就是spring boot默认存放静态资源的…

ZYNQ FPGA自学笔记~操作PLL

一 时钟缓冲器、管理和路由 垂直时钟中心&#xff08;clock backbone&#xff09;将设备分为相邻的左侧和右侧区域&#xff0c;水平中心线将设备分为顶部和底部两侧。clock backbone中的资源镜像到水平相邻区域的两侧&#xff0c;从而将某些时钟资源扩展到水平相邻区域。BUFG不…

考研数据结构——C语言实现小顶堆

数组初始化&#xff1a; 首先&#xff0c;我们有一个整数数组arr&#xff0c;里面包含了一系列需要排序的数字。数组的长度n是通过对数组arr的总字节大小除以单个元素的字节大小得到的。 小顶堆调整函数&#xff1a; adjustHeapMin函数的作用是将数组中的元素从某个节点向下调整…

[001-02-001].第2节:java开发环境搭建

4.1.书籍推荐&#xff1a; 4.2.人机交互方式 1.图形化界面(Graphical User Interface GUI)这种方式简单直观&#xff0c;使用者易于接受&#xff0c;容易上手操作2.命令行方式(Command Line Interface CLI)&#xff1a;需要有一个控制台&#xff0c;输入特定的指令&#xff0c…

[数据结构]无头单向非循环链表的实现与应用

文章目录 一、引言二、线性表的基本概念1、线性表是什么2、链表与顺序表的区别3、无头单向非循环链表 三、无头单向非循环链表的实现1、结构体定义2、初始化3、销毁4、显示5、增删查改 四、分析无头单向非循环链表1、存储方式2、优点3、缺点 五、总结1、练习题2、源代码 一、引…

Frontiers出版社系列SCISSCI合集

【SciencePub学术】本期&#xff0c;小编根据WOS数据库&#xff0c;整理了一下Frontiers出版社系列的SCI&SSCI合集&#xff0c;以供各位学者投稿参考&#xff01; 来源&#xff1a;WOS数据库 Frontiers系列期刊中&#xff0c;Frontiers in Immunology以其5.7分的影响因子位…

第十四届蓝桥杯嵌入式国赛

一. 前言 本篇博客主要讲述十四届蓝桥杯嵌入式的国赛题目&#xff0c;包括STM32CubeMx的相关配置以及相关功能实现代码以及我在做题过程中所遇到的一些问题和总结收获。如果有兴趣的伙伴还可以去做做其它届的真题&#xff0c;可去 蓝桥云课 上搜索历届真题即可。 二. 题目概述 …