これは、Python プログラミング言語の RiveScript インタープリターです。 RiveScript はチャタボット用のスクリプト言語であり、ボットのインテリジェンスを構築するためのトリガー/応答のペアを簡単に作成できます。
歴史的に、このライブラリは、Python 2 がサポート終了となる 2020 年 1 月 1 日まで、Python 2 と Python 3 の両方をサポートしていました。
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 の一般的なデザイン パターンやヒントとコツについては、RiveScript コミュニティ Wikiもチェックしてください。
このモジュールは 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 と Python 3 のライブラリとして使用する簡単な例を提供します。
RiveScript は Unicode をサポートしていますが、デフォルトでは有効になっていません。これを有効にするには、コンストラクターのutf8
オプションにTrue
値を渡すか、スタンドアロン対話モードに--utf8
引数を使用します。
UTF-8 モードでは、バックスラッシュなどの特定のメタ文字や/[.,!?;:]/
などの一般的な句読点を除き、ユーザーのメッセージ内のほとんどの文字がそのまま残ります。
句読点正規表現をオーバーライドする場合は、初期化後にボット オブジェクトのunicode_punctuation
属性を割り当てることで、新しい句読点正規表現を提供できます。例:
import 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 エンコードされたデータ構造を標準入力に出力します。形式は次のようになります。
{ "ユーザー名": "ローカルユーザー", "メッセージ": "こんにちはボット!", "vars": { "名前": "エイデン" } }
これを送信した後、 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 の公式 Web サイト、http://www.rivescript.com/