簡介: 通義靈碼在企業(yè)版里還引入了一個超酷的新技能:RAG(Retrieval-Augmented Generation)檢索增強(qiáng)生成的能力,本文就跟大家分享下企業(yè)知識庫能幫開發(fā)者做些什么。
大家好,我是通義靈碼,你的智能編程助手!最近我又升級啦,智能問答功能全面升級至 Qwen2,新版本在各個方面的性能和準(zhǔn)確性都得到了顯著提升。此外,行間代碼補(bǔ)全效果也全面優(yōu)化,多種編程語言生成性能及準(zhǔn)確性大幅提升,如前端、Java、Go、Python、C++ 等。此外,靈碼新增代碼提交信息(Commit Message)生成,支持 Visual Studio 端。
我還在企業(yè)版里還引入了一個超酷的新技能:RAG(Retrieval-Augmented Generation)檢索增強(qiáng)生成的能力,今天就跟大家分享下企業(yè)知識庫能幫開發(fā)者做些什么。
可能有些朋友還不太明白這是啥,別急,我來通俗解釋一下。想象一下,你有個超級聰明的研發(fā)助手,它除了通過大語言模型,記得自己學(xué)過海量知識外,還能隨時外掛一個更懂你或者企業(yè)的“百科全書”知識庫。檢索增強(qiáng)生成能力能夠即時訪問、引用深入的知識體系,讓我(通義靈碼)為你提供更加精準(zhǔn)、全面的研發(fā)問答和智能編碼服務(wù),避免模型幻覺哦~
說完這么多概念,你是不是迫不及待的想試試呢?本期就從通義靈碼企業(yè)知識庫的問答,帶你一起感受下。Let's go。
通義靈碼官網(wǎng):https://tongyi.aliyun.com/lingma
1. 基于知識庫的內(nèi)容,幫你精準(zhǔn)回答問題
1.1 新人入職場景
假如你是一位入職新人,我們可以使用通義靈碼企業(yè)知識庫的問答能力,更快速地學(xué)習(xí)企業(yè)編碼規(guī)范、安全規(guī)范、環(huán)境準(zhǔn)備等。
第一步:需要通義靈碼的企業(yè)管理員,在通義靈碼的知識庫管理后臺添加相關(guān)知識文檔。
第二步:在通義靈碼插件端的問答面板上,就可以直接提問咨詢了。舉例來說,在問答輸入框,輸入:#team docs 這段代碼是否符合代碼規(guī)范,幫我優(yōu)化
這個時候,通義靈碼就給你召回相關(guān)文檔片段(原文檔切塊后片段),并針對文檔的內(nèi)容進(jìn)行總結(jié)回答。這快準(zhǔn)狠的效率是不是比你肉眼查閱、學(xué)習(xí)快多了。
2. 基于知識庫的內(nèi)容,幫我精準(zhǔn)生成代碼
2.1 根據(jù)組件庫文檔生成代碼
在軟件開發(fā),尤其是前端開發(fā)中,我們需要從一個產(chǎn)品需求開始,完成具體的產(chǎn)品界面的實(shí)現(xiàn),這個過程,面臨將抽象的需求文檔,轉(zhuǎn)化為具體、可用的產(chǎn)品界面的挑戰(zhàn)。這個過程,不僅需要深刻理解需求,還要熟練掌握所選技術(shù)棧的組件庫,同時還要確保開發(fā)的速度和代碼質(zhì)量。使用通義靈碼企業(yè)知識庫,可以讓這個過程事半功倍。
首先,通過上傳關(guān)鍵組件庫的幫助文檔到通義靈碼的知識管理中。然后,在遇到具體需求時,在通義靈碼問答區(qū)域通過 #team docs 調(diào)用企業(yè)知識庫,快速獲得咱們自己技術(shù)棧的代碼建議和示例,加速開發(fā)流程。
下面,我們通過一個例子,如何基于企業(yè)知識庫,快速實(shí)現(xiàn)“顯示未讀消息計數(shù)”的需求:
- 理解需求:以“顯示未讀消息數(shù)量”為例,識別關(guān)鍵組件為數(shù)字顯示單元(可能含圖標(biāo)指示)及數(shù)據(jù)更新邏輯。
- 組件選擇:在靈碼知識庫中,查找適用的組件,如 badge 組件,用于高亮顯示未讀消息數(shù)量,利用 Vue 的數(shù)據(jù)綁定機(jī)制實(shí)現(xiàn)數(shù)據(jù)動態(tài)更新。
- 代碼生成:直接在通義靈碼中,以自然語言形式表述需求,如:“創(chuàng)建 Element-UI 的 Badge 組件,展示未讀消息數(shù)量,并隨數(shù)據(jù)變動實(shí)時刷新。”通義靈碼將理解這個需求,快速生成代碼框架,后續(xù)做簡單調(diào)整,以適應(yīng)設(shè)計細(xì)節(jié)。
第一步:上傳文檔到知識庫
為了豐富你的智能化開發(fā)資源庫,請登錄通義靈碼企業(yè)管理后臺,在“知識管理”區(qū)域下點(diǎn)擊“文檔”,上傳關(guān)鍵的前端組件文檔。以《Badge.md[1]》為例,此文檔聚焦于使用 React,結(jié)合自研組件庫開發(fā)的右上角圓形數(shù)字徽章組件,內(nèi)容全面,包括詳細(xì)的使用教程、實(shí)戰(zhàn)代碼示例以及 API 接口說明。
備注:請參考示例文檔鏈接以深入了解查閱示例文檔[2]。
文檔處理與配置:上傳完成后,系統(tǒng)將自動處理這些文檔,當(dāng)狀態(tài)顯示為“已完成”,表明你的知識庫已經(jīng)準(zhǔn)備就緒,在列表右上角點(diǎn)擊“開啟檢索增強(qiáng)”按鈕,即可體驗(yàn)。
第二步:智能化實(shí)現(xiàn),需求轉(zhuǎn)代碼
當(dāng)通義靈碼企業(yè)管理員已經(jīng)提前在靈碼企業(yè)知識庫,上傳好前端組件文檔后,我們就可以上手了。你可以在 VSCode、JetBrains IDEs、Visual Studio 這些 IDE 上安裝通義靈碼插件,如未安裝,參考文檔[3]
我們再看下需求:“顯示未讀消息數(shù)量”,即為消息圖標(biāo)添上計數(shù)徽標(biāo)。
于是,你可以在通義靈碼問答面板提問:#team docs 如何給圖標(biāo)添加數(shù)字徽標(biāo)?
備注:必須使用 #team docs 標(biāo)簽確保調(diào)用企業(yè)內(nèi)部知識庫資源
提交問題后,通義靈碼將迅速根據(jù)你的 Badge.md 組件文檔,提供精確的代碼片段和使用指南,確保代碼既符合團(tuán)隊編碼規(guī)范,又能快速高效實(shí)現(xiàn)功能。
以下是通義靈碼從文檔中提取的一個使用 Badge 組件的例子,它展示了如何在 React 中使用 @teamix/ui 庫的 Badge 組件來給圖標(biāo)添加數(shù)字徽標(biāo):
第三步:如何應(yīng)對需求變更
如果你還想繼續(xù)變更需求,通義靈碼也能幫忙。如新需求“只需標(biāo)記未讀而不展示具體數(shù)字”,我們就繼續(xù)基于 #team docs 來提問,輸入:#team docs 能否將徽標(biāo)改為小紅點(diǎn)而非數(shù)字
通義靈碼會立即根據(jù)你的新需求和已有的知識庫內(nèi)容,提供 API 調(diào)用調(diào)整的建議及相應(yīng)的代碼示例,確保你能迅速適應(yīng)需求變動,保持開發(fā)的靈活性和效率。
我們來看看通義靈碼給的代碼建議與示例:
2.2 根據(jù)接口文檔生成示例代碼
程度員在開發(fā)程序的過程中,需要調(diào)用相應(yīng)的接口,但苦于找不到幫助文檔和示例代碼,特別是一些內(nèi)部的非通用的接口實(shí)現(xiàn)。使用通義靈碼,可以將知識檢索增強(qiáng)生成能力,應(yīng)用到程序員高頻使用的 API 調(diào)用場景中。
首先,上傳接口文檔至企業(yè)知識庫,如,“OpenAI-對話 Chat.md”文檔如,包含了接口的調(diào)用方式、請求參數(shù)、返回參數(shù)等。這樣,通義靈碼就懂得了該文檔中描述的知識。
接下來,我們可以在通義靈碼問答區(qū)輸入:#team docs 根據(jù)openai對話chat請求和響應(yīng)體生成對應(yīng)的go語言示例
這時通義靈碼就給你召回相關(guān)文檔片段(原文檔切塊后片段)。
根據(jù)接口文檔,生成示例代碼如下:
package main import ( "bytes" "encoding/json" "fmt" "io/ioutil" "net/http" ) func main() { // OpenAI API endpoint apiEndpoint := "https://api.openai.com/v1/chat/completions" // API key apiKey := "YOUR_API_KEY" // Request body requestBody := map[string]interface{}{ "model": "gpt-3.5-turbo", "messages": []map[string]interface{}{ {"role": "user", "content": "Hello!"}, }, } // Convert request body to JSON jsonBody, err := json.Marshal(requestBody) if err != nil { fmt.Println("Error marshaling request body:", err) return } // Create request req, err := http.NewRequest("POST", apiEndpoint, bytes.NewBuffer(jsonBody)) if err != nil { fmt.Println("Error creating request:", err) return } // Set headers req.Header.Set("Content-Type", "application/json") req.Header.Set("Authorization", "Bearer "+apiKey) // Send request client := &http.Client{} resp, err := client.Do(req) if err != nil { fmt.Println("Error sending request:", err) return } defer resp.Body.Close() // Read response body body, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Println("Error reading response body:", err) return } // Parse response body var response map[string]interface{} err = json.Unmarshal(body, &response) if err != nil { fmt.Println("Error parsing response body:", err) return } // Print response fmt.Println("Response:") fmt.Println(response) }
根據(jù)文檔名和接口名清晰的定義,可以從對話中召回對應(yīng)信息,并根據(jù)模型的推理能力生成不同語言的處理方式,以下為使用知識檢索增強(qiáng)前后的對比效果,是不是一目了然。
3. 基于知識庫的內(nèi)容,幫我優(yōu)化框選代碼
3.1 前端老舊工程代碼升級場景
前端技術(shù)領(lǐng)域發(fā)展特別快速,老舊項(xiàng)目的依賴庫版本升級,對于維持競爭力也至關(guān)重要。當(dāng)前端團(tuán)隊計劃將現(xiàn)有業(yè)務(wù)代碼從 React 15 升級至新版本 16.8 時,通過智能編碼工具可以顯著加速這一升級過程。以下是通過企業(yè)知識庫,在通義靈碼中,實(shí)現(xiàn)老舊工程代碼升級的詳細(xì)步驟。
第一步:構(gòu)建企業(yè)知識庫
首先,企業(yè)管理者將框架最新版本的編碼指南上傳至通義靈碼企業(yè)知識庫。比如,這份詳盡的表單組件使用說明文檔:表單組件文檔[4],為接下來的組件框架版本的升級提供權(quán)威指導(dǎo)和參考依據(jù)。
第二步:識別并準(zhǔn)備升級目標(biāo)代碼
手頭上恰好有一個基于 React 版本 15 的舊項(xiàng)目,這時,你需識別出待升級的代碼片段。例如,一個傳統(tǒng)的類組件寫法如下:
class Demo extends React.Component { handleSubmit= (values, errors) => { console.log('value & errors', values, errors); }; render() { return ( <Form style={{ width: '60%' }} {...formItemLayout} colon> </Form> ); } }
第三步:智能輔助代碼轉(zhuǎn)換
在編輯器里選中以上代碼片段,并在靈碼的問答面板提出問題:#team docs 轉(zhuǎn)換為符合新規(guī)范的React函數(shù)式組件寫法
第四步:自動完成代碼升級
通義靈碼將運(yùn)用其智能算法,基于 React 的新版函數(shù)式編程范式,自動將舊代碼重構(gòu)成更簡潔的函數(shù)組件。這一過程不僅顯著縮短了手動重構(gòu)的時間,還確保了代碼風(fēng)格與團(tuán)隊最新編碼標(biāo)準(zhǔn)的一致性,提升了代碼質(zhì)量和執(zhí)行效率。
通過企業(yè)知識庫檢索增強(qiáng),老舊工程代碼的升級過程變得高效且精確,前端團(tuán)隊得以以最小的投入,實(shí)現(xiàn)項(xiàng)目從舊框架到新框架的平穩(wěn)遷移。這樣的升級策略確保了代碼能夠緊跟技術(shù)發(fā)展趨勢,持續(xù)保持項(xiàng)目的行業(yè)競爭力和技術(shù)前沿地位。
3.2 代碼規(guī)范場景
代碼編寫好了,如果需要確定是否符合企業(yè)或業(yè)內(nèi)編碼規(guī)范,這時候你就可以上傳企業(yè)編程規(guī)范,例如:
參考資料:https://juejin.cn/post/7157594175846744071
框選同樣的代碼內(nèi)容,有檢索增強(qiáng),模型則會以知識庫召回的數(shù)據(jù)作為上下文,進(jìn)行輔助生成。效率和質(zhì)量也是立竿見影。
無檢索增強(qiáng)效果
有檢索增強(qiáng)效果
4. 如何開通和使用通義靈碼企業(yè)知識檢索增強(qiáng)?
首先,你必須是通義靈碼企業(yè)版的用戶,現(xiàn)在通義靈碼企業(yè)標(biāo)準(zhǔn)版有 30 天的免費(fèi)試用,立即開通和試用[5];
其次,你需要是企業(yè)版組織的管理員,即可開通企業(yè)知識庫管理了,立即開通[6]。
最后,開通好后,立即邀請開發(fā)者們,在問答區(qū)域喚起 #team docs 吧。
相關(guān)鏈接:
[1] Badge.md
[2] 查閱示例文檔
[3] 參考文檔
[4] 表單組件文檔
[5] 立即開通和試用
[6] 立即開通
點(diǎn)擊此處,體驗(yàn)通義靈碼新能力。