Este é um interpretador RiveScript para a linguagem de programação Python. RiveScript é uma linguagem de script para chatterbots, facilitando a escrita de pares de gatilho/resposta para desenvolver a inteligência de um bot.
Historicamente, esta biblioteca suportava Python 2 e Python 3 até o dia em que Python 2 entrou no status de fim de vida, o que aconteceu em 1º de janeiro de 2020.
A versão final com suporte para Python 2 é a v1.14.9 , que você ainda pode instalar a partir do PyPI se precisar oferecer suporte a um ambiente Python2. No futuro, os lançamentos do RiveScript terão como alvo versões modernas e suportadas da linguagem Python 3. Hoje, isso significa Python 3.6 e mais recente.
# A última versão suportada do Python2 do RiveScript é 1.14.9pip install rivescript==1.14.9
A documentação do módulo está disponível em http://rivescript.readthedocs.org/
Verifique também o Wiki da comunidade RiveScript para padrões de design comuns e dicas e truques para RiveScript.
Este módulo está disponível no PyPI e pode ser instalado via pip:
pip install rivescript
Para instalar manualmente, baixe ou clone o repositório git e execute python setup.py install
Há exemplos disponíveis no diretório eg/ deste projeto no GitHub que mostram como interagir com um bot RiveScript de diversas maneiras – como por meio da API Twilio SMS – e outros trechos de código e truques úteis.
O módulo rivescript
pode ser executado como um script Python independente ou incluído em outro código Python. Quando executado diretamente, inicia uma sessão de chat interativa:
python rivescript ./eg/brain
Caso executar o RiveScript como um script seja inconveniente (por exemplo, quando ele é instalado como um módulo do sistema), você pode usar o script shell.py
como um alias:
python shell.py eg/brain
Quando usada como biblioteca, a sinopse é a seguinte:
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>', responder
Os scripts example.py
e example3.py
fornecem exemplos simples de uso do RiveScript como biblioteca para Python 2 e 3, respectivamente.
RiveScript oferece suporte a Unicode, mas não está habilitado por padrão. Habilite-o passando um valor True
para a opção utf8
no construtor ou usando o argumento --utf8
para o modo interativo independente.
No modo UTF-8, a maioria dos caracteres na mensagem de um usuário permanece intacta, exceto alguns metacaracteres, como barras invertidas e caracteres de pontuação comuns, como /[.,!?;:]/
.
Se quiser substituir o regexp de pontuação, você pode fornecer um novo atribuindo o atributo unicode_punctuation
do objeto bot após a inicialização. Exemplo:
importar rebot = RiveScript(utf8=True)bot.unicode_punctuation = re.compile(r'[.,!?;:]')
Independentemente de o modo UTF-8 estar ativado, todas as mensagens de entrada fornecidas ao bot são convertidas (se necessário) para o tipo de dados unicode
do Python. Portanto, embora seja uma boa prática garantir que você está fornecendo strings Unicode ao bot, a biblioteca o ajudará caso você esqueça.
O pacote rivescript
, quando executado de forma independente, suporta o "Modo JSON", onde você se comunica com o bot usando JSON. Isso é útil para programas de terceiros que desejam usar o RiveScript, mas não possuem um intérprete em seu idioma nativo.
Basta executá-lo como: python rivescript --json /path/to/brain
Imprima uma estrutura de dados codificada em JSON na entrada padrão. O formato deve ficar assim:
{ "nome de usuário": "localuser", "message": "Olá bot!", "vars": { "nome": "Aiden" } }
Depois de enviar isso, você pode enviar um sinal EOF
e o bot responderá com uma resposta JSON e então sairá. Ou você pode manter a sessão aberta enviando a string __END__
em uma linha sozinha após sua entrada. O bot fará o mesmo quando responder, para que você possa reutilizar o mesmo canal para múltiplas interações.
A resposta do bot será formatada assim:
{ "status": "ok", "resposta": "Olá, humano!", "vars": { "nome": "Aiden" } }
O status
será ok
em caso de sucesso ou error
se houver um erro. A reply
é a resposta do bot (ou uma mensagem de erro em caso de erro).
Noah Peterbridge
Arash Saidi
Danilo Bargen
FujiMakoto
Hung Tu Dinh
Julien Syx
Paulo
Peixuan (Shawn) Ding
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.
O site oficial do RiveScript, http://www.rivescript.com/