最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

ChatGPT賦能低代碼開發(fā):打造智能應(yīng)用的雙重引擎

2023-08-30 22:29 作者:西安葡萄城  | 我要投稿

ChatGPT的functions函數(shù)使用方法

自從OPENAI發(fā)布了最新的GPT引擎gpt-3.5-turbo-0613之后,我就對它的functions參數(shù)很感興趣,利用GPT超強(qiáng)的語言理解能力,如果加上函數(shù)執(zhí)行,我們就可以讓AI不再是聊聊天、回答問題了,甚至能夠直接幫我們完成工作任務(wù)。剛好今天周末,不如就動手試試,看能否達(dá)到我所想的效果。

開始之前,我們先要看一下官方文檔,看看這個functions,是個什么神奇的參數(shù),只有搞清楚了它的作用和原理,我們才知道如何利用它。

這是官方對Function calling的介紹,我們可以看到,目前支持gpt-3.5-turbo-0613和gpt-4-0613兩種引擎。

?

再看看functions參數(shù)的格式和屬性,我們可以看到,這里我們向GPT定義了一個名為"get_current_weather"的函數(shù),并且在description中描述了這個函數(shù)的用途,在properties中,我們定義了兩個參數(shù),location和unit,這是向GPT表明,你如果調(diào)用這個函數(shù),需要向函數(shù)提供兩個參數(shù),并且對兩個參數(shù)都進(jìn)行了描述。

看懂了functions參數(shù),我們大概知道了原理,其實(shí)并不復(fù)雜,我們通過定義一系列函數(shù),告訴GPT函數(shù)是什么時候用,做什么用,需要什么參數(shù)才能用等,GPT會根據(jù)與用戶的聊天信息自行判斷是否要“執(zhí)行函數(shù)”。

????? 為什么要給執(zhí)行函數(shù)打上雙引號呢?事實(shí)上GPT肯定是不能直接執(zhí)行函數(shù)的,因?yàn)檫@只是個普通的HTTP請求,GPT也只是返回一個JSON格式的響應(yīng)信息,那該如何實(shí)現(xiàn)執(zhí)行函數(shù)的呢?

?

如何讓ChatGPT調(diào)用函數(shù)

要搞懂這個,我們還得看看GPT給我們返回的數(shù)據(jù)長什么樣子。

上面是一個正常的聊天回復(fù)信息,我們看到,message里面只有role和content兩個屬性,另外還新增了一個屬性 finish_reason ,當(dāng)它的值為“stop”,說明此次的對話無需執(zhí)行函數(shù),也說明GPT并沒有調(diào)用函數(shù)的打算,接下來我們看看GPT打算調(diào)用函數(shù)時,會返回什么?

我們發(fā)送“請問北京現(xiàn)在天氣怎么樣”給GPT,看它的回答。

?

這里可以明顯看到,finish_reason的值變成了“function_call”,開發(fā)人員通過判斷finish_reason的值,就可以知道GPT是否要調(diào)用函數(shù)。

這下豁然開朗了,我們通過回復(fù)的內(nèi)容,弄清楚GPT要調(diào)用什么函數(shù),然后拿到GPT幫我們獲取的參數(shù),直接執(zhí)行函數(shù)就可以了。

?

?

?

友情提示:下面的部分內(nèi)容會牽扯到本公司的低代碼產(chǎn)品活字格,為了減少各位的閱讀障礙,建議各位閱讀前可以先了解一下活字格:

https://www.grapecity.com.cn/solutions/huozige

使用ChatGPT嵌入活字格

數(shù)據(jù)庫表和前端設(shè)計(jì)

下面我們來給活字格裝上AI的翅膀,我們先打開活字格9.0的版本,新建一個“訂單數(shù)據(jù)表”,并填充模擬數(shù)據(jù),另外再建一張消息記錄表。

(訂單數(shù)據(jù)表)
(表字段)


然后新建一個頁面,制作一個簡單類似搜索的頁面,運(yùn)行看看效果。

(運(yùn)行效果)


這個頁面用來與用戶進(jìn)行自然語言交互,前端我們暫時做到這兒。

后端設(shè)計(jì)

接下來設(shè)計(jì)后端,把ChatGPT對接部分做好。

為了方便使用,我提前將GPT的API封裝成了插件,原理跟上面官方所說一致。

(封裝后的插件)


設(shè)置好KEY和消息數(shù)據(jù)以后,我們利用插件的自動化命令配置好需要ChatGPT的執(zhí)行的命令。

?

這里的每個命令都有一個描述,我們可以用自然語言告訴AI,什么時候該調(diào)用我,AI會自己決定調(diào)用哪一個命令,當(dāng)然光有命令還不行,我們還得讓AI提供參數(shù)給我們。


在參數(shù)的配置上,我們也有一個“參數(shù)說明”,也就是用來告訴GPT,這個參數(shù)是什么意思,GPT會根據(jù)用戶的信息,自己來歸納和推測參數(shù)內(nèi)容。

?

使用ChatGPT查詢訂單

