SpringBoot整合DeepSeek實(shí)現(xiàn)AI對(duì)話(huà)功能
本篇博文會(huì)分為DeepSeek開(kāi)放平臺(tái)上的API,以及本地私有化部署DeepSeek R1模型兩種方式來(lái)整合使用,本地化私有部署可以參考這篇博文:本地私有化部署DeepSeek模型的詳細(xì)教程_其它綜合_腳本之家
Spring AI
Spring AI 是由 Spring(一個(gè)廣泛使用的開(kāi)源框架)推出的一個(gè)新項(xiàng)目,旨在將 人工智能(AI) 集成到 Spring 應(yīng)用程序中。Spring 是一個(gè)支持 Java 開(kāi)發(fā)的框架,而 Spring AI 使得 Java 開(kāi)發(fā)人員能夠更容易地構(gòu)建、管理和集成人工智能模型和機(jī)器學(xué)習(xí)功能。
我們這里直接使用Spring官方提供的相關(guān)依賴(lài)來(lái)整合,官網(wǎng)地址:https://docs.spring.io/spring-ai/reference/api/chat/deepseek-chat.html
本篇博文主要就是采用的spring ai提供的兩個(gè)starter依賴(lài)進(jìn)行配置整合,分別是spring-ai-openai-spring-boot-starter
和spring-ai-ollama-spring-boot-starter
版本依賴(lài)
根據(jù)官網(wǎng)的描述,spring ai框架支持的SpringBoot版本應(yīng)該是3.2.x 和 3.3.x
而SpringBoot 3.2.x 和 3.3.x依賴(lài)的JDK版本最低應(yīng)該也是JDK17,所以這里演示整合的代碼都是基于spring boot 3.3.8 以及 JDK17
整合DeepSeek API key
進(jìn)入DeepSeek開(kāi)放平臺(tái)頁(yè)面,注冊(cè)賬號(hào)登錄后,可以創(chuàng)建API key,新賬號(hào)有贈(zèng)送的10元額度,具體價(jià)格可以參考這里:https://api-docs.deepseek.com/zh-cn/quick_start/pricing/
有了API key后我們可以開(kāi)始構(gòu)建工程了,基于springboot 3.3.8版本搭建一個(gè)工程,引入以下依賴(lài):
<dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-openai-spring-boot-starter</artifactId> </dependency>
增加以下配置:
spring: ai: openai: base-url: https://api.deepseek.com api-key: sk-xxxxxxxxxxxxxxxxx chat: options: model: deepseek-chat
項(xiàng)目會(huì)自動(dòng)裝配OpenAiAutoConfiguration
,就可以在需要的地方注入OpenAiChatModel
代碼如下:
@Resource private OllamaChatModel chatModel; private final List<Message> chatHistoryList = new ArrayList<>(); @PostConstruct public void init() { chatHistoryList.add(new SystemMessage("You are a helpful assistant.")); } @GetMapping("/chat") public ChatResponse test(String message) { chatHistoryList.add(new UserMessage(message)); Prompt prompt = new Prompt(chatHistoryList); ChatResponse chatResponse = chatModel.call(prompt); if (chatResponse.getResult() != null && chatResponse.getResult().getOutput() != null) { chatHistoryList.add(chatResponse.getResult().getOutput()); } return chatResponse; }
整合本地化部署的DeepSeek R1模型
本地化私有部署可以參考這篇博文:本地私有化部署DeepSeek模型的詳細(xì)教程_其它綜合_腳本之家部署完成后同樣是基于springboot 3.3.8版本搭建一個(gè)工程,引入的依賴(lài)就換為:
<dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-ollama-spring-boot-starter</artifactId> </dependency>
增加以下配置:
spring: ai: ollama: base-url: http://localhost:11434 chat: model: deepseek-r1:1.5b
項(xiàng)目會(huì)自動(dòng)裝配OllamaAutoConfiguration,就可以在需要的地方注入ollamaChatModel
代碼跟使用spring-ai-openai-spring-boot-starter幾乎一樣,只是注入的ChatModel類(lèi)換成了OllamaChatModel
而且實(shí)測(cè)本地化部署也可以使用spring-ai-openai-spring-boot-starter,修改配置文件如下:
spring: ai: openai: base-url: http://localhost:11434 api-key: xxxxxxx chat: options: model: deepseek-r1:1.5b
其他也就一樣了,只是把地址換成了本地ollama的服務(wù)地址,api-key不需要了但是也不能不填,不填會(huì)報(bào)錯(cuò),模型就配置本地有的模型即可
如果想像網(wǎng)站那樣可以一個(gè)字一個(gè)字的輸出,也可以調(diào)用chatModel.stream流式輸出愛(ài)的回復(fù)
到此這篇關(guān)于SpringBoot整合DeepSeek實(shí)現(xiàn)AI對(duì)話(huà)功能的文章就介紹到這了,更多相關(guān)SpringBoot DeepSeek實(shí)現(xiàn)AI對(duì)話(huà)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SpringBoot兩種方式接入DeepSeek的實(shí)現(xiàn)
- SpringBoot快速接入DeepSeek?api(帶頁(yè)面)保姆級(jí)教程
- SpringBoot調(diào)用DeepSeek接口的實(shí)現(xiàn)
- SpringBoot或SpringAI對(duì)接DeepSeek大模型的詳細(xì)步驟
- SpringBoot接入deepseek深度求索示例代碼(jdk1.8)
- SpringBoot調(diào)用DeepSeek?API的完整操作指南
- springboot接入deepseek深度求索代碼示例(java版)
- springboot集成Deepseek4j的項(xiàng)目實(shí)踐
相關(guān)文章
微信公眾號(hào)支付(一)如何獲取用戶(hù)openId
本篇文章給大家介紹微信公眾號(hào)支付如何獲取用戶(hù)openid,需要授權(quán)回調(diào)頁(yè)面域名等一系列途徑實(shí)現(xiàn)此功能,需要的朋友可以參考下2015-09-09java swing實(shí)現(xiàn)電影購(gòu)票系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了java swing實(shí)現(xiàn)電影購(gòu)票系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01聊聊maven與jdk版本對(duì)應(yīng)關(guān)系
這篇文章主要介紹了maven與jdk版本對(duì)應(yīng)關(guān)系,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12java關(guān)于String.split("|")的使用方式
這篇文章主要介紹了java關(guān)于String.split("|")的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02springboot?項(xiàng)目啟動(dòng)后無(wú)日志輸出直接結(jié)束的解決
這篇文章主要介紹了springboot?項(xiàng)目啟動(dòng)后無(wú)日志輸出直接結(jié)束的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12mybatisplus如何解決分頁(yè)最多500條數(shù)據(jù)
這篇文章主要介紹了mybatisplus如何解決分頁(yè)最多500條數(shù)據(jù)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07Spring?Boot中常用的參數(shù)傳遞注解示例詳解
這篇文章主要介紹了Spring?Boot中常用的參數(shù)傳遞注解,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-11-11