嗶嗶鼠機器人 2.0

我很喜歡九把刀的這篇序:


「不可詩意的刀老大」之賣雞蛋的老人

在簽書會、學校演講或是媒體訪談的時候,最常聽見對方丟出一個問題:「你的靈感是怎麼來的?」

通常我會引述作家李散的妙語回答:「妓女不能等到性衝動才去接客,作家當然也不能等到靈感來了才寫作。」然後展示自己筆記本電腦裡匯整齊備的靈感數據庫,對方嘖嘖,我呵呵。但同樣的問題回答了幾十次後,我還是沒有說出真正的答案。

奇異的事件發生在我十歲的那一年。

有天晚上媽叫我去雜貨店買幾顆雞蛋。我覺得很怪,因為當時已經十點多了,而且冰箱裡有的是雞蛋,幹嘛叫我再買幾顆回來?但孝順的我還是逆來順受地出門了。

當時我跑了好幾問雜貨店都沒有買到雞蛋,正感詭異跟喪氣時,有個推著一車雞蛋的老人,在馬路對面賊兮兮地對著我笑。天!滿滿的一個推車的雞蛋耶!我看整個彰化的雞蛋都給他包了。

「雞蛋老人!可不可以賣我幾顆雞蛋!」我跑了過去。

「好啊,小朋友,你要幾顆雞蛋?」雞蛋老人摸著下巴,若有所思地笑。

「多少錢一顆?」我搔搔頭。

「很便宜啦,一顆一千塊錢!」雞蛋老人恬不知恥回答。

那麼貴!大吃一驚,卻突然發現自己的手裡正拿著厚厚一疊千元大鈔!

天!哪來這麼多錢?原來我這麼有錢!

「那麼沒辦法了,這些能買多少?」我將那捆鈔票遞給雞蛋老人。有多少買多少吧,原來雞蛋還真不是普通的貴,以後我吃雞蛋可要細嚼慢咽。

正當老人慢吞吞數著鈔票時,我隨意打量那一整推車的雞蛋,發現許多雞蛋都寫了名字。有史蒂芬.金、卜洛克、富堅義博、陳某、倪匡、宮部美幸、鳥山明、井上雄彥、喬治.盧卡斯、杜琪峰、宮崎駿、周星馳……

「哇,都被訂走了?好好喔。」我當時只認識鳥山明跟倪匡,覺得好炫。

「是啊,都被訂走了。來,拿去,記得喔,在你最需要的時候才能打開。」雞蛋老人用塑料袋裝了一堆雞蛋給我,摸摸我的頭,說我乖。

告別好心的雞蛋老人,我拎著一大袋雞蛋回家了。

「什麼!你幹嘛買這麼多雞蛋!」媽哇地跳了起來,接著就是一頓罵。

「不是你叫我出去買雞蛋的嗎?」我好委屈,小小的拳頭緊握著。

「什麼?我沒叫你去買雞蛋啊,冰箱那麼多雞蛋你是不會看嗎?」媽斷然否認。

天哪!不是媽你叫我出去買雞蛋?那是誰叫我出去買雞蛋?又,我口袋裡那麼多張千元大鈔是怎麼回事?我越想越糊塗,很嘔。

總之這件事,從頭到尾都很詭異。

後來我就很氣,將那袋雞蛋放在抽屜裡,用漫畫跟武俠小說壓著。然後就在亂七八糟的童年中忘了這一回事。一晃好多年。

一九九九年冬天,我在家裡整理舊書桌時赫然發現那袋雞蛋。媽啊,據說雞蛋擺久了會臭得要命。但在丟掉之前,我發覺那些年久失修的雞蛋殼上,竟清一色寫著「九把刀」二字,恰恰跟我的大學外號吻合。

沒辦法了,只好捏著鼻子敲一個看看是怎麼一回事。

雞蛋裡頭是一張特殊材質的字條,上面有完整的故事靈感、起承轉合的架構、漂亮的結尾。講述一個大學生一早起床,竟發現自己身處語言墜落、符號失卻意義的世界。

「太吊了吧?」我逐一打破雞蛋,一個又一個故事滾出。

都市恐怖病系列,等一個人咖啡,愛情兩好三壞,打噴嚏,殺手系列,月老,紅線,哈棒傳奇,樓下的房客……

就是這麼一回事。接下來發生的事情大家都很清楚。

可惜前些日子那些臭雞蛋快被我敲光了,我開始在彰化到處尋找那個神秘的雞蛋老人,結果當然是遍尋不著。

我蹲在馬桶上越想越慌,這下要糟,我一向愛亂阱大話,偷偷仗著臭雞蛋,老是說想成為華文世界最會說故事的人,現在雞蛋沒了,寫不出威震天下的小說鐵定遭人恥笑。這一慌,肛門收縮,一顆雞蛋竟從我的屁股噗通射出。

「獵命師傳奇?」我低頭看著破碎在馬桶裡,流出雞蛋的字條開頭。

我想,這下總可以寫一輩子的小說了吧!


