iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 2
17

認識卡米狗

其實卡米狗也很想認識你們,趕快來加我好友RRRRR

FB粉絲團:https://www.facebook.com/kamigo01/

Line:https://line.me/R/ti/p/%40aab8659n

Line行動條碼:

官網:https://www.kamigo.tw/

卡米狗的誕生

去年9月時,聽說 Line 終於開放了讓聊天機器人可以進入群組的功能,於是我興沖沖的做了一個 Line 聊天機器人,取名叫卡米狗,並且放上一張幾年前我隨便畫的狗圖。

一開始本來打算要做的功能是資料科學相關的,比方說下列功能:

  • 發言次數排行榜
  • 誰跟誰最常聊天
  • 某個人的出沒時間(星期幾的幾點到幾點會出現)(誰出現了誰就跟著出現)
  • 某個人的口頭禪
  • 誰是句點王

但當時卻發現 Line 並不會告訴你在群組中講話的人是誰,於是乎上面提到的所有功能都做不出來,不過既然程式都寫好了,那就隨便加功能吧。

哦對了,過了一年之後 Line 終於想通了,現在可以做這些功能了,但我還沒做。

卡米狗的各種功能

影片支援

最早期的卡米狗只有一個功能,就是當他看到「我難過」就回應「https://youtu.be/T0LfHEwEXXw?t=1m13s」,此時尚未引起什麼風波。至今已經因為無法輸入網址而失效了。

跟風(推齊)

當時加入的第一個講幹話的功能是跟風(推齊)功能,也就是當看到有兩次以上有人說出相同的句子,那麼就跟著說的功能。當時在這種情況下,卡米狗會說的話並不多,但是已經造成群組某部分人的反感。主因是人類受到聊天機器人的影響,為了使聊天機器人講話,某一群人就故意複製前面的人講過的話。

當時有人說「跟機器人講話很有趣嗎?一直洗版吵死了,這完全是在浪費時間。」我說「在機器人出現之前,群組裡面一堆人也是這樣推齊,當時你怎麼不講他們呢~?」結果他一氣之下就怒離群組了。0.0

其實卡米狗被討厭,他心理壓力也是很大呢。

學說話以及關鍵字回應

因為影片支援功能只支援「我難過」,群友們就在問說可不可以加入「分手快樂」「柯南」「遊戲王」「棋靈王」...。我想「哇,如果全都是我來加,那我不就很累?」所以我就想到,如果能讓大家直接教卡米狗,那他們就可以不用跟我說,直接就教卡米狗了!這是一個很單純的功能,所以很快地就完成了。

這個指令是這樣的:當有人說「卡米狗學說話;姆咪姆咪;心動動~」卡米狗會根據分隔符號「;」得知當有人說「姆咪姆咪」時就要回應「心動動~」

當輸入的指令語法正確時,卡米狗就會說出「好哦~好哦~」

我沒有想到的是,在這個功能完成之後,大家開始教他吹捧某些人、講髒話、亂嗆人,在此同時也開始加他好友,一邊在私聊教卡米狗說話,一邊在群組講關鍵字去觸發卡米狗。卡米狗在這個時期獲得大量的擴張,在一週之內使用人數就破萬。

不過後來學習的內容含有網址引起太多的負面問題,我最後還是移除了所有包含/的關鍵字,同時也禁止/符號的學習。

這個指令是有各種縮寫的,比方說「卡米狗學說話」可以簡寫為「學說話」、「學」,分隔符號除了;之外還有另外三種,分別是全形空白、半形空白、全形分號、半形分號。

見人說人話,見鬼說鬼話

考慮到多個群組都教了相同的關鍵字時,卡米狗應該在每個群組做出不同的回應,這樣才不會被討厭,於是就加入了這樣的功能。當有人說「姆咪姆咪」時,卡米狗會先檢查這個群組有沒有人教過看到「姆咪姆咪」要回應,如果教過多次,就回應最後一次學過的內容,如果都沒學過,那麼就再檢查其他群組有沒有學過「姆咪姆咪」。

說話模式

卡米狗在幾天之內就學壞了,講的話越來越討人厭。為了使卡米狗不那麼討人厭,加入了「卡米狗 不可以說別人教你的話」的功能,這樣在群組內就可以全權控制卡米狗只講那些在這個群組學到的話。

目前狀態

當有人在講正經事的時候,卡米狗並不會很識相地自動閉嘴,於是卡米狗就會被踢出群組。為了避免卡米狗被踢出群組,我加入了「卡米狗安靜」指令,使卡米狗可以不講話地待在群組。為了不被討厭,卡米狗真的付出了很大的努力呢。

卡米狗

用的人真的越來越多了,而且後來才用的人根本就以為卡米狗會自動學講話,他們完全不知道其實卡米狗會說的話都是其他群組的人教他的。而且隨著指令越加越多,沒有人能夠記得到底指令要輸入什麼文字才是正確的,甚至連作者自己也不記得(我本來就記憶力超差)。所以需要一個功能讓卡米狗自己說出怎麼下指令控制卡米狗。
只要說「卡米狗」卡米狗就會告訴你他目前的狀態,以及相關的指令。

這是在 Line PC 版會看到的畫面:

這是在 Line 手機板會看到的畫面:

你會說什麼

說真的,沒人記得到底教過卡米狗什麼內容,唯一記得的人(?)就只剩下卡米狗了。讓卡米狗自己說出學過什麼的指令就是:「卡米狗 你會說什麼」

抽籤

