Spring AI提示詞的四種使用方法分享
提示詞(Prompt)是輸入給大模型(LLM)的文本指令,用于明確地告訴大模型你想要解決的問(wèn)題或完成的任務(wù),也是大語(yǔ)言模型理解用戶需求并生成準(zhǔn)確答案的基礎(chǔ)。因此 prompt 使用的好壞,直接決定了大模型生成結(jié)果的質(zhì)量(是否符合預(yù)期)。
那問(wèn)題來(lái)了,在 Spring AI/Spring AI Alibaba 如何用好提示詞?以及提示詞的使用方式有哪些呢?接下來(lái)本文一起來(lái)盤點(diǎn)一下。
1.簡(jiǎn)單提示詞使用
最簡(jiǎn)單的設(shè)置固定系統(tǒng)提示詞和用戶提示詞的用法如下:
@RequestMapping("/chat") public String chat(String msg) { String result = chatClient.prompt() .system("你是一個(gè)問(wèn)答助手") // 設(shè)置系統(tǒng)提示詞 .user(msg) // 設(shè)置用戶提示詞 .call().content(); System.out.println("結(jié)果:" + result); return result; }
2.動(dòng)態(tài)提示詞
所謂的動(dòng)態(tài)提示詞指的是需要進(jìn)行動(dòng)態(tài)參數(shù)替換的提示詞,它的基本使用如下:
@RequestMapping("/chat") public String chat(String topic) { PromptTemplate promptTemplate = new PromptTemplate("你是一個(gè){role},講一個(gè)關(guān)于{topic}的故事"); Prompt prompt = promptTemplate.create(Map.of("role", "講故事的助手", "topic", topic)); return chatModel.call(prompt).getResult().getOutput().getText(); }
3.從文件中讀取動(dòng)態(tài)提示詞
動(dòng)態(tài)提示詞如果比較短,我們可以像上面一樣寫到代碼里面,如果比較長(zhǎng),我們可以把它單獨(dú)放的某個(gè)文件模版中進(jìn)行讀取使用,具體實(shí)現(xiàn)如下:
// 從文件中讀取提示詞 @Value("classpath:type-system-prompt-txt") private Resource systemPrompt; @RequestMapping("/chat") public String chat(String msg) { return chatClient.prompt() .system(systemPrompt) .user(msg) .call() .content(); } }
4.Lambda表達(dá)式提示詞
當(dāng)提示詞比較短的時(shí)候,除了可以使用 PromptTemplate 設(shè)置提示詞之外,我們還可以使用 Lambda 表達(dá)式來(lái)實(shí)現(xiàn)動(dòng)態(tài)提示詞的設(shè)置,具體使用如下:
@RequestMapping("/chat") public User chat(String name) { return chatClient.prompt() .user(msg -> msg.text("我叫{name},今年18歲,愛好打羽毛球。") .param("name", name)) .call() .entity(User.class); // 結(jié)果化輸出 }
小結(jié)
提示詞是用戶和大模型交互的直接手段,所以在程序中用好提示詞是至關(guān)重要的。本文提供了 4 種提示詞的使用方式,開發(fā)者可以根據(jù)具體的業(yè)務(wù)場(chǎng)景,選擇合適的提示詞使用方式來(lái)完成 AI 應(yīng)用開發(fā)。一起實(shí)操起來(lái)吧~
到此這篇關(guān)于Spring AI提示詞的四種使用方法分享的文章就介紹到這了,更多相關(guān)Spring AI提示詞用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot普通類獲取spring容器中bean的操作
這篇文章主要介紹了SpringBoot普通類獲取spring容器中bean的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-09-09Spring組件初始化擴(kuò)展點(diǎn)BeanPostProcessor的作用詳解
本文通過(guò)實(shí)戰(zhàn)案例和常見應(yīng)用場(chǎng)景詳細(xì)介紹了BeanPostProcessor的使用,并強(qiáng)調(diào)了其在Spring擴(kuò)展中的重要性,感興趣的朋友一起看看吧2025-03-03IntelliJ?IDEA?2023.2最新版激活方法及驗(yàn)證ja-netfilter配置是否成功
隨著2023.2版本的發(fā)布,用戶們渴望了解如何激活這個(gè)最新版的IDE,本文將介紹三種可行的激活方案,包括許可證服務(wù)器、許可證代碼和idea?vmoptions配置,幫助讀者成功激活并充分利用IDEA的功能,感興趣的朋友參考下吧2023-08-08解析iReport自定義行數(shù)分頁(yè)的操作方法
ireport默認(rèn)都是自動(dòng)分頁(yè)數(shù)據(jù)超出頁(yè)面長(zhǎng)度就會(huì)自動(dòng)分到下一頁(yè),但有時(shí)候業(yè)務(wù)需要一頁(yè)只顯示固定幾行這時(shí)候就需要自定義條數(shù)了。下面看具體操作吧2021-10-10SpringBoot集成支付寶沙箱支付的實(shí)現(xiàn)示例
本文主要介紹了SpringBoot集成支付寶沙箱支付的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12