關(guān)于小藝執(zhí)行自動(dòng)化任務(wù)的相關(guān)思考(構(gòu)想)
前言:華為語音助手(小藝)作為手機(jī)智能助手,現(xiàn)在具備一定的自動(dòng)化執(zhí)行任務(wù)的能力,但是存在以下問題:1、僅僅能夠根據(jù)有限的、已經(jīng)編程好的內(nèi)容進(jìn)行操作2、缺乏連續(xù)化的步驟,往往只能進(jìn)行一個(gè)指令,無法理解多個(gè)指令3、缺乏自適應(yīng)的能力,例如“聽歌”可以說成是“放一首歌”、“來首歌”、“整首歌聽聽”,現(xiàn)階段的方案是使用人工標(biāo)注來不斷強(qiáng)化小藝的理解能力,但人工畢竟是有局限的,每個(gè)人的語言習(xí)慣都各不相同,這樣所造成的智能其實(shí)并不智能。
在大模型即將到來的今天,本文試圖通過一套“標(biāo)注--理解--執(zhí)行”的鏈路來全面提升小藝的智能程度,讓新版小藝不止步于語言大模型,而是真正具備理解的能力。
標(biāo)注部分
要想知道該怎么做,首先要知道功能在哪里。該部分構(gòu)想靈感來自于通話過程中的菜單選項(xiàng),通過給各個(gè)APP構(gòu)建起一個(gè)菜單,將菜單內(nèi)的內(nèi)容與菜單標(biāo)題鏈接起來。拿華為運(yùn)動(dòng)健康中記錄飲食為例:要想使用該功能,需要打開華為運(yùn)動(dòng)健康,找到并點(diǎn)擊飲食日記,找到飲食記錄下面的四個(gè)按鈕(分別是+早餐、+午餐、+晚餐、+加餐四個(gè)按鈕),然后選擇相應(yīng)的食品進(jìn)行添加。將這一路徑繪制出來,就是:APP--界面--按鈕--界面--按鈕。當(dāng)然,還可能有其他交互方式,例如文本輸入上滑下滑等,額外的動(dòng)作使用額外的限定詞進(jìn)行標(biāo)注即可。
第一步,由華為牽頭,讓自家APP完成菜單的繪制,包括華為運(yùn)動(dòng)健康、華為視頻、華為音樂、我的華為、會(huì)員中心、華為商場、應(yīng)用商店、暢聯(lián)、備忘錄等等。在可以接觸源碼的情況下,將內(nèi)容交給盤古大模型進(jìn)行理解,在代碼層面完成快速識(shí)別。將這些信息交給小藝,并且提供可供執(zhí)行的API接口,同時(shí)將這一系列產(chǎn)生的代碼打包成為.HAS(huawei auto script)的格式,讓小藝能夠理解并且順利執(zhí)行。
第二步,利用webview套件。Webview是一個(gè)系統(tǒng)級(jí)別的瀏覽器控件,如今有很多APP的界面實(shí)現(xiàn)方式是調(diào)用webview組件,并使用HTML代碼完成的界面開發(fā)編輯。在這些APP中,理論上是可以通過查看網(wǎng)頁代碼,定位到各個(gè)功能的位置的。
在此基礎(chǔ)之上,使用盤古大模型對(duì)代碼進(jìn)行理解,尋找其中可供互動(dòng)的組件。在遍歷APP的web代碼后,自動(dòng)生成 .HAS代碼,完成標(biāo)注工作。
第三步,使用視覺識(shí)別。視覺識(shí)別是最耗費(fèi)資源,并且效果最差的。但在無法接觸源碼,并且APP也不是利用web組件生成的情況下,這是較為可行的方案。使用視覺識(shí)別,在打開APP后,識(shí)別并遍歷APP中的選項(xiàng),并且理解并標(biāo)注相關(guān)信息,最終形成 .HAS文件。
當(dāng)文件生成之后,將其統(tǒng)一放置到智慧生活--場景--發(fā)現(xiàn)中,同時(shí)為小藝提供相關(guān)接口,在用戶試圖打開APP時(shí)詢問下載相關(guān)文件。
理解與執(zhí)行部分
理解過程中,小藝應(yīng)在用戶提出相關(guān)指令后,尋找可能的功能,并向用戶詢問。例如想要打開微博熱搜的時(shí)候,用戶可能會(huì)說“打開熱搜”,但并未提及是微博的熱搜,此時(shí)小藝應(yīng)對(duì)用戶進(jìn)行詢問:是微博的,還是知乎或者搜狐的熱搜。
當(dāng)整個(gè)場景被確認(rèn)后,小藝便可以開始執(zhí)行步驟。在步驟執(zhí)行過程中,小藝可以詢問用戶,是否將用戶自己的語言和菜單中的功能鏈接起來,例如“是否將熱搜默認(rèn)為微博熱搜”。鏈接完成后,小藝將相關(guān)信息進(jìn)行存儲(chǔ),并上傳到云端。
執(zhí)行過程中,有些APP可能會(huì)因?yàn)楦聦?dǎo)致界面布局發(fā)生改變,同時(shí)也可能會(huì)有功能的增減。小藝在調(diào)用 .HAS文件時(shí)如果發(fā)現(xiàn)無法執(zhí)行的情況,需要重新對(duì)APP進(jìn)行學(xué)習(xí)。因?yàn)閷?duì)于用戶而言,往往沒有編程基礎(chǔ),所以整個(gè)面向用戶端的學(xué)習(xí)過程需要是完全自然語言化的。假設(shè)華為運(yùn)動(dòng)健康的“飲食日記”功能改名為了“飲食助手”,并且在前面出現(xiàn)了新功能,需要向左滑動(dòng)才能找到飲食助手的功能按鈕。此時(shí):1、應(yīng)當(dāng)加入一種檢測機(jī)制,讓小藝確認(rèn)自己是否成功進(jìn)入到了某功能,例如通過分析框架的變化來進(jìn)行判斷,當(dāng)然也可以使用視覺判斷,但要注意視覺判斷不應(yīng)當(dāng)包含那些擁有動(dòng)態(tài)信息的內(nèi)容。2、檢測失敗后,應(yīng)當(dāng)與用戶一起合作進(jìn)行問題解決:首先自我遍歷頁面,重新尋找功能,如果功能找不到的話,可以邀請(qǐng)用戶介入尋找。如果都找不到的話,那就申請(qǐng)?jiān)诓藛螜谥袆h除該功能,并將刪除后的文件上傳至智慧生活中的“發(fā)現(xiàn)”社群中。在社群中,如果APP中的某個(gè)變化被多名使用者上傳,那么社群應(yīng)采用新方案,公布新的文件供分發(fā)使用。