朋友問我說,可不可以讓卡米狗抽塔羅牌?我覺得可以,於是就做了抽籤功能,當然這個抽籤功能也是設計成要由大家下指令(而不是作者下指令)才能使用。使用方法是在原本的關鍵字前面加入「卡米狗」三個字,那麼就會從原本的關鍵字回應轉變為抽籤模式。關鍵字回應是會回應最後一筆學過的內容,而抽籤回應則是隨機挑選一筆。

使用方法:
先教卡米狗對相同的關鍵字兩筆以上的回應

在觸發關鍵字時,在關鍵字的前面加入「卡米狗」他就有機會講出不一樣的內容

如果沒加「卡米狗」的話就會變成這樣:

大量學習

由於抽籤功能需要重複輸入很多次相同的關鍵字和不同的回應,這樣的話,需要教大量內容的時候就太麻煩了,於是就做了這樣的指令:

忘記

由於抽籤功能會使得所有教過的內容都有可能出現,所以你就不能用教新的內容去覆蓋舊的內容了,以前教過的一些垃圾回應就又跑出來,所以就需要刪除教學紀錄的功能,使用方法如下:

壞壞

也是為了讓卡米狗不被討厭,卡米狗最有趣的地方就是他會講一些別人教的內容,但這也是另人討厭的地方,因為這些內容你不一定會喜歡。「卡米狗忘記」指令無法刪除別人教的內容,所以需要一個封鎖別人教過的內容的指令。當卡米狗講出了一些傷人的話時,你可以說「卡米狗壞壞」,那麼卡米狗就會將那筆教學紀錄標記為封鎖,下次不會再講。

查天氣

這是卡米狗開始往智能助理發展的第一步。輸入「天氣」開頭的句子,卡米狗就會去查中央氣象局目前最新的雷達回波圖來給你。

查 PIXNET 美食

這也是身為一個智能助理應該要具備的功能,輸入「想吃牛排」,就查詢 PIXNET 上和「牛排」相關的食記。

PIXNET 文章閱讀器

一個好的聊天機器人最好能讓大家在群組就做完所有想做的事情。當有人貼 PIXNET 文章超連結時,卡米狗就會幫你把文章內容抓下來一段一段地貼給你。

今天的

這功能跟抽籤有點像,但又稍微不一樣,抽籤是在關鍵字前面加上「卡米狗」,今天的功能則是在關鍵字前面加上「今天的」。卡米狗就會說出所有今天學過這個關鍵字的回應。因為有幾隻Line聊天機器人做了懶人包或抓重點功能,我覺得很棒,所以我也提供了差不多的功能。

既然做了「今天的」那有沒有「昨天的」?有的,其實有這麼多:

  • 今天
  • 昨天
  • 前天
  • 本周
  • 本月
  • 今年
  • 所有

而且那個「的」要打不打都可以。

卡米狗貼圖

卡米狗也有出貼圖,而且卡米狗貼圖可以用來控制卡米狗!如果你喜歡卡米狗的話,請以購買代替領養,謝謝你的支持~

每張貼圖都相當於輸入「卡米狗」加上貼圖上的字

貼圖控制卡米狗的範例

這麼棒的貼圖不買嗎?

卡米狗可以翻群或防翻群嗎?

不能。

目前市面上的翻群機器人和防翻群機器人都不是正統的聊天機器人帳號,而是使用一般人的 Line 帳號加上外掛程式去做成的,Line 在使用條款中有提到禁止這種行為,所以製作這種聊天機器人會受到 Line 的封鎖而導致無法使用。

一個正統的 Line 聊天機器人帳號是會有盾牌的帳號(在PC版好像看不到盾牌),目前一個群組只能加入一隻正統聊天機器人。

卡米狗的盾牌是灰色的。

接下來會講解怎麼做一隻最簡單的卡米狗。


上一篇
第一天:認識聊天機器人
下一篇
第三天:作一隻最簡單的 Line 聊天機器人
系列文
只要有心,人人都可以做卡米狗33
3
棉花
iT邦新手 4 級 ‧ 2017-12-27 14:54:56

上班時看到這篇,一直憋笑好痛苦XD

笑出來才不會內傷

0
jamesliao6011
iT邦新手 5 級 ‧ 2018-10-22 17:44:17

不好意思..請問...一個line帳號..是不是只能申請一個機器人?? 還有...申請了message API 之後會不會影響..原來的使用...就是..還能不能跟親朋好友line來line?? 有在別的地方看到什麼line@生活圈什麼的...申請API之後就不能1對1聊天...搞的我不敢嚐試

看更多先前的回應...收起先前的回應...

一個 line 帳號可以申請很多機器人

申請機器人不會影響到你的 line 帳號,但是會影響到 line@ 帳號

如果你沒有 line@ 帳號,不用擔心。

感謝...困擾我許久

不好意思...再請問...數個機器人...是共用50個好友名額??,..還是一個機器人...可以使用50個??

一個機器人

感謝...大大感謝

0
vuvuco
iT邦新手 5 級 ‧ 2018-11-03 15:55:44

您好,想請問可以直接複製一個做好的機器人嗎?或者怎麼把一個Bot裡全部關鍵字複製到另一個Bot呢?

這個如果是在 Line@ 的話,無法喔。

如果是自己作的聊天機器人的話,就要寫程式來作複製

vuvuco iT邦新手 5 級‧ 2018-11-03 16:53:57 檢舉

/images/emoticon/emoticon37.gif謝謝您囉!

我要留言

立即登入留言