前言

AI 結(jié)合業(yè)務(wù)的研發(fā)chatgpt開發(fā)代碼,后續(xù)會(huì)逐漸增多了,會(huì)是一種趨勢么?今日前端早讀課文章由 @景莊分享,公號:云音樂技術(shù)團(tuán)隊(duì)授權(quán)。

正文從這開始~~

隨著大語言模型(LLM)不斷涌現(xiàn)的各種能力,生成式 AI 的應(yīng)用場景變得越來越廣闊。諸如 這類大語言模型在生成代碼方面非常的高效,因此對于如何將 LLM 的能力與低代碼產(chǎn)品進(jìn)行結(jié)合,業(yè)界已經(jīng)有了很多的討論和實(shí)踐,但都距離實(shí)際的生產(chǎn)場景有一定的距離。本文將會(huì)介紹的是,網(wǎng)易云音樂大前端團(tuán)隊(duì)是如何借助 LLM 的能力來擴(kuò)展和增強(qiáng)低代碼產(chǎn)品的研發(fā)體驗(yàn)的,本文所涉及的內(nèi)容均已在我們的內(nèi)部生產(chǎn)環(huán)境中上線并得到應(yīng)用。

功能預(yù)覽

首先,給大家快速地預(yù)覽一下我們在網(wǎng)易云音樂內(nèi)部的低代碼平臺(tái)中上線的 AI 功能,目前提供了包括智能創(chuàng)建頁面、智能修改頁面、智能屬性配置、智能代碼片段生成、智能問答和編程助手等多種能力,下面是具體的演示內(nèi)容。

智能創(chuàng)建頁面

在云音樂低代碼平臺(tái) 中,我們集成了 LLM 的能力來加速前端應(yīng)用的開發(fā)流程和體驗(yàn),開發(fā)者可以借助于簡單的自然語言描述的方式快速生成表單、表格、詳情、儀表盤等頁面,而無需記憶大量的組件配置和功能點(diǎn),有效地提升了低代碼平臺(tái)的使用效率。

例如,在 AI 對話面板中,可以輸入 “創(chuàng)建一個(gè)審批表單頁面,字段包括審批人,審批時(shí)間,審批意見”,短暫的等待,就可以直接生成整個(gè)表單應(yīng)用,用戶只需要進(jìn)行邏輯上的微調(diào),即可完成整個(gè)前端應(yīng)用的構(gòu)建

智慧課堂的理論思考和實(shí)踐_chatgpt開發(fā)代碼_html網(wǎng)易云音樂代碼

page

智能修改頁面

如果生成的頁面不是你想要的,也可以通過聊天面板通過自然語言輸入的方式對頁面內(nèi)容進(jìn)行微調(diào),例如增刪改表單或列表的字段,修改頁面標(biāo)題,自定義組件樣式等等,為用戶提供低成本高容錯(cuò)的交互體驗(yàn)。

例如,“增加一個(gè)是否同意的字段”。

chatgpt開發(fā)代碼_html網(wǎng)易云音樂代碼_智慧課堂的理論思考和實(shí)踐

page

智能組件屬性配置

除了使用 AI 對話面板,用戶還在在選中某個(gè)組件后快速喚起 AI 輸入框,通過簡單的自然語言描述方式對當(dāng)前組件的配置進(jìn)行微調(diào),例如組件的樣式,大小,狀態(tài)等屬性的設(shè)置。

例如,“背景色改為淡黃色”,“使用垂直布局” 等。

html網(wǎng)易云音樂代碼_chatgpt開發(fā)代碼_智慧課堂的理論思考和實(shí)踐

set

chatgpt開發(fā)代碼_html網(wǎng)易云音樂代碼_智慧課堂的理論思考和實(shí)踐

form

智能代碼片段生成

在云音樂低代碼平臺(tái)中,用戶有很多地方可以直接編寫代碼而不是使用可視化 UI,因此我們將 LLM 生成代碼的能力集成進(jìn)來,幫助用戶快捷的編寫表達(dá)式代碼,為開發(fā)者提供比可視化拖拽更高效的研發(fā)體驗(yàn)。

例如,“過濾掉返回值中 name 不是 的數(shù)據(jù)”。

html網(wǎng)易云音樂代碼_智慧課堂的理論思考和實(shí)踐_chatgpt開發(fā)代碼

code

智能問答和編程助手

由于 B 端產(chǎn)品的特殊性,通常會(huì)有一定復(fù)雜度的流程和功能模塊,用戶需要閱讀使用文檔才能完全掌握系統(tǒng)的使用。借助 LLM 的能力,我們可以將軟件文檔分片后存儲(chǔ)到向量數(shù)據(jù)庫,并借助 LLM 來構(gòu)建基于上下文的問答系統(tǒng),為用戶提供全新的問答體驗(yàn)。同樣,我們將這種能力融入到系統(tǒng)的問答過程中,為用戶提供比關(guān)鍵詞搜索更良好的答疑體驗(yàn)。

