Skip to content

ChatScript ChatScript介绍

Xiewei Zhong edited this page Dec 7, 2019 · 1 revision

ChatScript - ChatScript介绍

详细内容见:

https://github.com/ChatScript/ChatScript/blob/master/WIKI/OVERVIEWS-AND-TUTORIALS/What-is-ChatScript.md。

https://github.com/ChatScript/ChatScript/blob/master/README.md

此处对能够吸引你来了解一下ChatScript的相关内容做一些摘要。

ChatScript的现实观

我认识一个家伙,他在商用和教育上用的不同的商业客户辅助代理软件系统研发上有十几年的工作经验了,这类系统就像是一种聊天机器人。他厌倦了这个行业,当ChatScript出现的时候,他已经退出了这个行业。现在,他已经改用ChatScript,并且重新振作起来了。它的性能和能力超过了他熟悉的所有系统,他了解所有的主要玩家。

OSU的虚拟病人项目使用了AIML chatbot技术。但是由于他们有成千上万的规则,正在扼杀他们的服务器的性能,导致项目不可维护,进入了死亡阶段。每增加一条新规则都会破坏其他地方的一些东西。他们切换到ChatScript并重写了他们的系统。这需要不到2000条规则,他们认为最终的系统不会超过5000条。在不破坏规则的情况下添加新规则是很容易的,系统会自动告诉它们何时会产生冲突。他们的服务器完全没有负载,可以同时运行多个不同的病人模拟。

作为一个高质量聊天脚本机器人的例子,花了5个人月的时间写了16000行脚本为iOS/Android创建了的Tom Love Angela。它在苹果AppStore付费娱乐类的前十名中保持了6个月。在发布18个月后,它仍然在iPad的前25个应用中,尽管扩展到26000行的Talking Angela也发布了。

ChatScript架构目标

压缩创作量

因为所有的内容都是脚本化的,因此需要进行手动创作。但是,相比较而言,ChatScript是非常清晰,非常简洁的。我们的聊天机器人有12K到16K的聊天脚本规则,比聊天机器人有数十万条规则的性能更好。他们花了好几年才写出他们的作品;我们花了好几个月。

速度

运行我们最先进的chatbot的低级服务器可以在几毫秒内生成响应;同时处理数千个用户。你可以同时在一台机器的每个核心上运行ChatScript,为同一个端口提供服务器,具有近乎线性的伸缩性,这样一台8核的机器可以处理超过10K的同时对话。

至于英语句子的语法分析,斯坦福大学的语法分析器是这类事情的金标准。但它跑得比我们慢得多。斯坦福的在线服务器以每秒28个tokens的速度进行解析(句点和逗号也是tokens)。解析一个严肃的文档需要很长时间。在我的基本笔记本电脑上,ChatScript可以每秒扫描和解析30000个标记的文档。我们将用户输入和chatbot输出解析为几毫秒响应时间的一部分,仅仅是为了自动处理聊天的代词解析。

内存

我们最大的聊天机器人,包括聊天脚本、解析等,运行在18Mb内存的iPhone上。不管输入的句子是5个字还是250个字。对于斯坦福的解析器,你不能把它放在电话上。20个单词的句子需要50MB。50个单词的句子需要125MB。他们的FAQ说:“我们已经解析了234个单词的句子,但是你需要大量的内存和耐心。”

易维护

ChatScript能用来做什么?

  • 控制对话。进行对话管理。
  • 识别情感。
  • 对话追踪。能够记录每个用户的对话。
  • 多个bots。可以同时支持多个bot。要么所有的机器人都独立行动,要么所有的机器人都协同工作。
  • 计划。除了对话和化身手势控制之外,你还可以编写如何做事的脚本,而ChatScript有内置的计划者代码,可以将它们结合起来实现一个目标。你可以向你的机器人要一个火腿三明治,它可以决定一个进入厨房并制作一个三明治的计划,包括通过关闭或打开的门,如果门是锁着的,它会回来取钥匙。
  • 大数据访问。ChatScript可以与开源Postgres数据库交互。
  • 文档阅读。
  • 与其他数据的连接。
  • 改进的搜索。ChatScript支持定义和操作单词集合上的模式匹配。这是规则如此简洁的一部分。但这也意味着它可以以不寻常的方式分离信息。

开始

安装

项目提供了可执行文件,直接克隆项目即可,如下:

git clone https://github.com/ChatScript/ChatScript

本地运行(用于开发测试)

从你的ChatScript目录下,跳转到BINARIES目录:

cd BINARIES

运行ChatScript引擎:

Windows: ChatScript

Linux: ./LinuxChatScript64 local

MacOS: ./MacChatScript local

服务器运行(用于生产环境)

Windows:ChatScript port=1024

Linux: ./LinuxChatScript64

MacOS: ./MacChatScript

运行测试的客户端

windows: ChatScript client=localhost:1024

Linux: ./LinuxChatScript64 client=localhost:1024

MacOS: ./MacChatScript client=localhost:1024

构建bot

:build Harry

Clone this wiki locally