好了,做到這兒,GPT后端部分也已經(jīng)配置好,現(xiàn)在我們模擬一個場景出來,例如我想讓GPT幫我們查詢訂單數(shù)據(jù),我們可以這樣定義:

首先定義一條命令如下,告訴GPT,這個命令是用來按條件查詢多個訂單數(shù)據(jù)。

(定義命令)


再給命令定義查詢訂單需要用到的一些關(guān)鍵參數(shù),有了這些信息,我們后面就可以實(shí)現(xiàn)查詢條件,從而根據(jù)條件篩選數(shù)據(jù)。

(參數(shù)定義)

?

?????? 判斷GPT返回的function_call.name是不是等于GetOrderData:? ?

(判斷function_call.name)


如果是,就把獲得的參數(shù)用來篩選數(shù)據(jù):

(篩選數(shù)據(jù))


最后把獲取到的數(shù)據(jù)返回給前端:

(數(shù)據(jù)返回前端)


最后我們在前端補(bǔ)充一個頁面,用來接收并顯示查詢返回的數(shù)據(jù)表中的數(shù)據(jù)。


最終實(shí)現(xiàn)的效果:

(查詢2023年6月的采購訂單數(shù)據(jù))


可以看到GPT準(zhǔn)確的理解了我們的意圖,并且調(diào)用了我們預(yù)設(shè)好的命令,還提供了我們需要的日期、訂單類型等參數(shù)。

通過這個簡單的例子,我們可以驗(yàn)證AI與活字格結(jié)合的可行性,那么我們除了查詢數(shù)據(jù),還能不能做點(diǎn)更復(fù)雜的事情呢?

?

使用ChatGPT顯示訂單內(nèi)容

所以接著我又做了另一個嘗試,讓AI根據(jù)我的要求找到某個訂單,并顯示該訂單內(nèi)容

這個嘗試,我加入了更多的參數(shù),由日期、訂單類型、負(fù)責(zé)人等,然后修改了邏輯,把命令放到前端頁面來執(zhí)行。

(前端命令設(shè)置)


這時候我們初步已經(jīng)學(xué)會怎么運(yùn)用GPT的能力,來為我們完成特定任務(wù)了,下面我將繼續(xù)完成一個更復(fù)雜、更實(shí)用的嘗試。

?

使用ChatGPT發(fā)送郵件

我想讓系統(tǒng)理解這樣一句話,并幫我執(zhí)行。

“我是喬布斯,請幫我找出2023年6月份馬斯克經(jīng)手采購iphone的訂單數(shù)據(jù),發(fā)送郵件給超哥,并寫一段話禮貌的催促他快點(diǎn)審核?!?/p>

我來幫大家理理,想要完成這個任務(wù),我們需要做些?

?

??讓AI知道我是誰;

??需要找出2023年6月1日到6月30日范圍內(nèi),負(fù)責(zé)人為"馬斯克"、訂單類型為"采購訂單"的數(shù)據(jù);

??將上面數(shù)據(jù)導(dǎo)出為Excel;

??找到超哥的郵箱,并將上面的數(shù)據(jù)作為附件;

??編寫一段話作為郵箱正文;

??尋找系統(tǒng)用戶中一個叫“超哥”的人,并拿到郵箱地址;

??將郵件發(fā)送出去并返回。

?

梳理清楚了,我們就開始做邏輯,同樣配置好命令和參數(shù)的描述


然后利用報表模塊,設(shè)計(jì)一個簡單的報表,綁定訂單數(shù)據(jù)庫

(報表模塊)


最后做一下導(dǎo)出Excel+發(fā)送郵件的命令

(命令執(zhí)行過程設(shè)計(jì))


總結(jié)

ChatGPT與活字格的結(jié)合為軟件設(shè)計(jì)帶來了巨大的潛力,并給開發(fā)者帶來了全新的思考和改變。AI的執(zhí)行任務(wù)能力和自然語言交互使軟件操作更加智能化和直觀化。開發(fā)者將專注于與AI的對話和數(shù)據(jù)分析目標(biāo)的設(shè)定,而無需擔(dān)心底層的技術(shù)細(xì)節(jié)。我們期待ChatGPT和活字格技術(shù)的不斷發(fā)展,推動低代碼開發(fā)向智能開發(fā)的創(chuàng)新和突破,讓我們迎接更加智能的軟件時代。


ChatGPT賦能低代碼開發(fā):打造智能應(yīng)用的雙重引擎的評論 (共 條)

分享到微博請遵守國家法律
乐清市| 沈阳市| 安阳县| 仁布县| 凤山县| 兴安县| 湖南省| 东明县| 天台县| 赤城县| 满洲里市| 当雄县| 沅江市| 三门峡市| 上犹县| 阜城县| 哈巴河县| 新泰市| 镇赉县| 屏东县| 华坪县| 鲁甸县| 桃园市| 云梦县| 句容市| 贡嘎县| 延津县| 巴塘县| 铁岭市| 赣榆县| 思南县| 芮城县| 深水埗区| 盐池县| 武宣县| 台东县| 通江县| 垣曲县| 琼中| 来凤县| 岳阳县|