大模型應(yīng)用開發(fā)的本質(zhì)——就是對提示詞的封裝 原創(chuàng)
“ 大模型就是大模型,它和具體的應(yīng)用場景無關(guān),唯一有關(guān)的就是提示詞?!?/strong>
關(guān)于大模型應(yīng)用開發(fā)有幾個不同的方向,但從本質(zhì)上來說大模型應(yīng)用開發(fā)就是在封裝提示詞;原因就在于從用戶的角度來說,提示詞是與大模型交互的唯一接口;因此也有人說提示詞就是針對大模型的編程語言。
下面我們以智能體為例,解釋說明一下為什么說大模型應(yīng)用開發(fā)就是在封裝提示詞;當(dāng)然,這句話并不是很準(zhǔn)確,更加準(zhǔn)確的說應(yīng)該是:
大模型應(yīng)用開發(fā)的核心是圍繞提示詞進行業(yè)務(wù)能力封裝,但提示詞只是應(yīng)用開發(fā)的底座。完整的大模型應(yīng)用開發(fā)還包括上下文管理、工具集成、結(jié)構(gòu)化輸出、狀態(tài)流程管理和性能優(yōu)化等工程化工作。

大模型應(yīng)用開發(fā)與提示詞封裝
開發(fā)一個智能體一般需要那幾個模塊?
首先要有大模型,提示詞,工具集,記憶,結(jié)構(gòu)化輸出,用戶輸入處理等;但如果我們仔細觀察或分析就會發(fā)現(xiàn),除了大模型和提示詞之外,其它所有功能處理的結(jié)果最終都是要帶入到提示詞中,原因就在于大模型只接收幾個固定輸入;而提示詞是大模型處理的基礎(chǔ),大模型的所有操作都是基于提示詞開始的。
工具集
在智能體開發(fā)中,如果需要使用外部工具,首先需要給大模型配置幾個工具集,也可以說是函數(shù);而形式即可以是本地的函數(shù),也可以是遠程的MCP服務(wù);通過函數(shù)簽名的方式告訴大模型這些工具的參數(shù)和作用。
而對大模型來說,大模型并不會真正執(zhí)行這些工具的代碼,大模型需要做的是根據(jù)用戶需求,理解用戶需求,然后再根據(jù)工具的描述去選擇合適的工具來解決用戶的問題;其對工具的處理,實際上是輸出需要調(diào)用那個工具,以及生成工具所需要的參數(shù)列表。
最后由代碼執(zhí)行器去執(zhí)行具體的函數(shù)代碼并獲取結(jié)果,然后再把返回結(jié)果輸入到大模型中。

記憶
由于大模型是無狀態(tài)的,因此每次對話對大模型來說都是一次全新的對話,因此就需要一種方式給大模型增加記憶功能。而這種方式就是把每次的對話內(nèi)容保存下來,然后在下次對話中把保存下來的對話記錄插入在上下文中。
結(jié)構(gòu)化輸出
在一些日常對話場景中,確實不需要結(jié)構(gòu)化輸出,但在一些工具使用和一些業(yè)務(wù)場景中,結(jié)構(gòu)化輸出就變得很重要;比如說,你想讓模型根據(jù)你提供的資料生成一份圖表數(shù)據(jù),而這時如果不是結(jié)構(gòu)化數(shù)據(jù)就沒辦法處理。
但我們也知道大模型的輸出是不穩(wěn)定的,因此我們需要有一種方式來約束大模型的輸出;而這就是結(jié)構(gòu)化輸出,簡單來說就是給大模型一個輸出模板,然后讓大模型按照這種模板格式進行輸出,而不是讓大模型隨意進行輸出。
結(jié)構(gòu)化輸出的好處就是,可以讓大模型與我們的業(yè)務(wù)系統(tǒng)相切合,并且更加方便處理。

用戶輸入
至于用戶輸入就更簡單了,只需要把用戶問題和一些可變參數(shù)進行拼接即可。
然后我們仔細觀察后會發(fā)現(xiàn)一個問題,那就是以上所有的操作并沒有和大模型直接交互,而是把所有的結(jié)果都拼接到提示詞中,最終再把這拼接完成的提示詞輸入到模型中。
所以,在這里得出一個結(jié)論,那就是大模型應(yīng)用的開發(fā)就是在封裝提示詞。
大模型的“智能”完全由提示詞引導(dǎo),提示詞相當(dāng)于大模型的“軟編程接口”。
在實際應(yīng)用開發(fā)中,大部分時間都在:
- 優(yōu)化提示詞
- 設(shè)計提示詞結(jié)構(gòu)
- 進行提示詞版本管理
- 根據(jù)不同場景切換提示詞
本文轉(zhuǎn)載自??AI探索時代?? 作者:DFires

















