創建Bot的中文平台 —— 一個AI(yige.ai)

2016年9月22日11:00,一個AI,準時對外發布,這是我們研發已久的中文聊天機器人(Bot)免費創建平台。

一個AI是免費創建中文聊天機器人(Bot)應用的在線平台,它使用自然語言理解技術從句法和語義層面理解用戶的輸入,同時也考慮到對話所處的狀態,最終達到識別用戶當前輸入意圖的目的。利用一個AI提供的管理界面和調用介面,無需具備機器學習與自然語言處理等相關知識,小微企業和個人開發者,甚至產品和運營人員,都可以開發出用戶友好的自然語言對話交互應用。

一個AI為開發者提供了以下核心能力(虛框內功能即將發布):

一個AI的使命是:

讓每個人都能輕鬆開發一個AI應用。

相對於Viv的靈活性,一個AI更強調可控性和可維護性。雖然使用一個AI的所有功能還是有一定的門檻;但是基本使用,或者後期的基本維護門檻還是很低的,相信一般的客服同學就可以勝任。

下面簡單介紹一個AI的由來和基本邏輯。

一個AI由來

故事要從去年說起……

去年下半年我接到老闆一個需求,為佳緣創建一個客服機器人緣緣助手,用於回答有關佳緣服務和使用相關的問題,在用戶無聊時還可以陪用戶嘮嘮嗑。

首先我們嘗試從外面找可用的聊天機器人服務直接對接。國內這方面做得最大的是小i機器人,小i在對話這塊做了很久,不過它主要是服務大企業,比如銀行,小米,京東早期的Jimi等。他們一單的要價大概在100w左右。當時他們也在開始做針對開發者的介面服務和平台,所以最開始我們就把緣緣助手的知識庫維護到小i上,使用他們的介面服務。但小i有以下幾個主要問題:

  • 知識庫維護平台難用,介面不夠穩定。小i的維護平台體驗非常差,各種卡,很容易誤操作導致剛寫的東西就沒了。介面也不穩定,當時小i做介面服務的機器只有一台,然後他們經常不通知就停機,導致服務沒法用。

  • 知識庫維護多了,效果反而下降。隨著我們在小i平台上維護的知識庫越來越多(總共其實也不大,大概100+的問答組),會出現各個問答組之間相互打架的問題。所以到後來我們就不敢再往上面加東西了。

  • 技術支持不給力。那時候我們拉了個群,除了我們還有小i的商務和技術人員。小i商務同學還是挺積極的,可是技術人員就不給力了。反饋的問題很難得到解決,到後來他們乾脆說你們這麼多要求,直接用我們的企業定製好了。。。說這條倒不是怪罪小i技術的意思,相信他們確實也有其他工作安排。但溝通下來的感覺就是小i是個傳統公司,而非互聯網公司。

基於這些原因,加上緣緣助手的答覆需要支持富文本,我們最後就決定自己做跟佳緣相關的那塊聊天,也就是知識庫這塊我們自己做。但閑聊還是用外面的介面服務。其實在了解小i的同時,我們也在看國內的一些創業公司,比如圖靈機器人,當時他們主要提供通用聊天功能。之所以最開始沒用圖靈是因為覺得它是個初創公司服務可能不穩定。不過因為之前提到的小i的各種問題,我們最後把閑聊那塊也完全切到圖靈機器人了,感謝圖靈機器人提供的穩定服務。

所以緣緣助手後來的邏輯是這樣的,閑聊用圖靈機器人的介面,其他的用我們自己開發的服務。這個項目做完大概是去年年底,之後我一直在思考一個問題。市場上為大公司進行定製服務的公司已經有小i這種大玩家,但是為小微企業提供服務的公司就很少。圖靈機器人提供的主要服務是閑聊,在企業定製這塊做的事並不多。當時我就想為什麼這塊一直沒人做,後來我想明白了,主要是因為成本。小微企業每年最多也就願意為這種服務付幾千塊,這種價格估計都cover不住開發成本的。

之後我對聊天機器人關注的越來越多,主要也是想找一個框架,能夠降低對小微企業的服務成本。後來我看到了美國的Wit.ai和Api.ai,當時真是眼前一亮。當然這兩個主要是提供英語服務的,對中文的支持很慘,而且wit.ai是Facebook的,已被牆,api.ai在國內使用延遲也是很大的,前幾天api.ai也被Google收購了,估計被牆只是時間問題。所以我就想著自己搞個中國版的api.ai吧,這就誕生了現在的一個AI。當然做一個AI還有個原因是相信對話交互一定會使用的越來越多,因為這是人類追求溝通效率帶來的必然結果。加上美國各大公司如Google、Facebook、Microsoft、Amazon、Slack已經入場。。。

