Это интерпретатор RiveScript для языка программирования Python. RiveScript — это язык сценариев для чат-ботов, позволяющий легко писать пары триггер/ответ для повышения интеллекта бота.
Исторически сложилось так, что эта библиотека поддерживала как Python 2, так и Python 3 до того дня, когда Python 2 перешел в статус прекращения поддержки, что произошло 1 января 2020 года.
Последней версией с поддержкой Python 2 является v1.14.9 , которую вы все равно можете установить из PyPI, если вам нужна поддержка среды Python2. В дальнейшем выпуски RiveScript будут ориентированы на современные поддерживаемые версии языка Python 3. Сегодня это означает Python 3.6 и новее.
# Последняя поддерживаемая версия RiveScript для Python2 — 1.14.9pip install rivescript==1.14.9
Документация модуля доступна по адресу http://rivescript.readthedocs.org/.
Также посетите вики-сайт сообщества RiveScript , где вы найдете распространенные шаблоны проектирования, а также советы и рекомендации по RiveScript.
Этот модуль доступен на PyPI и может быть установлен через pip:
pip install rivescript
Чтобы установить вручную, загрузите или клонируйте репозиторий git и запустите python setup.py install
В каталоге eg/ этого проекта на GitHub доступны примеры, которые показывают, как взаимодействовать с ботом RiveScript различными способами, например, через Twilio SMS API, а также другие фрагменты кода и полезные приемы.
Модуль rivescript
может быть выполнен как отдельный скрипт Python или включен в другой код Python. При прямом запуске он запускает сеанс интерактивного чата:
python rivescript ./eg/brain
В случае, если запускать RiveScript как скрипт неудобно (например, когда он установлен как системный модуль), вы можете использовать скрипт shell.py
в качестве псевдонима:
python shell.py eg/brain
При использовании в качестве библиотеки краткий обзор выглядит следующим образом:
из импорта rivescript 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)распечатать 'Бот>', ответить
Скрипты example.py
и example3.py
предоставляют простые примеры использования RiveScript в качестве библиотеки для Python 2 и 3 соответственно.
RiveScript поддерживает Unicode, но по умолчанию он не включен. Включите его, передав значение True
для параметра utf8
в конструкторе или используя аргумент --utf8
для автономного интерактивного режима.
В режиме UTF-8 большинство символов в сообщении пользователя остаются нетронутыми, за исключением некоторых метасимволов, таких как обратная косая черта и общие символы пунктуации, такие как /[.,!?;:]/
.
Если вы хотите переопределить регулярное выражение пунктуации, вы можете предоставить новое, назначив атрибут unicode_punctuation
объекта бота после инициализации. Пример:
import rebot = RiveScript(utf8=True)bot.unicode_punctuation = re.compile(r'[.,!?;:]')
Независимо от того, включен ли режим UTF-8, все входные сообщения, передаваемые боту, преобразуются (при необходимости) в тип данных unicode
Python. Таким образом, хотя хорошей практикой является предоставление боту строк Unicode, библиотека поможет вам, если вы забудете.
Пакет rivescript
при автономном запуске поддерживает «режим JSON», в котором вы общаетесь с ботом с помощью JSON. Это полезно для сторонних программ, которые хотят использовать RiveScript, но не имеют интерпретатора на своем родном языке.
Просто запустите его следующим образом: python rivescript --json /path/to/brain
Распечатайте структуру данных в кодировке JSON на стандартный ввод. Формат должен выглядеть следующим образом:
{ "username": "localuser", "message": "Привет, бот!", "vars": { "name": "Эйден" } }
После отправки вы можете отправить сигнал EOF
, и бот ответит ответом JSON, а затем выйдет. Или вы можете оставить сеанс открытым, отправив строку __END__
в отдельной строке после ввода. Бот будет делать то же самое, когда ответит, поэтому вы можете повторно использовать один и тот же канал для нескольких взаимодействий.
Ответ бота будет отформатирован следующим образом:
{ "status": "ok", "reply": "Привет, человек!", "vars": { "name": "Эйден" } }
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/.