【玩转腾讯混元大模型】怎么说?我用混元AI大模型开发了个IDEA插件
前言
halo 我是楊不易呀,在混元大模型內(nèi)測階段就已經(jīng)體驗了一番當時打開頁面的時候靈感模塊讓我大吃一驚這么多角色模型真的太屌了,隨后我立馬進行了代碼處理水平和上下文的效果結(jié)果一般般但是到如今混元大模型代碼處理水平提升超過 20%,代碼處理效果在實測中高于ChatGPT 6.34% HumanEval 的公開測試集指標顯示,ta已超過Starcoder、Codellama等業(yè)界頭部開源代碼大模型。騰訊混元大模型現(xiàn)在正式全部開發(fā),發(fā)起申請即可,在混元大模型內(nèi)測階段我就已經(jīng)在使用接下來我們迎接代碼能力全面升級的混元大模型!
我將以下三個方向來測試混元大模型的代碼能力和上下文的能力并且最后進行測試使用混元大模型開發(fā)一個 IDEA 的插件
- 前端(Vue.js)問題
- 后端(Java)問題
- 數(shù)據(jù)庫(MySQL)問題
背景介紹
官方給出的混元AI擁有以下能力
多輪對話
具備上下文理解和長文記憶能力,流暢完成各專業(yè)領域的多輪問答
內(nèi)容創(chuàng)作
支持文學創(chuàng)作、文本摘要、角色扮演能力、流暢、規(guī)范、中立、客觀
邏輯推理
準確理解用戶意圖基于輸入數(shù)據(jù)或信息進行推理、分析
知識增強
有效解決事實性、時效性問題、提升內(nèi)容生成效果
支持文字生成圖像能力輸入指令即可將奇思妙想變成圖畫
混元簡單的介紹了自己擁有的能力,簡單的說就是我可以完美的幫助到你盡可能給出專業(yè)且全面的回答,接下來我們主要的就是 體驗騰訊混元大模型代碼能力
混元大模型對話頁面
您好,感謝您參加了騰訊混元大模型征文活動:https://cloud.tencent.com/developer/article/2372183,我們收到您的投稿啦,經(jīng)評審團審核,給出的反饋意見如下,辛苦您修改優(yōu)化完成之后,就可以發(fā)布到社區(qū)啦:[抱拳]
1、整體蠻好的,建議標題可以改一下,目前太長了、全文需要統(tǒng)一標點符號
2、申請步驟可以考慮去掉,目前已經(jīng)開放,無需申請了
3、建議要不要分開成兩篇發(fā)布,一篇是體驗和評測;一篇是利用混元開發(fā)了一個插件。不過第二篇篇幅有點短,字有點少,行文格式需要優(yōu)化,僅供參考~
4、截圖不太清晰,建議換成清晰度高的截圖
體驗代碼能力
我這里列舉了不同的代碼需求看看混元大模型提升了百分之二十的強悍之處!!!!
在測試之前我們給他設置一個角色
prompt: 現(xiàn)在你是一位前端開發(fā)工程師
前端(Vue.js)問題:
一、 Vue組件創(chuàng)建:創(chuàng)建一個Vue.js組件,顯示一個簡單的待辦事項列表.
可以看到我的 prompt 非常簡單混元完美的輸出了需求代碼,但是還是丟失了一些基礎結(jié)構(gòu),無傷大雅我們只需要其中重要的代碼即可
prompt: 幫我實現(xiàn)vue組件創(chuàng)建:創(chuàng)建一個vuejs組件,顯示一個簡單的待辦事項列表。
在最底部混元將代碼實現(xiàn)完畢后逐步解釋了代碼的作用并且主動添加了樣式的需求非常人性化
接下來我們測試看看,我不會誒咋辦丟給混元喊他教我如何搭建 vue 腳手架,正好體驗一下混元的表達能力
prompt: 如何創(chuàng)建一個 vue 的腳手架用來測試代碼案例?
混元將搭建 vue 腳手架的步驟詳細輸出了非常棒接下來我們跟著操作一下吧
完美的創(chuàng)建了 vue 腳手架項目,接下來我們繼續(xù)上面的代碼測試操作
非常完美的實現(xiàn)并且主動添加了樣式由此可見混元模型的基本代碼能沒有什么問題切菜一樣的簡單
二、條件渲染:編寫Vue代碼,根據(jù)選擇不同的按鈕條件渲染組件或元素
接下來我們提一個難一點的難度上升半顆心,剛剛好來測試一下上下文的能力
需求是接著上面的任務列表代碼來實現(xiàn)不同的按鈕根據(jù)條件渲染不同的組件元素
prompt: 接著上面 待辦事項列表,實現(xiàn)根據(jù)選擇不同的按鈕條件渲染組件或元素
可以看到上面我們隔了一段對話混元還是可以識別到我們想要說的是什么代碼上下文還是非常不錯的
我們只是簡單的描述了一下需求混元就將需求詳細化了,并且還把按鈕繼續(xù)美化了一番待會驚艷你
代碼已經(jīng)完美的輸出,我們來測試看看
怎么說? 是不是有哪個味道了接下里點擊切換列表看看
震驚,實現(xiàn)的非常完美我都沒出現(xiàn)過報錯信息一條龍服務非常棒!
三、動畫效果:使用Vue.js創(chuàng)建簡單的過渡和動畫效果。
需求 接著上面的任務列表進行添加動畫效果
prompt: 接著上面的任務列表進行添加動畫效果
和上面操作一樣穩(wěn)定發(fā)揮解釋了代碼示例是干啥的,我們繼續(xù)來看看效果
可以看到我們的過度動畫已經(jīng)實現(xiàn)了,只是感覺有點別扭,剛剛好我們丟給混元大模型來修復
prompt: 我希望 暫無待辦事項 進行固定定位在列表的中間
實際上也就是修改了這個地方,在.container元素添加了position: relative 樣式遵守子絕父相的模式來實現(xiàn)
效果展示查看
可以看到完美實現(xiàn)了我描述的需求,可以看出上下文的能力可代碼能力都非常的穩(wěn)定
接下來我們測試最后一個前端問題理論問題
四、組件通信:如何在Vue組件之間進行通信和數(shù)據(jù)傳遞?
需求 在工作當中我們肯定有需要組件之間的通信和數(shù)據(jù)傳遞那么該如何實現(xiàn),丟給混元大模型給我們解惑一二
prompt: 組件通信:如何在Vue組件之間進行通信和數(shù)據(jù)傳遞
可以看到混元大模型以三點描述了我們應該如何操作去實現(xiàn)我們的需求,我們還可以繼續(xù)請教大模型幫助我們進行代碼的實現(xiàn)出來
prompt: 可以幫我把以上三種方法用代碼案例的形式寫出來嗎?
輸出的非常快,示例展示了如何使用props、emit、事件總線和 refs在Vue.js組件之間進行通信和數(shù)據(jù)傳遞
后端(Java)問題:
在開始之前我們還是需要設置一個角色: 現(xiàn)在你是一位高級 Java 開發(fā)工程師
一、 RESTful API創(chuàng)建:編寫Java代碼創(chuàng)建一個RESTful API,用于獲取和更新數(shù)據(jù)。
需求: 用于測試 Java 代碼的編寫能力使用RESTful 風格來獲取和更新數(shù)據(jù)
prompt: RESTful API創(chuàng)建:編寫Java代碼創(chuàng)建一個RESTful API,用于獲取和更新數(shù)據(jù)
可以看到非常完美的把如何創(chuàng)建項目的步驟輸出出來,并且使用RESTfulAPi 編寫了查詢和更新接口
二、異常處理:在Java后端代碼中如何處理異常情況?
需求 需要統(tǒng)一控制全局異常并且自定義返回格式,在Java后端代碼中如何處理異常情況
prompt: 需要統(tǒng)一控制全局異常并且自定義返回格式,在Java后端代碼中如何處理異常情況
混元大模型輸出的很快,分為了四點來講述包涵了測試代碼非常的高效率直接復制進去就可以用了
三、日志記錄:如何實現(xiàn)日志記錄以便于故障排查和監(jiān)控?
需求: 幫我實現(xiàn)在 Java 當中日志記錄便于故障排查和監(jiān)控
混元大模型已經(jīng)高效率輸出出來了,非常的快跟著一步步來效果完美實現(xiàn)
四、數(shù)據(jù)庫連接:如何在Java中連接到MySQL數(shù)據(jù)庫并執(zhí)行查詢操作?
需求: 不使用 ORM 框架讓混元大模型來進行生成Java連接到MySQL數(shù)據(jù)庫的代碼操作
prompt: 如何在Java中連接到MySQL數(shù)據(jù)庫并執(zhí)行查詢操作
可以看到上面輸出的代碼示例展示了如何在Java中連接到MySQL數(shù)據(jù)庫并執(zhí)行查詢操作,從加載驅(qū)動到結(jié)果整體來說這個示例代碼是簡單且易于理解的,并且完成了我們需要的執(zhí)行查詢操作非常不錯.
五、部署和擴展:解釋如何將Java后端應用程序部署到生產(chǎn)環(huán)境,并實現(xiàn)水平擴展
需求: 絕大多數(shù)的 Java 全棧開發(fā)在公司都是需要自己去部署服務到線上的那么應該如何做呢? 我們來喊混元大模型給我們說說~
prompt: 解釋如何將Java后端應用程序部署到生產(chǎn)環(huán)境,并實現(xiàn)水平擴展
可以看到混元大模型將思路全部說出來了,我們只需要跟著來即可,接下來我們實戰(zhàn)看看讓混元幫我們部署
prompt2 : 我需要部署一個 SpringBoot 單體的項目在 linux 服務器上面應該如何操作?
我們可以明顯的看到混元大模型的對話能力已經(jīng)很強了準備服務器購買服務器都教你了(需要購買服務器的同學前往騰訊云云服務器),再到打包、上傳到服務器、接著啟動部署命令,并且也考慮到了服務發(fā)生故障時自動重啟還是非常棒的
數(shù)據(jù)庫(MySQL)問題:
角色設置: 現(xiàn)在你是一位在數(shù)據(jù)庫領域多年的DBA
一、編寫出一個學生表、老師表、班級表的 SQL
需求: 簡單的描述重點編寫出一個學生表、老師表、班級表的 SQL
prompt: 編寫出一個學生表、老師表、班級表的 SQL
可以看到混元大模型輸出了三個表結(jié)構(gòu)的創(chuàng)建并且賦予了基本的字段還是很棒的非常絲滑,接下來我們繼續(xù)
prompt: 我不要表結(jié)構(gòu)我需要查詢語句
到這里我有點驚訝,有點夸張了我都沒說要關聯(lián)結(jié)果給我關聯(lián)了默認了表結(jié)構(gòu)之間的邏輯,這對話能力理解能力超級強了.
二、數(shù)據(jù)插入:如何將數(shù)據(jù)插入到MySQL表中?
需求: 考驗混元大模型的理解和 sql 代碼能力看看是否可以
prompt: 幫我寫一個 SQL 給每個班級里面新增不同的學生數(shù)據(jù)
ok 非常的正確,并且給出了 SQL 語句的解釋插入6條學生數(shù)據(jù),每個班級中都有2名學生.到這里我已經(jīng)覺得沒必要去測試了混元大模型已經(jīng)都具備了代碼能力確實強橫.
三、更新數(shù)據(jù):如何使用SQL更新數(shù)據(jù)庫表中的數(shù)據(jù)?
需求: 看看更新的能力是否一樣的精準輸出
prompt: 更新 Female(女性)的數(shù)據(jù)分班到 3 班并且需要大于十八歲
很準確,我沒有進行指定哪個表混元大模型默認識別到了我的意思想法
四、索引優(yōu)化:如何為數(shù)據(jù)庫表中的字段創(chuàng)建索引以提高查詢性能?
需求: 在公司當中肯定存在索引優(yōu)化的場景,那么我們就模擬一下 2 百萬的數(shù)據(jù)問問混元應該如何提高查詢性能?
prompt: 假如students表有2百萬的數(shù)據(jù),索引優(yōu)化:如何為數(shù)據(jù)庫表中的字段創(chuàng)建索引以提高查詢性能?
混元給出了解決思路以及準對我們的表定制了一個索引優(yōu)化方案,所以以后我們可以直接把 sql 丟進去問就行了.
我再來反駁一下考驗混元大模型對輸出的方案是否堅定
prompt: 操作這些2百萬的數(shù)據(jù)就可以提高了嘛?
提供了一些常見的優(yōu)化方案在程序當中處理
五、備份和還原:如何備份和還原MySQL數(shù)據(jù)庫?
需求: 在公司當中數(shù)據(jù)是非常重要的那么我們也來問問混元該如何操作
prompt: 備份和還原:如何備份和還原MySQL數(shù)據(jù)庫?
不負眾望很穩(wěn),輸出來的東西質(zhì)量很高從使用mysqldump工具進行備份和還原還介紹了一個圖形化界面形式的管理工具進行備份還原,我感覺還是非常不錯的會舉一反三很強大.那么到這里我們的測試體檢就結(jié)束啦!
接下來我們就進行零基礎項目實戰(zhàn)基于混元大模型開發(fā)一個 IDEA 插件
零基礎項目實戰(zhàn)基于混元大模型開發(fā)一個 IDEA 插件
??注意: 這里說的零基礎是 IDEA 插件的零基礎而不是對 Java 體系的零基礎注意分辨,本次使用的項目構(gòu)建工具是 gradle 不是 maven 哦那么開始基于混元大模型開發(fā)一個簡單的插件吧
向混元設置角色并且輸出需求: 你現(xiàn)在是一名高級Java開發(fā)。我想要編寫一個intellij idea的插件,功能是彈出提示框,請寫出完整的代碼步驟給我
可以看到混元輸出了五個步驟并且輸出了實現(xiàn)案例,代碼質(zhì)量也非常的高可以看出來混元的基礎代碼能力已經(jīng)爐火純青
- 創(chuàng)建一個新的IntelliJ Platform插件項目,選擇插件 JDK 版本隨意
如果你沒安裝 gradle 那么 idea 會提示你安裝因為它是使用 gradle 進行構(gòu)建的,我這里之前就已經(jīng)安裝過 gradle
那么整體項目如下:
- 在src/main/java目錄下創(chuàng)建一個名為MyPopupAction的類,繼承自AnAction
- 在MyPopupAction類中重寫actionPerformed方法,用于顯示提示框。
- 在resources/META-INF/plugin.xml文件中配置插件的信息和操作
跟著混元大模型步驟我們已經(jīng)完成了并且沒報任何錯誤,那么我們開始編譯啟動起來吧,找到 RunPlugin 運行
如果你之前已經(jīng)安裝過那么會很快就編譯運行完成,沒有則需要等待片刻它會下一個 2022 版本的 idea 用于測試插件
成功打開測試 idea 隨便進去一個項目就行
進去之后直接給我報錯了,class 找不到,路徑什么的的都一樣,后面我貼給混元,混元給出了答案
我們的代碼寫的是 Java 不是 kotlin 所以我們的包要是 Java 編譯
那么修改完畢后,我們再次啟動插件看看是否可以彈出框
點擊 File 下我們自定義的菜單欄按鈕 Show popup
總結(jié): 可以看到我們一步步的跟著混元步驟,并且出現(xiàn)錯誤我們直接錯誤丟給混元讓它給解決
基于上面的小 demo 實戰(zhàn)可以看到混元成長的速度非常快,現(xiàn)在的代碼能力吊打之前的,那么接下來我們進階需求
進階需求
需求 我需要開發(fā)一個簡單的插件,選中代碼塊進行截圖并且粘貼在剪切板上
prompt: 你現(xiàn)在是一名高級Java開發(fā)。我想要編寫一個intellij idea的插件,功能是選中某個代碼塊進行截圖到電腦的剪切板當中,如何做呢?
可以看到這張圖片里面的代碼步驟,非常的詳細,從安裝 idea 開發(fā)工具到項目的創(chuàng)建以及編寫插件代碼的實現(xiàn)
我根據(jù)前面的四步搭建好了基礎架構(gòu)非常的簡單,和前面一樣文件夾改成 Java 編譯 Java 代碼
然后跟著混元的步驟創(chuàng)建一個CodeSnippetToClipboardAction 插件類繼承AnAction
繼承后我們重寫actionPerformed 方法,在當中編寫消息提示框來測試是否搭建成功
actionPerformed: 表示執(zhí)行的操作,也就是我們配置好插件菜單按鈕去觸發(fā)的時候他會執(zhí)行這個方法
/**
* 選中文本截圖
*
* @author 楊不易呀
* Create By 2023/12/30
*/
public class CodeSnippetToClipboardAction extends AnAction {
@Override
public void actionPerformed(AnActionEvent e) {
Messages.showInfoMessage("測試是否成功執(zhí)行-楊不易呀~", "提示");
}
}
鼠標移動到類名稱上去可以看到?jīng)]有注冊 plugin.xml,沒有進行使用,那么我們直接 atl + enter 就會彈出注冊 plugin.xml
只需要輸入名稱、描述然后菜單按鈕放在哪個按鈕組當中我這里就放在編輯當中
然后打開 plugin.xml 查看是否注冊成功
可以看到為我們注冊了一個操作(action)下面詳細介紹一下
-
id:操作的唯一標識符。在這個例子中,它是CodeSnippetToClipboardAction2 -
class:操作的類名意味著這個操作將由CodeSnippetToClipboardAction2的類處理 -
text:操作在菜單或工具欄上顯示的文本 -
description:操作的描述 -
<add-to-group>:這個標簽表示將操作添加到一個指定的組中anchor屬性指定了操作在組中的位置
注冊執(zhí)行器在 IntelliJ IDEA 的菜單或工具欄上添加一個名為 代碼片段截圖 的操作當用戶點擊這個操作時將調(diào)用 CodeSnippetToClipboardAction2 類的處理方法
測試插件
運行插件打開了一個新的ldea程序在這里測試我們寫的插件
我們注冊了插件按鈕在edit當中直接找到我們自己的插件即可
非常不錯成功測試成功沒什么毛病,接下來我們繼續(xù)跟著混元的代碼案例走,完善 actionPerformed方法內(nèi)容
直接把混元輸出的代碼全部復制進來,這就不用我操作了吧
createImage: 用于創(chuàng)建圖片并且將我們選中的文本進行渲染在圖片當中
copyImageToClipboard: 用于將創(chuàng)建好的圖片復制在電腦的剪切板當中
代碼完成度非常的高,從創(chuàng)建項目到項目代碼的編寫再到運行和測試插件的步驟非常棒,但還是有點代碼問題,報錯沒有這個類
沒有這個類
不過無傷大雅直接丟給混元大模型來操作,盡可能的詳細化錯誤我這里直接貼這段代碼當中哪個代碼有問題
混元輸出了一個代碼案例但是還是有點小問題繼續(xù)問詳細化一點
我們也不知道 image 是什么依賴 直接問
prompt : Image ti = new Image(out.toByteArray()); 的 Image引入的什么依賴?
還是有問題繼續(xù)細化
prompt: 使用之后報錯 'Image' is abstract; cannot be instantiated
代碼不報錯了,我們進行測試一下效果,開啟新的 idea 用于測試
點擊新的 IDEA 當中的 Edit 菜單欄,我們是配置在這里的
復制到我們電腦的剪切板當中的了,非常 NICE,非常的絲滑!!! 沒有混元我多多少少有點汗流浹背了~
總結(jié)
這次的體驗混元大模型我是非常的舒服的,我們使用了前端 Vue.js 領域的問題、后端 Java 領域的問題、數(shù)據(jù)庫 Mysql 領域的問題進行深度探究代碼能力和上下文能力以及表達能力,目前測試出來是非常的好的效率非常高我沒有吹捧啊,最后結(jié)合我們的一個項目實戰(zhàn) 我也是零基礎開發(fā) IDEA 插件 的我就是跟著混元大模型輸出的教程步驟一步步來的盡管中途有些錯誤但是無傷大雅,把錯誤全部提交給混元大模型去解析即可最終就實現(xiàn)了我們的一個選中代碼塊進行截圖到剪切板的那么一個功能還是很有成就感的哈哈哈雖然是 AI 搞的~
總的來說混元AI大模型是AI領域的一個重要進步,它們?yōu)樘幚韽碗s的語言任務提供了強大的工具,但同時也帶來了一系列的挑戰(zhàn)和問題需要解決
我早在十月份我就已經(jīng)在用了在工作當中我使用率是非常的高的主要是免費功能效率還這么高,各位客官還不來試試 騰訊云混元 AI大模型 ?
最后
本期結(jié)束咱們下次再見??~
?? 關注我不迷路,如果本篇文章對你有所幫助,或者你有什么疑問,歡迎在評論區(qū)留言,我一般看到都會回復的。大家點贊支持一下喲~ ??
總結(jié)
以上是生活随笔為你收集整理的【玩转腾讯混元大模型】怎么说?我用混元AI大模型开发了个IDEA插件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python 潮流周刊第 33 期(摘要
- 下一篇: AIO+BIO+NIO+同步+异步+阻塞