這是 Python 程式語言的 RiveScript 解譯器。 RiveScript 是聊天機器人的腳本語言,可以輕鬆編寫觸發器/響應對來建立機器人的智慧。
從歷史上看,該程式庫同時支援 Python 2 和 Python 3,直到 Python 2 於 2020 年 1 月 1 日進入生命週期終止狀態。
支援 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 社群 Wiki ,以了解 RiveScript 的常見設計模式以及提示和技巧。
該模組在 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 和 3 函式庫的簡單範例。
RiveScript 支援 Unicode,但預設不啟用。透過在建構函式中為utf8
選項傳遞True
值或使用獨立互動模式的--utf8
參數來啟用它。
在 UTF-8 模式下,使用者訊息中的大多數字元都保持不變,但某些元字元(例如反斜線)和常見標點字元(例如/[.,!?;:]/
除外。
如果要覆寫標點符號正規表示式,可以透過在初始化後指派 bot 物件的unicode_punctuation
屬性來提供一個新的標點符號正規表示式。例子:
導入 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 編碼的資料結構列印到標準輸入中。格式應如下所示:
{ "username": "localuser", "message": "Hello bot!", "vars": { "name": "Aiden" } }
發送此訊息後,您可以發送EOF
訊號,機器人將使用 JSON 回應進行回應,然後退出。或者,您可以透過輸入後單獨發送字串__END__
來保持會話開啟。機器人在回應時也會執行相同的操作,因此您可以重複使用相同管道進行多次互動。
機器人的回應格式如下:
{ "status": "ok", "reply": "你好,人類!", "vars": { "name": "Aiden" } }
如果成功則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/