欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot整合DeepSeek實(shí)現(xiàn)AI對(duì)話(huà)功能

 更新時(shí)間:2025年02月10日 09:15:06   作者:chengpei147  
本文介紹了如何在SpringBoot項(xiàng)目中整合DeepSeek API和本地私有化部署DeepSeekR1模型,通過(guò)SpringAI框架簡(jiǎn)化了人工智能模型的集成,感興趣的小伙伴跟著小編一起來(lái)看看吧

本篇博文會(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-starterspring-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)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 微信公眾號(hào)支付(一)如何獲取用戶(hù)openId

    微信公眾號(hào)支付(一)如何獲取用戶(hù)openId

    本篇文章給大家介紹微信公眾號(hào)支付如何獲取用戶(hù)openid,需要授權(quán)回調(diào)頁(yè)面域名等一系列途徑實(shí)現(xiàn)此功能,需要的朋友可以參考下
    2015-09-09
  • java swing實(shí)現(xiàn)電影購(gòu)票系統(tǒng)

    java 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)系

    這篇文章主要介紹了maven與jdk版本對(duì)應(yīng)關(guān)系,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • 詳細(xì)分析JVM類(lèi)加載機(jī)制

    詳細(xì)分析JVM類(lèi)加載機(jī)制

    JVM將class文件字節(jié)碼文件加載到內(nèi)存中,?并將這些靜態(tài)數(shù)據(jù)轉(zhuǎn)換成方法區(qū)中的運(yùn)行時(shí)數(shù)據(jù)結(jié)構(gòu),在堆(并不一定在堆中,HotSpot在方法區(qū)中)中生成一個(gè)代表這個(gè)類(lèi)的java.lang.Class?對(duì)象,作為方法區(qū)類(lèi)數(shù)據(jù)的訪問(wèn)入口,接下來(lái)將詳細(xì)講解JVM類(lèi)加載機(jī)制
    2022-04-04
  • java異常與錯(cuò)誤處理基本知識(shí)

    java異常與錯(cuò)誤處理基本知識(shí)

    本文內(nèi)容是java的異常與錯(cuò)誤處理基本知識(shí)
    2013-11-11
  • java關(guān)于String.split("|")的使用方式

    java關(guān)于String.split("|")的使用方式

    這篇文章主要介紹了java關(guān)于String.split("|")的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • springboot?項(xiàng)目啟動(dòng)后無(wú)日志輸出直接結(jié)束的解決

    springboot?項(xiàng)目啟動(dòng)后無(wú)日志輸出直接結(jié)束的解決

    這篇文章主要介紹了springboot?項(xiàng)目啟動(dòng)后無(wú)日志輸出直接結(jié)束的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java JDK 1.8 lambda的用法詳解

    Java JDK 1.8 lambda的用法詳解

    這篇文章主要介紹了Java JDK 1.8 lambda的用法詳解,文中給大家提到了jdk 1.8 Lambda 表達(dá)式 遍歷數(shù)組的方法,需要的朋友可以參考下
    2019-09-09
  • mybatisplus如何解決分頁(yè)最多500條數(shù)據(jù)

    mybatisplus如何解決分頁(yè)最多500條數(shù)據(jù)

    這篇文章主要介紹了mybatisplus如何解決分頁(yè)最多500條數(shù)據(jù)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Spring?Boot中常用的參數(shù)傳遞注解示例詳解

    Spring?Boot中常用的參數(shù)傳遞注解示例詳解

    這篇文章主要介紹了Spring?Boot中常用的參數(shù)傳遞注解,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-11-11

最新評(píng)論