基於chatterbot django的聊天機械人

2021-10-08 20:45:56 字數 1990 閱讀 3036

這裡只是乙個簡單的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,...