这是 Python 编程语言的 RiveScript 解释器。 RiveScript 是聊天机器人的脚本语言,可以轻松编写触发器/响应对来构建机器人的智能。
从历史上看,该库同时支持 Python 2 和 Python 3,直到 Python 2 于 2020 年 1 月 1 日进入生命周期终止状态。
支持 Python 2 的最终版本是v1.14.9,如果您需要支持 Python2 环境,您仍然可以从 PyPI 安装。展望未来,RiveScript 版本将针对 Python 3 语言的现代受支持版本。今天,这意味着 Python 3.6 及更高版本。
# Python2 最后支持的 RiveScript 版本是 1.14.9pip install rivescript==1.14.9
模块文档位于 http://rivescript.readthedocs.org/
另请查看RiveScript 社区 Wiki ,了解 RiveScript 的常见设计模式以及提示和技巧。
该模块在 PyPI 上可用,可以通过 pip 安装:
pip install rivescript
要手动安装,请下载或克隆 git 存储库并运行python setup.py install
GitHub 上该项目的 eg/ 目录中提供了示例,展示了如何以多种方式(例如通过 Twilio SMS API)与 RiveScript 机器人交互,以及其他代码片段和有用的技巧。
rivescript
模块可以作为独立的 Python 脚本执行,也可以包含在其他 Python 代码中。直接执行时,它会启动交互式聊天会话:
python rivescript ./eg/brain
如果将 RiveScript 作为脚本运行不方便(例如,当它作为系统模块安装时),您可以使用shell.py
脚本作为别名:
python shell.py eg/brain
当作为库使用时,概要如下:
from rivescript import RiveScriptbot = RiveScript()bot.load_directory("./eg/brain")bot.sort_replies()while True:msg = raw_input('You> ')if msg == '/quit':quit()reply = bot.reply("localuser", msg)print 'Bot>', 回复
脚本example.py
和example3.py
分别提供了使用 RiveScript 作为 Python 2 和 3 库的简单示例。
RiveScript 支持 Unicode,但默认情况下不启用。通过在构造函数中为utf8
选项传递True
值或使用独立交互模式的--utf8
参数来启用它。
在 UTF-8 模式下,用户消息中的大多数字符都保持不变,但某些元字符(例如反斜杠)和常见标点字符(例如/[.,!?;:]/
除外。
如果要覆盖标点符号正则表达式,可以通过在初始化后分配 bot 对象的unicode_punctuation
属性来提供一个新的标点符号正则表达式。例子:
导入 rebot = RiveScript(utf8=True)bot.unicode_punctuation = re.compile(r'[.,!?;:]')
无论 UTF-8 模式是否开启,提供给机器人的所有输入消息都会转换(如果需要)为 Python 的unicode
数据类型。因此,虽然确保向机器人提供 Unicode 字符串是一种很好的做法,但如果您忘记了,该库也会为您提供帮助。
rivescript
包在独立运行时支持“JSON 模式”,您可以在其中使用 JSON 与机器人进行通信。这对于想要使用 RiveScript 但没有其母语解释器的第三方程序非常有用。
只需运行它: python rivescript --json /path/to/brain
将 JSON 编码的数据结构打印到标准输入中。格式应如下所示:
{ "username": "localuser", "message": "Hello bot!", "vars": { "name": "Aiden" } }
发送此消息后,您可以发送EOF
信号,机器人将使用 JSON 响应进行响应,然后退出。或者,您可以通过在输入后单独发送字符串__END__
来保持会话打开。机器人在响应时也会执行相同的操作,因此您可以重复使用同一管道进行多次交互。
机器人的响应格式如下:
{ "status": "ok", "reply": "你好,人类!", "vars": { "name": "Aiden" } }
如果成功则status
为ok
,如果发生错误则状态为error
。 reply
是机器人的响应(或出错时的错误消息)。
诺亚·佩德布里奇
阿拉什·赛迪
达尼洛·巴根
藤诚
洪子亭
朱利安·西克斯
巴勃罗
丁佩轩
The MIT License (MIT) Copyright (c) 2020 Noah Petherbridge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
RiveScript 官方网站,http://www.rivescript.com/