SpringBoot整合DeepSeek實現(xiàn)AI對話功能
本篇博文會分為DeepSeek開放平臺上的API,以及本地私有化部署DeepSeek R1模型兩種方式來整合使用,本地化私有部署可以參考這篇博文:本地私有化部署DeepSeek模型的詳細(xì)教程_其它綜合_腳本之家
Spring AI
Spring AI 是由 Spring(一個廣泛使用的開源框架)推出的一個新項目,旨在將 人工智能(AI) 集成到 Spring 應(yīng)用程序中。Spring 是一個支持 Java 開發(fā)的框架,而 Spring AI 使得 Java 開發(fā)人員能夠更容易地構(gòu)建、管理和集成人工智能模型和機(jī)器學(xué)習(xí)功能。
我們這里直接使用Spring官方提供的相關(guān)依賴來整合,官網(wǎng)地址:https://docs.spring.io/spring-ai/reference/api/chat/deepseek-chat.html
本篇博文主要就是采用的spring ai提供的兩個starter依賴進(jìn)行配置整合,分別是spring-ai-openai-spring-boot-starter
和spring-ai-ollama-spring-boot-starter
版本依賴
根據(jù)官網(wǎng)的描述,spring ai框架支持的SpringBoot版本應(yīng)該是3.2.x 和 3.3.x
而SpringBoot 3.2.x 和 3.3.x依賴的JDK版本最低應(yīng)該也是JDK17,所以這里演示整合的代碼都是基于spring boot 3.3.8 以及 JDK17
整合DeepSeek API key
進(jìn)入DeepSeek開放平臺頁面,注冊賬號登錄后,可以創(chuàng)建API key,新賬號有贈送的10元額度,具體價格可以參考這里:https://api-docs.deepseek.com/zh-cn/quick_start/pricing/
有了API key后我們可以開始構(gòu)建工程了,基于springboot 3.3.8版本搭建一個工程,引入以下依賴:
<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
項目會自動裝配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版本搭建一個工程,引入的依賴就換為:
<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
項目會自動裝配OllamaAutoConfiguration,就可以在需要的地方注入ollamaChatModel
代碼跟使用spring-ai-openai-spring-boot-starter幾乎一樣,只是注入的ChatModel類換成了OllamaChatModel
而且實測本地化部署也可以使用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不需要了但是也不能不填,不填會報錯,模型就配置本地有的模型即可
如果想像網(wǎng)站那樣可以一個字一個字的輸出,也可以調(diào)用chatModel.stream流式輸出愛的回復(fù)
到此這篇關(guān)于SpringBoot整合DeepSeek實現(xiàn)AI對話功能的文章就介紹到這了,更多相關(guān)SpringBoot DeepSeek實現(xiàn)AI對話內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java swing實現(xiàn)電影購票系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了java swing實現(xiàn)電影購票系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-01-01java關(guān)于String.split("|")的使用方式
這篇文章主要介紹了java關(guān)于String.split("|")的使用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02springboot?項目啟動后無日志輸出直接結(jié)束的解決
這篇文章主要介紹了springboot?項目啟動后無日志輸出直接結(jié)束的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12mybatisplus如何解決分頁最多500條數(shù)據(jù)
這篇文章主要介紹了mybatisplus如何解決分頁最多500條數(shù)據(jù)的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07Spring?Boot中常用的參數(shù)傳遞注解示例詳解
這篇文章主要介紹了Spring?Boot中常用的參數(shù)傳遞注解,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-11-11