~使用Python跨界整合Line Bot到AI服務
撰稿者:陳宗興
API經濟利益的趨勢,已經是進行式
Open API發展,促進企業經濟效益,已是世界大廠既定的營利獲利趨勢,其中透過網際網路的環境,進行資訊交換,提供企業服務各種場景,讓資訊得以快速交換,達到物流、資訊流、金流等服務的資訊交易與整合。這其中衍生出來一個個資訊交流平台,我們看到電商,線上電玩寶物等交換,以及物流資訊的交換整合,甚至到銀行業訂定的Open API,規範金流交換架構與規格;在在讓資訊在網際網路的環境下,完全暢通與整合。而 Open API在Linux基金會下面的OAI(OpenAPIInitiative)維護,該規範目前業已成為最流行的HTTP API規範之一。
來自著名IT公司的專家們合作定義了一種描述REST API的標準為:
- HTTP通訊協定
- TLS加密傳輸
- JSON傳輸資料格式
諸多大廠的資訊服務,均借助RESTful API完成,如亞馬遜大廠,規定所有的資料服務與存取,均須透過API架構進行。
學習Python程式語言設計能力的目標
回到Python程式來談,Python的確是一種易於學習的程式語言,可以讓不具有程式設計背景的愛好者,快速進入這一個語言的技巧與應用。
一種具有廣大的套件與模組支援,讓您在較短的時間內,完成系統需求。如資料科學分析,以及網路爬蟲程式設計等應用。甚至到AI相關的模組的設計與演算,Python程式語言配合廣泛套件與模組下,讓城市模組開發需求,均可以快速完成。
所以,一般學習Python的目標往往是:
- 配合相關的AI模組,如Tensorflow,PyTorch,Keras等模組完成AI建模與演算。
- 使用Pandas,Numpy,requests等模組,設計出網路爬蟲程式,擷取所需要的外在資料。
- 配合Flask或者是Django Framework,設計出Python Web。
而大部分學習者,學習Python,往往是聚焦在AI模組與網路爬蟲上,所以撰寫的程式碼,常趨於一種精簡且單純的單一程式運算架構。較缺乏整體應用系統上的構思與需求。容易忽略到Python用在功能導向的系統上進行開發與建置,再透過服務窗口完成系統整合需求;這樣的系統需求,即是實現Python Web上,較容易表現出來的一種開發效能。
因此,筆者常思考,Python程式難道只是用在網路爬蟲功能,或者在AI演算建模上嗎? 當您完成這些精簡的程式模組之後,又該如如何進行擴充,甚至轉換成一種服務,如配合Open API演進成加值系統一部分,提供更廣度的服務。
所以我們能不能思考一個跨界的架構,而且真正實現微服務(Microservice)的架構,讓系統可以小而美,亦可將微服務進行多重整合,完成一個龐大系統的開發。
您想透過Python架構一個微服務架構的API系統嗎?
當您已經學會Python程式語言設計的基礎之後,甚至學會如何透過Python進行網路爬蟲或者AI建模之後,您該如何將這些辛辛苦苦建立好的功能面的程式,封裝成可支援系統服務,提供各類型前端UI系統應用上的延展;這時候您即可透過Python語言的基礎,配合Flask微框架架構,將已經撰寫好的模組功能包裝,轉換成更具有附加價值的雲端服務。
人機介面系統,可以借助目前正夯的聊天軟體,如Line Bot等等;而這些應用軟體的後台系統,都是指向Open API趨勢進行功能支援設計,衍生服務平台。
聊天機器人的發展趨勢與介接趨勢 ,一般需要透過WebHook架構,進行RESTful API介接,順利將資訊推播與傳遞,延展到介接服務中進行額外功能處理,並且進而整合到AI Service(同樣是RESTful API)架構上,進行相關資訊的傳送與推測,如同在聊天機器人裝上腦袋,讓單純的聊天機器人具有AI思考的進階功能。如下圖三所示一般。借助已經學會的Python程式語言能力,推進到RESTful API開發領域,整合人機介面,與AI Service服務等。讓您有機會將Python程式語言開發單向功能模組下,進入到系統開發的整合能力範疇。
那又該如何將具有Python基礎程式設計能力的工程師,朝向智能 Line Bot聊天機器人開發的領域呢?
您可以循序漸進透過整合與學習的方式進行。如下圖四所示。
跨領域的系統開發與整合呈現混搭的唯一介接 —RESTful API
Line Bot背後是一個龐大豐富的Messaging API,我們可以透過視覺化工具建置LUIS.ai(自然語言解析服務)服務,接下來可使用Python Flask開發的介接微服務,這三者之間的共通性,都是符合Open API架構的服務。
所以說,所謂的跨界整合,其實都在一定的標準下進行整合,非關環境與程式語言等差異性。我們可以順利整合這些服務的優勢與特定功能,達到創意的激發與實踐。
筆者常說,混搭的系統,並不是一種《拼裝貨》,因為在統一的規範下行使資訊交換,透過服務本身的功能進行運算等,再送出或者接受到統一規格的資訊(JSON文件規格),可讓您專注在自身熟悉的程式語言與環境下,進行整合其他服務,將不可能單獨實現的應用系統,順利完成。
您可以輕鬆地透過兩個視覺化工具操作與設計 (Line Bot聊天機器人/LUIS.ai 自然語言解析建模) ,再配合一個您已經熟悉的Python程式語言邁入RESTful API後端開發工程師領域的學習與實踐;您絕對可以輕鬆學習到一個聊天機器人,且具有智能服務的機器人的系統功能。
一個混搭風的系統感觸,可以讓您將Python開發經驗帶向另一個領域, 當您學習微框架Flask,完成Python Web的開發經驗與實作,您創意之門即將打開,實現更多的構思。
沒有一招半式闖蕩江湖的時代了
整合與混合模式系統,如透過前端人機介面,諸如聊天機器人、網站系統、手機APP等,進行後端共同入口的服務端點,進行資訊交換與溝通,甚至整合到AI Service進行推測與演算,在在都是考驗著程式設計師,需要擁有斜槓能力。
Line Bot聊天機器人 / Python Flask RESTful API / LUIS.ai Service / SQL Server資料庫 / Azure網站系統服務
您可以想像,當您具有這些斜槓的能力時,您將會激勵出那些火花?讓創意飛翔….