Home

Awesome

Mianbot

demo

🎉 News: 我們採用了類似的資料採集策略訓練了一個繁體中文的大型語言模型,模型效能與使用方式可以參考 Kyara

Mianbot 是採用樣板與檢索式模型搭建的聊天機器人,目前有兩種產生回覆的方式。

匹配示例

更多的樣例可以參照 example/output.txt

輸入:明天早上叫我起床。

相似度概念匹配元
0.4521鬧鐘起床
0.3904天氣早上
0.3067住宿起床
0.1747病症起床
0.1580購買早上
0.1270股票早上
0.1096觀光早上

輸入:明天上海會不會下雨?

相似度概念匹配元
0.5665天氣下雨
0.3918鬧鐘下雨
0.1807病症下雨
0.1362住宿下雨
0.0000股票
0.0000觀光
0.0000購買

環境需求

import Chatbot.console as console
c = console.Console(model_path='your_model')

使用方式

聊天機器人

import Chatbot.chatbot as chatbot

chatter = chatbot.Chatbot(w2v_model_path='your_model')
chatter.waiting_loop()

計算匹配度

import Chatbot.console as console

c = console.Console(model_path='your_model')
speech = input('Input a sentence:')
res,path = c.rule_match(speech)
c.write_output(speech,res,path)

規則格式

規則採用 json 格式,樣板規則放置於\RuleMatcher\rule中,

    {
        "domain": "代表這個規則的抽象概念",
        "response": [
		"對應到該規則後",
        	"機器人所會給予的回覆",
        	"機器人會隨機抽取一條 response"
        ],
        "concepts": [
            "該規則的可能表示方式"
        ],
        "children": ["該規則的子規則","如購買 -> 購買飲料,購買衣服......"]
    }

Example

    {
        "domain": "購買",
        "response": [
        	"正在將您導向購物模組"
        ],
        "concepts": [
            "購買","購物","訂購"
        ],
        "children": [
            "購買生活用品",
            "購買家電",
            "購買食物",
            "購買飲料",
            "購買鞋子",
            "購買衣服",
            "購買電腦產品"
        ]
    },

問答測試用資料集

請點擊這裡下載部分測試用資料集,內容包含了 PTT C_Chat、Gossiping 版非新聞類問答約 250,000 則。檔案解壓縮後請放置於 QuestionAnswering/data/ 資料夾下,reply.rar 解壓縮後的資料夾請放置於 QuestionAnswering/data/processed 下:

QuestionAnswering
└── data
   ├── SegTitles.txt
   ├── processed
   │   └── reply
   │       ├── 0.json
   │       ├── .
   │       ├── .
   │       ├── .
   │       └── xxx.json
   └── Titles.txt

完成配置後,可以將chatbot.py 中的 self.github_qa_unupdated 設為 False 打開問答模組進行測試。

開發日誌

特別致謝