Il s'agit d'un interpréteur RiveScript pour le langage de programmation Python. RiveScript est un langage de script pour les chaterbots, facilitant l'écriture de paires déclencheur/réponse pour développer l'intelligence d'un bot.
Historiquement, cette bibliothèque prenait en charge à la fois Python 2 et Python 3 jusqu'au jour où Python 2 est entré en fin de vie, le 1er janvier 2020.
La version finale prenant en charge Python 2 est la v1.14.9 que vous pouvez toujours installer à partir de PyPI si vous devez prendre en charge un environnement Python2. À l’avenir, les versions de RiveScript cibleront les versions modernes et prises en charge du langage Python 3. Aujourd'hui, cela signifie Python 3.6 et versions ultérieures.
# Python2, la dernière version prise en charge de RiveScript est 1.14.9pip install rivescript==1.14.9
La documentation du module est disponible sur http://rivescript.readthedocs.org/
Consultez également le wiki de la communauté RiveScript pour connaître les modèles de conception courants ainsi que les trucs et astuces pour RiveScript.
Ce module est disponible sur PyPI et peut être installé via pip :
pip install rivescript
Pour installer manuellement, téléchargez ou clonez le référentiel git et exécutez python setup.py install
Il existe des exemples disponibles dans le répertoire eg/ de ce projet sur GitHub qui montrent comment s'interfacer avec un bot RiveScript de diverses manières, par exemple via l'API SMS Twilio, ainsi que d'autres extraits de code et astuces utiles.
Le module rivescript
peut être exécuté en tant que script Python autonome ou inclus dans un autre code Python. Lorsqu'il est exécuté directement, il lance une session de chat interactive :
python rivescript ./eg/brain
Dans le cas où l'exécution de RiveScript en tant que script n'est pas pratique (par exemple, lorsqu'il est installé en tant que module système), vous pouvez utiliser le script shell.py
comme alias :
python shell.py eg/brain
Lorsqu'il est utilisé comme bibliothèque, le synopsis est le suivant :
depuis 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)imprimer 'Bot>', répondre
Les scripts example.py
et example3.py
fournissent des exemples simples d'utilisation de RiveScript comme bibliothèque pour Python 2 et 3, respectivement.
RiveScript prend en charge Unicode mais il n'est pas activé par défaut. Activez-le en passant une valeur True
pour l'option utf8
dans le constructeur, ou en utilisant l'argument --utf8
pour le mode interactif autonome.
En mode UTF-8, la plupart des caractères du message d'un utilisateur restent intacts, à l'exception de certains métacaractères comme les barres obliques inverses et les caractères de ponctuation courants comme /[.,!?;:]/
.
Si vous souhaitez remplacer l'expression rationnelle de ponctuation, vous pouvez en fournir une nouvelle en attribuant l'attribut unicode_punctuation
de l'objet bot après l'initialisation. Exemple:
importer rebot = RiveScript(utf8=True)bot.unicode_uccion = re.compile(r'[.,!?;:]')
Que le mode UTF-8 soit activé ou non, tous les messages d'entrée transmis au bot sont convertis (si nécessaire) en type de données unicode
de Python. Ainsi, même s'il est recommandé de vous assurer que vous fournissez des chaînes Unicode au bot, la bibliothèque vous couvrira si vous oubliez.
Le package rivescript
, lorsqu'il est exécuté de manière autonome, prend en charge le « mode JSON », dans lequel vous communiquez avec le bot en utilisant JSON. Ceci est utile pour les programmes tiers qui souhaitent utiliser RiveScript mais ne disposent pas d'interprète dans leur langue maternelle.
Exécutez-le simplement comme : python rivescript --json /path/to/brain
Imprimez une structure de données codée JSON dans l'entrée standard. Le format devrait ressembler à ceci :
{ "username": "localuser", "message": "Bonjour bot!", "vars": { "name": "Aiden" } }
Après avoir envoyé ceci, vous pouvez envoyer un signal EOF
et le bot répondra avec une réponse JSON puis quittera. Ou bien, vous pouvez garder la session ouverte en envoyant la chaîne __END__
sur une ligne seule après votre saisie. Le bot fera de même lorsqu’il répondra, vous pourrez donc réutiliser le même canal pour plusieurs interactions.
La réponse du bot sera formatée comme suit :
{ "status": "ok", "reply": "Bonjour, humain!", "vars": { "name": "Aiden" } }
Le status
sera ok
en cas de succès, ou error
s'il y a eu une erreur. La reply
est la réponse du bot (ou un message d'erreur en cas d'erreur).
Noah Petherbridge
Arash Saïdi
Danilo Bargen
FujiMakoto
Hung Tu Dinh
Julien Syx
Paul
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.
Le site officiel de RiveScript, http://www.rivescript.com/