AI的殺手級應用會是一個“超級能幹的同事”!RAG會造就超級智慧麼?

正在输入代码……發表於2024-06-12

什麼是RAG技術

RAG是一種結合生成模型和檢索系統的技術。它透過檢索相關資訊並將其融入生成過程,使得模型不僅依賴內部訓練資料,還能利用外部資訊來提升回答的準確性和廣度。RAG技術的核心在於將大規模預訓練的語言模型與資訊檢索系統(如搜尋引擎或資料庫)有效結合,從而增強模型的知識庫和推理能力。大幅減輕模型幻覺,還顯著提升了生成模型的適應性和實用性。

如何運用RAG技術

近期一直使用的智慧程式設計助手CodeGeeX,新推出了上線聯網獲取資訊的功能!正是運用了RAG技術進一步提升在程式設計場景中的實用性和智慧水平。值得一提的是,聯網對話這一創新功能,目前在程式設計工具的同型別產品中,CodeGeeX目前是獨一無二的。下面我們就來一起看看運用RAG技術能為開發者帶來怎樣的價值,以及如何運用它來提升程式設計效率和問題解決的能力。

首先,開啟聯網獲取資訊的功能很簡單,就是在CodeGeeX外掛的側邊欄,勾選“聯網”這個按鈕,就可以了。在智慧問答的對話方塊中輸入你想要獲取的資訊,CodeGeeX就可以實時訪問網際網路,搜尋和獲取最新的程式設計資料和技術文件。

file

當然,這個前提是你已經在IDE的外掛市場中下載安裝了CodeGeeX外掛,並且登入使用側邊欄的智慧問答功能。

這意味著使用者在與CodeGeeX互動時,不再侷限於模型訓練時的知識庫,而是能夠獲得最新的程式設計知識、最新的庫和框架資訊以及解決方案。

用專案程式碼來測試聯網對話的應用

實測一、我們來測試一些例項,下面這張圖中,左側的回答使用了CodeGeeX的聯網對話功能,可以看到和右側沒有使用聯網的回答存在區別。

file

左側的回答中,建議使用nvm來管理Node.js的版本,並且給出了初始化和使用nvm的後續步驟。而右側回答的方法雖然也是正確的,但是在這個場景下,聯網後生成的內容確實更加實用,更加符合開發者的實際需求。

實測二、在下面這個使用LangChain實現多提示鏈(MultiPromptChain)的示例中,左側開啟聯網功能的回答和右側的回答,給出的示例程式碼有明顯的區別:

file

左側的回答詳細匯入了LangChain相關的多個模組,包括LangChain、OpenAI、BaseModel、ChatPromptTemplate、RunnableParallel、RunnablePassthrough和StrOutputParser。非常詳細的展示了LangChain的功能和配置選項,適合深入瞭解LangChain及多提示鏈功能,並且要完成複雜配置的需求。右側的回答非常簡潔,提供了一個快速入門LangChain的示例,適合想要快速上手LangChain實現基本功能的需求。

實測三、下面這張圖中,左側開啟聯網功能的回答和右側的回答,在如何使用MutationObserver監聽DOM元素中class屬性的變化上有一些顯著的區別。

file

左側回答的程式碼中使用了jQuery來繫結事件和選擇元素,是適用於依賴jQuery專案的方法,提供了一個自定義函式來實現更靈活的監聽。右側程式碼則使用了原生JavaScript,沒有依賴任何庫。從實際的開發工作中,兩種方法都是正確的,但是聯網後的回答更符合實際的開發需求。

從上面的例子中我們可以看到,開啟聯網後的智慧問答,生成的內容更加符合我們實際開發中的需求,可以更好的提高程式設計工作效率。

由此,我們聯想到更多聯網對話的應用場景

一、實時更新的庫、框架和工具

不僅僅是以上這些示例,程式設計技術日新月異,新的庫、框架和工具不斷湧現。例如,如何使用最新版本的庫?透過聯網功能,CodeGeeX能夠實時獲取最新的程式設計資源和技術文件,確保提供的建議和資訊始終是最新的和更準確的。
也可以透過聯網功能獲取各種程式語言和平臺的最新資料,無論是Python、JavaScript、Java,還是新的框架和工具,開發者都可以得到詳細的幫助和支援。

二、解決即時錯誤

開發者在程式設計過程中常常會遇到各種錯誤和問題。透過聯網功能,CodeGeeX可以實時搜尋網際網路,訪問程式設計社群(如Stack Overflow)、部落格和文件庫,提供詳細的解決步驟和程式碼示例。查詢相關的錯誤解決方案、除錯技巧和最佳實踐,獲取實時的程式碼建議、示例或最佳化方案。

三、學習新技術、提升技能

學習新語言或技術的開發者,CodeGeeX聯網對話功能,可以即時查詢和引用最新的API文件、技術規範和使用指南,幫助開發者快速找到所需的資訊,提高學習效率。對於希望提升技能的開發者,CodeGeeX可以提供最新的程式設計教程、線上課程、程式碼示例和最佳實踐,還可以成為答疑的好幫手。

希望CodeGeeX不斷最佳化和擴充套件聯網功能,成為開發者不可或缺的智慧程式設計助手。無論是初學者還是經驗豐富的開發者,都能透過這個功能獲得強有力的技術支援,使程式設計過程更加順暢和高效。

本文由部落格一文多發平臺 OpenWrite 釋出!

相關文章