chatgpt開發(fā)代碼_html網(wǎng)易云音樂代碼_智慧課堂的理論思考和實(shí)踐

Q&A

構(gòu)建思路與實(shí)現(xiàn)原理

此前曾經(jīng)分享過對于,結(jié)合業(yè)務(wù)和團(tuán)隊(duì)的現(xiàn)狀和痛點(diǎn),我們團(tuán)隊(duì)構(gòu)建了一套基于源碼的低代碼研發(fā)體系,支持開發(fā)者使用 和 雙模式在線混合開發(fā),并且支持兩者的雙向同步,為業(yè)務(wù)場景提供足夠的靈活性,借此推動(dòng)低代碼研發(fā)方式在云音樂大前端場景的漸進(jìn)式覆蓋。

云音樂低代碼平臺(tái)實(shí)現(xiàn)的核心思路是:將源代碼解析為 AST ,在 AST 的基礎(chǔ)上進(jìn)一步抽象和建立 文件模型 和 節(jié)點(diǎn)模型,通過將視圖的拖拽配置行為轉(zhuǎn)為對 AST 的操縱和修改,進(jìn)而將變化后的 AST 重新還原為源代碼。具體如下圖所示。

html網(wǎng)易云音樂代碼_chatgpt開發(fā)代碼_智慧課堂的理論思考和實(shí)踐

以源碼為核心的低代碼平臺(tái)構(gòu)建方案為我們在內(nèi)部大力推廣低代碼開發(fā)提供了很大的便利,因?yàn)樵趯?shí)際的使用過程中,大量的需求變化仍然依賴于開發(fā)者對組件和邏輯的自定義,傳統(tǒng)的低代碼方案對于這種需求變化的支持并不友好,而以源碼為核心的低代碼平臺(tái)則可以很好的解決這個(gè)問題。

此外,以 GPT 為代表的這類大語言模型在文本生成方面具有非常高的效率,因此將其應(yīng)用在代碼生成方面具有非常高的準(zhǔn)確性。結(jié)合我們在云音樂采用的源碼驅(qū)動(dòng)的低代碼開發(fā)方案,我們很順利的將 GPT 的能力集成到了云音樂低代碼平臺(tái)中。

智慧課堂的理論思考和實(shí)踐_html網(wǎng)易云音樂代碼_chatgpt開發(fā)代碼

具體的原理如圖所示,對于用戶的輸入指令,首先會(huì)被組裝為標(biāo)準(zhǔn)化的 模版,進(jìn)而解析用戶指令中的用戶意圖,借助于向量數(shù)據(jù)庫進(jìn)行近似度匹配,將關(guān)聯(lián)的信息合并到 中,然后借助預(yù)訓(xùn)練的 GPT 大模型推理生成代碼,最后將 GPT 返回的代碼合并到當(dāng)前工程中,觸發(fā)應(yīng)用視圖重新渲染。

通過構(gòu)建基于源碼的低代碼開發(fā)能力,可以為一線業(yè)務(wù)開發(fā)同學(xué)提供全新的線上線下一體化混合開發(fā)流程。傳統(tǒng)的實(shí)現(xiàn)方案線上與線下流程獨(dú)立,不互通;資產(chǎn)獨(dú)立,不共享;并且低代碼應(yīng)用出碼流程也是單向不可回流的。結(jié)合于大語言模型的能力,我們進(jìn)一步構(gòu)建了云音樂的混合開發(fā)方案,支持使用同一份前端資產(chǎn)和代碼庫,支持用戶通過低代碼 IDE、、本地 IDE 三種方式開發(fā)同一個(gè)前端工程。具體的效果如下圖所示。

html網(wǎng)易云音樂代碼_chatgpt開發(fā)代碼_智慧課堂的理論思考和實(shí)踐

從編程語言到提示工程( )

在云音樂低代碼平臺(tái)中,我們將自然語言推理作為一個(gè)獨(dú)立的底層服務(wù)。在用戶輸入指令后,會(huì)將用戶的輸入指令和當(dāng)前工程的信息組裝為一個(gè)標(biāo)準(zhǔn)化的 模版,然后將 模版發(fā)送給自然語言推理服務(wù),并基于底層大語言模型服務(wù)推理生成代碼,進(jìn)而再將生成的代碼合并到當(dāng)前工程中。使用提示工程進(jìn)行低代碼編程的基本流程如下圖所示。

chatgpt開發(fā)代碼_智慧課堂的理論思考和實(shí)踐_html網(wǎng)易云音樂代碼

圖:借助提示工程實(shí)現(xiàn)低代碼編程的基本流程示意圖

