這裡只是乙個簡單的demo,供交流學習使用。
chatterbot是乙個開源的聊天機械人框架,原生支援多種語言,提供了豐富的介面用於訓練和部署,預設支援sqllite資料庫,每次訓練的結果會儲存到sqllite資料庫中,部署時只要保證chatterbot實體的名稱相同,就可以使用訓練好的模型。
更多細節可以參考官方文件chatterbot官方文件
django是基於python的開源的web框架,有成熟的配置後端邏輯和前端頁面部署的模版,比較適合大型web專案開發。
chatterbot中整合了對django部分方法的支援,可以直接呼叫。
在本地基於官方文件中的例子部署乙個簡單的基於web介面的聊天機械人。
最後實現的效果如下圖:
主要是修改官方文件中的settings.py檔案。
"""
middleware_classes = (
'django.contrib.sessions.middleware.sessionmiddleware',
'django.middleware.common.commonmiddleware',
'django.contrib.auth.middleware.authenticationmiddleware',
'django.contrib.auth.middleware.sessionauthenticationmiddleware',
'django.contrib.messages.middleware.messagemiddleware',
'django.middleware.clickjacking.xframeoptionsmiddleware',
'django.middleware.security.securitymiddleware',
)"""
middleware = [
'django.middleware.security.securitymiddleware',
'django.contrib.sessions.middleware.sessionmiddleware',
'django.middleware.common.commonmiddleware',
#'django.middleware.csrf.csrfviewmiddleware',
'django.contrib.auth.middleware.authenticationmiddleware',
# 'django.contrib.auth.middleware.sessionauthenticationmiddleware',
'django.contrib.messages.middleware.messagemiddleware',
'django.middleware.clickjacking.xframeoptionsmiddleware',
]
另外,要配置chatterbot資訊。
## 'name'是已經訓練好的chatterbot的name。
## 數學公式計算和時間獲取要寫注釋,
## 當沒有與輸入最匹配的文字輸出時,
## chatterbot的邏輯是會輸出當前時間的,這樣看上去會比較詭異。
chatterbot =
修改完成後,需要同步資料庫資訊。
python manage.py migrate
指定本機埠執行服務
python manage.py runserver 9000
如果沒有報錯,在瀏覽器輸入就會轉到上面的截圖介面。
專案**後續上傳。
使用中發現,用自己的中文資料訓練的chatbot總是存在答案與問題不匹配的情況,所以可以作為乙個研究的demo使用,不推薦在實際生產中使用。
AspectJ基於xml和基於註解
一 基於xml 執行的切入點中具體方法有返回值,則方法結束會立即執行後置通知,然後再執行環繞通知的放行之後的 2 連線點即所有可能的方法,切入點是正真被切的方法,連線點方法名 其中,只有環繞通知的切入點引數不一樣,是可以放行的切入點 3 異常通知是處理異常 切面類中的異常通知的方法引數列表中異常引數...
拓撲排序(基於dfs 基於佇列)
dfs函式的返回值表示是否成環,若存在有向環,則不存在拓撲排序。不包含有向環的有向圖稱為有向無環圖 dag 可以借助dfs完成拓撲排序,在訪問完乙個結點時把他加入當前拓撲序的首部。舉個栗子 比如乙個 1,2 1,3 2,3 的有向無環圖,就先搜尋1,再遞迴搜尋2,再搜尋3,3沒有出度了,於是放進拓撲...
基於insert update delete的注入
inset注入原理 所謂inset注入就是指我們前端註冊的資訊會被後台通過insert操作插入到資料庫裡邊去,若此時後台沒有做出相應的處理就會構成insert注入。insert注入方法 insert用法例如 insert into member username,pw,phonenum,email,...