公众号后台的自动回复满了,我想搭建一个自动回复的网站。找了很久终于找到 Github/kompasim 的 chatbot 项目。虽然是2017年的项目,但仍然可用。博主服务器环境:Nginx 1.18.0 + PHP7.3。
Demo:https://share.jishusongshu.com/
以下有部分摘自Github:https://github.com/kompasim/chatbot
0. 提醒
该聊天机器人是参考AIML 2.5和而写成的,这聊天机器人实现的aiml标签和标准的aiml标签由一定的差距,所以你从网上下载的aiml语料库可能没法正常工作。适用于UTF-8编码的,单词后缀根据不同的时态而改变的那些语言。感兴趣的朋友可以自己研究学习一下。
1. 介绍
这是一个用PHP写的aiml解析器,目前在PHP5.4环境上能正常运行。
2. 数据库配置
本程序用了MySQL数据库,你需要把
chatbot.sql
文件倒入到你的数据库,然后在chatbot/Config.php
文件里修改相关数据库配置变量.
4. aiml语料库资源
你可以直接编辑
aiml/chatbot.aiml
文件或者创建一个新的aiml
文件然后在aiml/chatbot.aiml
文件用include
标签引入它。
5. 关于aiml文件
aiml
必须要放在aiml
目录内.
chatbot.aiml
是入口文件 ,它里面的aiml
标签可以包含多个category
标签 , 一个default
标签和多个include
标签。
被你添加的其它aiml
文件在根aiml
标签里必须要包含一个topic
标签 , 这个topic
标签可以包含多个category
标签和一个default
标签 (这里的其他aiml
文件不能写include
标签,include
标签只能出现在chatbot.aiml
文件里)。
AIML:人工智能标记语言(Artificial Intelligence Markup Language)
注意事项:为避免aiml文件被下载,我们添加防盗链
为了让机器人回复的url内容自动添加超链接,我们可以修改index.php内的js函数。
6、优化项目
原项目回复内容只能是文本,为了让机器人回复的url内容自动添加超链接,我们可以修改index.php内的js函数。
function AddText(user, message) {
console.log(user);
console.log(message);
var div = $('<div>');
var name = $('<labe>').addClass('name');
var reg=/(http:\/\/|https:\/\/)((\w|=|\?|\.|\/|&|-)+)/g;
if(message.indexOf('http') != -1){
var url = message.match(reg);
console.log(url);
var text=$('<span>');
var a = $('<a>').addClass('message').attr('href',url).attr('target','_blank');
a.text(url);
text.append(a);
text.append(message.replace(reg,''));
name.text(user + ':');
}
else{
var text = $('<span>').addClass('message');
name.text(user + ':');
text.text('\t' + message);
}
div.append(name);
div.append(text);
$('.chatBox').append(div);
$('.chatBox').scrollTop($(".chatBox").scrollTop() + 100);
}
参考资料:松子分享-url网址文本解析成超链接
Use this card to join us and participate in a pleasant discussion together .
Welcome to JISHUSONGSHU Group,wish you a nice day .