首圖來源:Unsplash

【我們為什麼挑選這篇文章】開發  App 有多辛苦,工程師們應該非常有感?綜合調查結果,開發一款具備主要功能、結合前後端的 iOS / Android App,平均需要約 18 週(4.5 個月),開發高度複雜的 App 成本約需新台幣 220 – 300 萬,功能簡單的 App 也要台幣 120 – 190 萬,那你一定沒想過,現在餵給 AI 一則需求描述文檔,竟然可以直接幫你數分鐘內生成 App!這什麼黑科技?(責任編輯:徐宇儂)

本文經 AI 新媒體量子位(公眾號 ID:QbitAI)授權轉載,轉載請連繫出處
作者:量子位

用自然語言也能開發安卓應用程式了,多長的需求描述都可以。

用自然語言生成程式碼不算稀奇,但現在,這項技術涉及的業務範圍真是越來越廣了。

就有一個叫做 Text2App 的「AI」,你「餵」給它一串文字需求,它就能直接給你「消化」成安卓應用!

不信你看。

這是輸入的文字:

創建一個 App,上面有一個影片、一個按鈕,一個文本轉語音的功能以及一個手機加速感測器。點擊按鈕、播放影片、搖晃手機,念出文字「happy Text2App」。

整個過程除了等編譯花上幾分鐘,無需別的程式碼操作,就能直接生成下面這樣一個安卓應用:

不知廣大工程師們,尤其是安卓開發者,看完感覺如何?

Text2App 框架,是靠「中間語言」作為橋樑來實現 App 神速開發

Text2App 這個框架出自加州大學洛杉磯分校和孟加拉國工程技術大學。

它不是直接將自然語言生成原始碼,而是先生成中間語言,再由編譯器生成原始碼。

為什麼要先生成中間語言呢?

因為此前大多數根據文字描述生成程式的研究,都是基於端到端的神經機器翻譯 (NMT)模型,類似於 Google 翻譯,將自然語言直接翻譯成原始碼。

雖然其中一些效果還不錯,但大多數無法生成大一點的、上百行 code 的程式。

為了克服這個限制,研究人員就在這個過程發明了一個新的形式語言(formal language)做「橋樑」。

它能搞懂複雜的原始碼,並將用戶給定的自然語言轉換出一小部分 tokens(標記),再形成一個簡單的程式。

最後用研究人員開發的一個編譯器,就能把這個中間語言轉換成源碼。

最理解編程語言的還是編譯器,完全讓 AI 來生成複雜的程式還不行,所以離不開編譯器的大力支持。

當然,生成中間語言還是靠的神經機器翻譯模型。

下面是「文字描述轉換成 App」的具體流程:

文字描述:

Create an app with a textbox, a button named “Speak”, and a text2speech. When the button is clicked, speak the text in the text box.

上面這段自然語言首先被格式化(例如將「Speak」轉為「 ‘STRING0′:’Speak’ 」),然後交給一個有編碼器和解碼器的Seq2Seq神經網絡翻譯成簡單的應用程序表示( SAR)— 這就是上面說的中間語言:

<complist> <textbox> <button> string0 </button> <text2speech> </complist><code> <button1clicked> <text2speech1> <textboxtext1> </text2speech1></button1clicked> </code>

再透過 SAR 編譯器將中間語言轉換成 MIT App Inventor 原始碼文件(.scm/.bky),由 MIT 打包成最終可用的安卓端應用程式即可。

下面是自然語言和中間語言(SAR)自動合成的示意圖,很直觀:

所以,安卓開發工程師看了 Text2App,應該緊張嗎?

正如大家所料,這個框架還是比較初級,目前描述文字需要被限定在一個固定範圍:

只能描述 11 種組件:文本框、按鈕、標籤、播放器、時間選擇器……

能實現的事件、操作等倒是沒有明確限制,感興趣的可以具體測測能實現多少。

目前的功能也很單一,廣大安卓開發工程師們還遠遠不用擔心 AI「搶飯碗」。

不過研究人員說了,最終目的是使 Text2App 成為一個成熟的基於自然語言的APP開發平台。

需要多久呢?還未可知。

>> 論文地址 <<

>> 完整影片及試玩連結 <<

參考資料:TechXplore

(本文經 AI 新媒體量子位 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈你給需求文檔,AI就能幫你開發安卓App〉。首圖來源:Unsplash)

看更多打 code 新神器

• 電腦自動寫程式的日子更近了!Facebook 遷移學習新突破,程式碼生成準確度超過 50%
• 因為雙手受傷不能打 code,美國工程師開發一款語音輸入就能轉程式碼的超強工具!
• Python 弱掉了!中國工程師開發「文言文程式語言」,讓你的 coding 充滿文學情懷