很多人擔心世紀佳緣做一個AI,是不是想讓機器人跟用戶假聊。真沒有,世紀佳緣所有的信件都是用戶觸發才發的。只是有些頁面的發信提醒說明不夠明顯, 用戶在使用之前沒看到。不過機器人確實可以用於輔助用戶與異性聊天。兩個陌生人聊天經常出現的尷尬是不知道接下來聊啥。我們在考慮用一個AI為佳緣每個用戶定製一個機器人聊天導師,它可以建議用戶接下來該怎麼跟對方聊,提升用戶的溝通能力。雖然佳緣自己會用一個AI,但一個AI主要還是對外的,面向小微企業和個人開發者。

一個AI簡介

一個AI中包含幾個重要概念:詞庫、場景、動作、狀態。

詞庫是一個規範的自然語言短語集合,通常定義為應用所在領域的關鍵詞、術語。詞庫在學術領域通常被稱為實體(entity),是自然語言處理中的重要概念。詞庫在一個AI中用於從用戶輸入中提取動作和狀態所需的參數值。一個AI不僅內置了常用的系統類型,如數字、日期、時間等,也為開發者定義自己詞庫提供了靈活便捷的支持。開發者可以定義包含同義詞的同義詞詞庫,也可以定義不包含同義詞的枚舉詞庫,甚至可以定義由其他詞庫組合而成的組合詞庫。

場景通常對應著從用戶提問到AI產生答覆的一輪交互過程。一個場景主要由用戶提問、AI回復、動作和輸入輸出狀態所組成。

動作是用戶提問匹配到的場景執行後觸發的一個特定操作,它可以使用從用戶輸入中提取出的詞庫作為輸入參數。動作相當於代碼中的函數,其具體實現在開發者端,一個AI系統端只是一個標識,相當於函數聲明。

狀態記錄了對話交互的背景信息,主要用於上下文信息(如參數值)的傳遞。此外,它也被用於管理會話流,串聯起原本孤立的不同場景。多個場景通過場景里的輸入輸出狀態連接成圖網路以完成更加複雜的功能。

一個AI遵循的流程和Api.ai類似,在接收到用戶的輸入後,流程如下:

  1. 一個AI首先識別用戶輸入中的詞庫和用戶場景。詞庫和場景的識別並不是獨立的,相同的詞在不同的場景下可能屬於不同的詞庫類型。在場景識別時也會考慮到場景設定的狀態是否存在。如果某場景設定的輸入狀態不是都存在,則不會把用戶輸入識別為此場景。

  2. 查看動作中需要的必須參數是否都已獲得取值。如果存在必須參數還沒有獲得取值,就觸發設定好的提示語作為機器人回復,要求用戶輸入對應的參數取值。參數的取值不僅可以來自於此次用戶輸入中的詞庫,也可以來自於輸入狀態中的變數。對於非必須參數,可以為他們設定默認值。

  3. 只有所有必須參數都已收集到取值,此場景才能完成,場景設定的AI回復才會作為回復返回給用戶。到這裡此場景就完成了,用戶之後的輸入就會觸發新的循環。

一個AI定位於服務國內開發者,所以也引入了一些中文相關的特性,例如查詢介面支持未分詞的整句話輸入,以及分詞後的語句輸入。

更多信息可見一個AI官方文檔,也歡迎大家去一個AI官網逛逛,嘗試創建年輕人的第一個AI應用吧^_^。

除一個AI官方論壇外,我們也有微博官號「@一個AI」,微信公眾號「yigeAI」,開發者微信交流群(給「@一個AI」或者「@breezedeus」私信,寫明加入開發者微信群)。

本文作者:

吳金龍,個人微博和博客分別為@breezedeus和BreezeDeus。2010年獲得北京大學數學院計算數學專業博士學位,期間研究方向為推薦系統中的協同過濾演算法。畢業後加入阿里雲,主要從事PC和雲手機的輸入法開發。2011年加入世紀佳緣,負責世紀佳緣用戶推薦系統的開發。目前為世紀佳緣資深總監,領導世紀佳緣技術部,負責佳緣數據和AI相關的各項工作。


推薦閱讀:

人工智慧風口上,應該起飛還是落地
人類可不可能像被圈養的動物一樣,其實一直處於另外一個高等文明的觀察之下?
擁有1000項重大發明的特斯拉為什麼瀕臨破產?
做了一個新產品,叫「HoloRead」(一)
電腦組裝好後,按開關沒反應是怎麼回事?

TAG:科技 | 人工智慧 | 機器人 |