當我們用Ollama運行DeepSeek R1模型,向它提問時,會發現它的回答里是有think標簽的
如果我們直接將Ollama的回復用于生產環境,肯定是不行的,對于不同的場景,前面輸出的一堆內容,可能并不需要在客戶端展示,對于用戶體驗來說,一個莫名其妙的標簽包裹著一大堆文字,看起來也是不那么友好的。
來看一下我們的JBoltAI-SpringBoot版AI開發框架是怎么解決這個問題的。
-
首先我們加載一下Ollama DeepSeek R1大模型資源(資源加載后可以在項目中被重復調用,我們的框架也支持近20種主流的大模型廠商、平臺)
ResourceCenter.registerOllamaAI("http://192.168.31.14:11434/api/chat", "deepseek-r1:7b");
-
調用大模型
JBoltAI.chat(AIModel.OLLAMA).prompt("你覺得AI未來發展方向會是什么").onThinking((e, think, status) -> {if (status == ThinkStatus.START) {System.out.println("===== 思考開始 =============");} else if (status == ThinkStatus.RUNNING) {System.out.print(think);} else if (status == ThinkStatus.COMPLETE) {System.out.print(think);System.out.println("===== 思考結束 =============");System.out.println("===== 開始回答 =============");}}).onSuccess((e, r) -> {System.out.print(r.getContent());}).onFail((e, error) -> {System.out.println("發生異常了,異常信息:" + error.getFullMsg());}).publish().await();
使用JBoltAI 調用大模型能力是非常方便的,JBoltAI.chat()
就可以發起一個聊天事件,通過傳入大模型類型,就可以自動從資源池中找到可用的資源供事件使用,通過prompt()
方法就可以方便的傳入提示詞,通過onThinking
回調,就可以自由處理深度思考的內容,通過onSuccess
回調可以自由處理大模型返回 的正式回答內容。
框架對于所有支持的大模型,都提供了統一的調用方式,不需要開發者關心底層邏輯,不需要關系不同大模型的接口差異和參數差異,極大的降低了開發者的開發難度。
-
看一下執行效果:
歡迎大家嘗試使用SpringBoot版JBoltAI框架,它會是你開發AI應用的最強大的助手。