本人運行環境為Python 3.5.2;
首先你需要導入chatterbot 的包,如果沒有你先需要下載 使用命令 pip install chatterbot
1 # -*- coding: utf-8 -*- 2 from chatterbot import ChatBot 3 4 bot = ChatBot( 5 'Norman', 6 storage_adapter='chatterbot.storage.SQLStorageAdapter', 7 input_adapter='chatterbot.input.TerminalAdapter', 8 output_adapter='chatterbot.output.TerminalAdapter', 9 logic_adapters=[ 10 'chatterbot.logic.MathematicalEvaluation', 11 'chatterbot.logic.TimeLogicAdapter' 12 ], 13 database='./database.sqlite3' 14 ) 15 16 while True: 17 try: 18 bot_input = bot.get_response(None) 19 20 except(KeyboardInterrupt, EOFError, SystemExit): 21 break
下面是簡單測試的結果不過現在的Norman還是傻傻的.
E:\Pythons\python.exe F:/PhyWorkSpeace/bot/botTest.py hi hi 你好 The current time is 04:08 PM ^D Process finished with exit code 0
注意在的第一次執行時,會自動生成庫.是系統帶的簡單的庫.
storage_adapter='chatterbot.storage.SQLStorageAdapter',這是儲存是儲存適配器 input_adapter='chatterbot.input.TerminalAdapter',這是輸入適配器 output_adapter='chatterbot.output.TerminalAdapter',這是輸出適配器
logic_adapters=[ 'chatterbot.logic.MathematicalEvaluation', 'chatterbot.logic.TimeLogicAdapter' ],
logic_adapters參數是邏輯適配器的列表。 在ChatterBot中,邏輯適配器是一個接受輸入語句並返回該語句的響應的類。
您可以選擇使用盡可能多的邏輯適配器。 在這個例子中,我們將使用兩個邏輯適配器。 TimeLogicAdapter返回輸入語句要求的當前時間。 MathematicalEvaluation適配器解決了使用基本操作的數學問題。
database='./database.sqlite3'#這是數據庫
接下來,您將需要創建一個while循環讓您的聊天機器人運行。當特定的異常被觸發時,通過跳出循環,當用戶進入ctrl + d/ctrl + c時,我們可以退出循環並停止程序。
while True: try: bot_input = bot.get_response(None) except(KeyboardInterrupt, EOFError, SystemExit): break
這樣就是一個簡單的機器人出來了,關於如何訓練,和使用外部數據庫,請聽下回分解.