Este es un intérprete de RiveScript para el lenguaje de programación Python. RiveScript es un lenguaje de programación para chatterbots, que facilita la escritura de pares de activación/respuesta para desarrollar la inteligencia de un bot.
Históricamente, esta biblioteca admitía tanto Python 2 como Python 3 hasta el día en que Python 2 entró en estado de fin de vida útil, lo que ocurrió el 1 de enero de 2020.
La versión final compatible con Python 2 es la v1.14.9 , que aún puede instalar desde PyPI si necesita admitir un entorno Python2. En el futuro, las versiones de RiveScript se centrarán en las versiones modernas y compatibles del lenguaje Python 3. Hoy, esto significa Python 3.6 y versiones posteriores.
# La última versión compatible con Python2 de RiveScript es 1.14.9pip install rivescript==1.14.9
La documentación del módulo está disponible en http://rivescript.readthedocs.org/
Consulte también el Wiki de la comunidad RiveScript para conocer patrones de diseño comunes, consejos y trucos para RiveScript.
Este módulo está disponible en PyPI y se puede instalar mediante pip:
pip install rivescript
Para instalar manualmente, descargue o clone el repositorio de git y ejecute python setup.py install
Hay ejemplos disponibles en el directorio eg/ de este proyecto en GitHub que muestran cómo interactuar con un bot RiveScript de diversas maneras, como a través de la API Twilio SMS, y otros fragmentos de código y trucos útiles.
El módulo rivescript
puede ejecutarse como un script Python independiente o incluirse en otro código Python. Cuando se ejecuta directamente, inicia una sesión de chat interactiva:
python rivescript ./eg/brain
En caso de que ejecutar RiveScript como script sea inconveniente (por ejemplo, cuando se instala como un módulo del sistema), puede usar el script shell.py
como alias:
python shell.py eg/brain
Cuando se utiliza como biblioteca, la sinopsis es la siguiente:
desde rivescript import RiveScriptbot = RiveScript()bot.load_directory("./eg/brain")bot.sort_replies() while True:msg = raw_input('You> ')if msg == '/quit':quit()responder = bot.reply("localuser", msg)imprimir 'Bot>', responder
Los scripts example.py
y example3.py
proporcionan ejemplos sencillos para usar RiveScript como biblioteca para Python 2 y 3, respectivamente.
RiveScript admite Unicode pero no está habilitado de forma predeterminada. Habilítelo pasando un valor True
para la opción utf8
en el constructor o usando el argumento --utf8
para el modo interactivo independiente.
En el modo UTF-8, la mayoría de los caracteres del mensaje de un usuario se dejan intactos, excepto ciertos metacaracteres como barras invertidas y caracteres de puntuación comunes como /[.,!?;:]/
.
Si desea anular la expresión regular de puntuación, puede proporcionar una nueva asignando el atributo unicode_punctuation
del objeto bot después de la inicialización. Ejemplo:
importar rebot = RiveScript(utf8=True)bot.unicode_punctuation = re.compile(r'[.,!?;:]')
Independientemente de si el modo UTF-8 está activado, todos los mensajes de entrada proporcionados al bot se convierten (si es necesario) al tipo de datos unicode
de Python. Entonces, si bien es una buena práctica asegurarse de proporcionar cadenas Unicode al bot, la biblioteca lo cubrirá si lo olvida.
El paquete rivescript
, cuando se ejecuta de forma independiente, admite el "Modo JSON", donde te comunicas con el bot mediante JSON. Esto es útil para programas de terceros que desean utilizar RiveScript pero no tienen un intérprete en su idioma nativo.
Simplemente ejecútelo como: python rivescript --json /path/to/brain
Imprima una estructura de datos codificada en JSON en la entrada estándar. El formato debería verse así:
{ "nombre de usuario": "usuario local", "mensaje": "¡Hola robot!", "vars": { "nombre": "Aiden" } }
Después de enviar esto, puede enviar una señal EOF
y el bot responderá con una respuesta JSON y luego saldrá. O puede mantener la sesión abierta enviando la cadena __END__
en una línea sola después de su entrada. El bot hará lo mismo cuando responda, por lo que puedes reutilizar la misma tubería para múltiples interacciones.
La respuesta del bot tendrá el formato siguiente:
{ "status": "ok", "reply": "¡Hola, humano!", "vars": { "name": "Aiden" } }
El status
será ok
en caso de éxito o error
si hubo un error. La reply
es la respuesta del bot (o un mensaje de error en caso de error).
Noah Petherbridge
Arash Saidi
Danilo Bargen
FujiMakoto
Hung Tu Dinh
Julien Six
Pablo
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.
El sitio web oficial de RiveScript, http://www.rivescript.com/