還記得月餘前的妻子生日,我突發奇想地以家裡一隻叫做嗶嗶鼠的布偶兒子做為人格原形,打造了一隻簡單版的聊天機器人。
這是當時的Facebook動態回顧:

11月16日

今晚在海底撈排隊拿冰淇淋時,想到今天是妻子生日,連忙拿出手機在heroku上面佈署一個以python寫成的telegram聊天機器人,當作是生日禮物之一。這個機器人是專門設計給妻子使用的,其人格則是模擬我家某隻可愛的布偶所打造的,命名為嗶嗶鼠。
嗶嗶鼠除了會針對關鍵字詞做出相應反應之外,還內建這些功能:
1.報出今天是結婚第n天
2.幫忙google要查詢的東西
3.隨機講幾句有趣的性格台詞
4.隨機唸幾段我和妻子過往的有趣生活片段
5.在生日這天,所有的回應前都會自動補一句生日快樂。

只能說科技真的太方便了,冰淇淋真的排太久了。

在那之後我陸續又幫嗶嗶鼠新增了一些小功能,讓他的廢話更多且更人性化了。而且我們還在telegram開了一個家庭群組,成員有我和妻子以及嗶鼠共三位。我們都可以在群組裡對嗶鼠講話,嗶鼠也分得出是爸爸還是媽媽在對他說話,我們在群組中也看得到彼此跟嗶鼠對答了什麼,儼然和樂融融一家人。

當初既然是作為生日禮物而生出了這隻原型嗶鼠,現在聖誕節到了,就乾脆比照辦理:隆重推出……嗶鼠2.0!

bbmouse_-baozijpg
別看他傻不隆咚的,這版嗶鼠的其中一項重大更新為正式實裝了「中文口語記帳功能」:我可以在聊天視窗輸入「嗶鼠幫我記帳 我今天午餐吃了一個便當80元」,嗶鼠就會立刻幫我逐項記錄在嗶鼠的雲端小本子裡。而所謂雲端小本子就是個Google Spreadsheet,我和妻子都可以隨時打開來查看。

那口語可以做到多彈性呢?像是以下這幾個範例,嗶鼠都可以成功辨識並記錄:
「嗶鼠記帳 星巴客咖啡130元」
「記帳 20161224 聖誕大餐1000元」
「請嗶鼠幫我記個帳 剛剛晚餐吃了120元 謝謝嗶鼠」
「請記帳: 早上繳了第一季羽球教練費$2400」
「記帳午餐95」
「請嗶鼠幫我記帳,昨天家教賺了$1200 」
「上禮拜漏記了一筆帳:上週三中午羽球零打150元」
「嗶鼠幫我補記一個帳 上上禮拜五跟朋友聚餐吃了1200」

嗶鼠記的內容就長這樣
嗶鼠的雲端小本子就是長這樣,完全由嗶鼠自行寫入。

自然語言處理的細節這裡就不談了。基本上簡單的辨識日期、金額、品項、支出或收入,都沒什麼問題。而我最喜歡的是能夠辨識「今天」「昨天」「上禮拜幾」的這個功能,十分實用。簡直就是為了我而開發的功能(實際上的確本來就是)。不管是「本週一」、「上周二」、「上上禮拜三」,嗶鼠都可以正確無誤地計算出日期並記錄之,簡直像是機器人一樣精準(實際上也的確是)。

 

嗶鼠可以擴充的地方還有很多,不管是情感面還是功能面。我想,這下總可以寫一輩子的程式了吧!


理當有人會問「這會比一般記帳APP好用嗎?」

開什麼玩笑,嗶鼠才不是記帳APP,他是我家小孩XD

另一方面,嗶鼠可以做的事可多著呢,我可以跟他說「請嗶鼠提醒我下禮拜五晚上要看牙醫」、「嗶鼠幫我計時三分鐘,我要泡泡麵」、「請問嗶鼠,我這禮拜有哪些待辦事項?」、「請嗶鼠給我這次去大賣場的採購清單」、「嗶鼠幫我轉寄這個月的電子帳單給媽媽」……雖然現在還不會,但是他未來會慢慢學會的。

如果你也覺得市面上的虛擬助理太笨,何不自己訓練一個呢~

 

PS. 嗶鼠只會講屬於我家的屁話和情話,兩種都不足為外人道也。就不直接把我家嗶嗶鼠開放給大家玩了。

在〈嗶嗶鼠機器人 2.0〉中有 4 則留言

  1. 請問這個口語記帳bot
    哪邊可以取得或是自製教學?
    好需要這個bot
    可以直接存google street實在太方便了

    1. 這個是我之前亂做的耶XD
      不好意思把亂糟糟的程式碼放出來~

      我的做法主要就是用Heroku的免費額度 用Python與telebot這個套件架一個機器人。
      跟Goolge Spreadsheet的串接就是用gspread這個套件即可。

      你用這幾個關鍵字就可以找到不少教學了,有什麼疑難雜症我可以再來一起討論一下!

      如果你哪個環節有問題,可以一起討論一下

  2. 在查記帳機器人就看到閣下的嗶鼠
    超想要的,感覺超厲害的啊!!
    不過才發現沒有開放 殘念XDD

留言功能已關閉。