可以說提示工程已經(jīng)成為了一種新型的平民化編程語言,借助于大語言模型的能力,可以低成本的實(shí)現(xiàn)代碼的生成。類似于 , Self- 這類產(chǎn)品,則是直接基于結(jié)構(gòu)化的 來驅(qū)動(dòng) GPT 實(shí)現(xiàn)自動(dòng)任務(wù)調(diào)度。 使用 GPT-4 生成、優(yōu)先排序和執(zhí)行任務(wù),使用插件進(jìn)行互聯(lián)網(wǎng)瀏覽和其他訪問操作。它使用外部內(nèi)存來跟蹤自己正在做什么并提供上下文,這使得它能夠評估自己的情況、生成新任務(wù)或自我糾正,并將新任務(wù)添加到隊(duì)列中,然后對其進(jìn)行優(yōu)先排序,具體的流程如下圖所示。

html網(wǎng)易云音樂代碼_智慧課堂的理論思考和實(shí)踐_chatgpt開發(fā)代碼

編程語言的平民化

我認(rèn)為,以 GPT 為代表的大模型服務(wù)必將改變未來所有產(chǎn)品的構(gòu)建思路和用戶使用方式,LLM 也將成為新一代的互聯(lián)網(wǎng)基礎(chǔ)設(shè)施。借助于生成式 AI 的能力,可以顯著的改善低代碼產(chǎn)品的可用性和易用性問題,并且讓軟件開發(fā)的過程更加簡單且富有趣味性。

同時(shí)也不得不讓我們重新思考低代碼產(chǎn)品的設(shè)計(jì)與構(gòu)建過程,因?yàn)?GPT 為代表的這類生成式 AI 在代碼編寫方面尤為擅長,它將顯著的提升編程語言的平民化速度。相較于編程語言,自然語言具有更高的容錯(cuò)性,而傳統(tǒng)的代碼編程則非常依賴于精準(zhǔn)的使用編程語法。在 中,你甚至可以利用偽代碼進(jìn)行編程。

智慧課堂的理論思考和實(shí)踐_chatgpt開發(fā)代碼_html網(wǎng)易云音樂代碼

圖:使用 進(jìn)行偽代碼編程

對未來的思考

對于低代碼產(chǎn)品而言,私有協(xié)議和復(fù)雜的 DSL 設(shè)計(jì)會(huì)導(dǎo)致系統(tǒng)的可擴(kuò)展性變得越發(fā)艱難,且難以利用社區(qū)龐大的開源代碼資產(chǎn)。而 GPT 這類大語言模型利用了數(shù)量龐大的開源數(shù)據(jù)集進(jìn)行訓(xùn)練,在生成主流編程語言代碼方面具比一般程序員更強(qiáng)的編程能力,如果能夠?qū)?LLM 的能力與低代碼的能力相結(jié)合,將會(huì)極大的降低軟件系統(tǒng)的開發(fā)成本。因此,系統(tǒng)的設(shè)計(jì)需要考慮主流的社區(qū)生態(tài)和方案chatgpt開發(fā)代碼,否則將很難具有持續(xù)性。因此,更加明智的選擇是擁抱開源社區(qū)的主流生態(tài),最大化的利用開源資產(chǎn)和公司內(nèi)部資產(chǎn)的結(jié)合來提升產(chǎn)品的功能和體驗(yàn)。

此外,借助于大語言模型能力的能力chatgpt開發(fā)代碼,我們也需要重新思考軟件交互界面的設(shè)計(jì),自然語言界面將會(huì)成為新的人機(jī)交互的必備界面。對于低代碼產(chǎn)品的構(gòu)建而言,過度的可視化交互邏輯反而會(huì)增加系統(tǒng)的復(fù)雜度,諸如 這類低代碼產(chǎn)品也在越來越強(qiáng)調(diào)邏輯表達(dá)的靈活性,某些情況下圖形界面并不比少量的表達(dá)式代碼更高效。對于產(chǎn)品構(gòu)建而言,需要找準(zhǔn)目標(biāo)用戶,為用戶提供更加符合直覺和心智的產(chǎn)品。

最后,以 為代表的生成式 AI 可以大大提高信息處理和決策的效率,將會(huì)對我們對工作和生活帶來深刻的影響,身處其中,我們需要不斷探索和應(yīng)用這些新的變化。

關(guān)于本文

免責(zé)聲明:本文系轉(zhuǎn)載,版權(quán)歸原作者所有;旨在傳遞信息,不代表本站的觀點(diǎn)和立場和對其真實(shí)性負(fù)責(zé)。如需轉(zhuǎn)載,請聯(lián)系原作者。如果來源標(biāo)注有誤或侵犯了您的合法權(quán)益或者其他問題不想在本站發(fā)布,來信即刪。