最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring項(xiàng)目接入DeepSeek的兩種超簡單的方式分享

 更新時(shí)間:2025年02月13日 09:19:01   作者:JavaGuide  
DeepSeek?作為一款卓越的國產(chǎn)?AI?模型,越來越多的公司考慮在自己的應(yīng)用中集成,本文為大家?分享了Spring項(xiàng)目接入DeepSeek的兩種超簡單的方式,希望對大家有所幫助

DeepSeek 作為一款卓越的國產(chǎn) AI 模型,越來越多的公司考慮在自己的應(yīng)用中集成。對于 Java 應(yīng)用來說,我們可以借助 Spring AI 集成 DeepSeek,非常簡單方便!

Spring AI 是什么?

Spring AI 從著名的 Python 項(xiàng)目(例如 LangChain 和 LlamaIndex)中汲取靈感,解決了 AI 集成中的核心挑戰(zhàn):將企業(yè)數(shù)據(jù)和 API 與 AI 模型連接起來。

你可以將 Spring AI 看作是一個(gè)適配器或者高層封裝,用來幫你更方便地集成和使用不同的 AI 模型。它的核心目標(biāo)是簡化開發(fā)流程,降低使用多種 AI 服務(wù)時(shí)的復(fù)雜性,同時(shí)提升代碼的可維護(hù)性和靈活性。

Spring AI 的主要功能包括:

  • 統(tǒng)一 API: Spring AI 提供了一套統(tǒng)一的接口,用來調(diào)用不同的 AI 模型(例如 OpenAI、Hugging Face、DeepSeek、Gemini 等)。開發(fā)者只需要學(xué)習(xí) Spring AI 的 API,就能無縫對接各種 AI 服務(wù),而無需深入了解各家服務(wù)的底層實(shí)現(xiàn)和差異。
  • 簡化配置: Spring AI 提供了自動(dòng)化的配置管理,例如 API 密鑰、模型參數(shù)等。你只需要簡單地在配置文件中定義所需的參數(shù),Spring AI 就會自動(dòng)完成初始化和連接,避免繁瑣的手動(dòng)配置。
  • 易于切換: Spring AI 的抽象設(shè)計(jì)使得更換 AI 提供商變得非常簡單。開發(fā)者只需要修改少量配置,而不用修改業(yè)務(wù)代碼,從而實(shí)現(xiàn)靈活的 AI 服務(wù)切換,適應(yīng)不同場景需求。

Spring AI 集成 DeepSeek

這里介紹兩種方式:

  • spring-ai-openai starter:偽裝成 OpenAI,DeepSeek 提供了 OpenAI 兼容模式
  • spring-ai-ollama-spring-boot-starter:通過 Ollama 本地部署一個(gè) DeepSeek R1 蒸餾版。

偽裝成 OpenAI

DeepSeek 其實(shí)提供了 OpenAI 兼容模式,只要在請求頭里加個(gè)api_key,就能假裝自己在調(diào) OpenAI。Spring AI 的 openai starter 本質(zhì)上是通過 RestTemplate 發(fā)請求,我們只需要改改 URL 和認(rèn)證方式。

1、添加依賴:

<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-openai-spring-boot-starter</artifactId>
    <version>0.8.1</version>
</dependency>

2、修改配置文件 application.yml

spring:
  ai:
    openai:
      base-url: https://api.deepseek.com/v1  # DeepSeek的OpenAI式端點(diǎn)
      api-key: sk-your-deepseek-key-here
      chat.options:
        model: deepseek-chat  # 指定DeepSeek的模型名稱

3、DeepSeek API KEY 可以在 DeepSeek 開放平臺中自行創(chuàng)建,地址:platform.deepseek.com/api_keys 。

4、在代碼中調(diào)用:

@RestController
@RequestMapping("/ai")
@Slf4j
public class ChatController {

	private final ChatClient chatClient;

 // 構(gòu)造方法注入 ChatClient.Builder,用于構(gòu)建 ChatClient 實(shí)例
	public ChatController(ChatClient.Builder chatClientBuilder) {
		this.chatClient = chatClientBuilder.build();
	}

	@GetMapping("/chat")
	public String generate(@RequestParam(value = "message") String message) {
		log.info("Generating response");
  // 調(diào)用 ChatClient 的 prompt 方法生成響應(yīng)
  // 1. prompt(message): 創(chuàng)建一個(gè)包含用戶輸入消息的 Prompt 對象
  // 2. call(): 調(diào)用 ChatClient 與 AI 模型交互以獲取響應(yīng)
  // 3. content(): 提取響應(yīng)的內(nèi)容部分
		return chatClient.prompt(message).call().content();
	}

}

在運(yùn)行時(shí),你可以通過在 Prompt 調(diào)用中添加新的、針對請求的選項(xiàng)來覆蓋默認(rèn)配置。例如,要為特定請求覆蓋默認(rèn)模型和溫度,可以這樣實(shí)現(xiàn):

ChatResponse response = chatModel.call(
    new Prompt(
        "Generate the names of 5 famous pirates.",
        OpenAiChatOptions.builder()
            .withModel("deepseek-chat")
            .withTemperature(0.4)
        .build()
    ));

本地化部署

如果想要把 DeepSeek 部署在內(nèi)網(wǎng)服務(wù)器,或者你想在本地跑個(gè)小模型,可以采用這種方式來在本地部署一個(gè) DeepSeek R1 蒸餾版。

1、從官方網(wǎng)站下載并安裝 Ollama:ollama.com

2、拉取 DeepSeek 模型:

ollama pull deepseek-r1:1.5b
ollama list deepseek

更多版本可以在這里查看:ollama.com/library/deepseek-r1

3、添加依賴:

<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-ollama-spring-boot-starter</artifactId>
    <version>0.8.1</version>
</dependency>

4、修改配置:

spring:
  ai:
    ollama:
      base-url: http://localhost:11434
      chat:
        model: deepseek-r1:1.5b  # 與本地模型名稱對應(yīng)

5、在代碼中調(diào)用:

@RestController
@RequestMapping("/ai")
public class ChatController {
    private final ChatClient chatClient;

    // 構(gòu)造方法注入 ChatClient.Builder,用于構(gòu)建 ChatClient 實(shí)例
    public ChatController(ChatClient.Builder chatClient) {
        this.chatClient = chatClient.build();
    }

    	@GetMapping("/chat")
    public ResponseEntity<Flux<String>> chat(@RequestParam(value = "message") String message) {
        try {
            // 調(diào)用 ChatClient 生成響應(yīng),并以 Flux<String>(響應(yīng)流)形式返回
            Flux<String> response = chatClient.prompt(message).stream().content();
            return ResponseEntity.ok(response);
        } catch (Exception e) {
            return ResponseEntity.badRequest().build();
        }
    }
}

Spring Cloud Alibaba AI 中也支持這種方式,并且官網(wǎng)上提供了詳細(xì)的方法:java2ai.com/blog/spring-ai-alibaba-ollama-deepseek/ 。

總結(jié)

這篇文章主要介紹了 Spring AI 以及如何通過 Spring AI 集成 DeepSeek:

  • 偽裝成 OpenAI: DeepSeek 可以假裝自己是 OpenAI,直接用 Spring AI 的 OpenAI starter 就行,改改配置就好,就像換個(gè)鏈接一樣簡單。
  • 本地部署: 如果你想把 DeepSeek 放在自己服務(wù)器上,或者想在電腦上跑個(gè)小模型玩玩,可以用 Ollama。先下載 Ollama,再下載 DeepSeek 模型,然后用 Spring AI 的 Ollama starter,也超級簡單。Spring Cloud Alibaba AI 也支持這種玩法,官網(wǎng)有教程。

以上就是Spring項(xiàng)目接入DeepSeek的兩種超簡單的方式分享的詳細(xì)內(nèi)容,更多關(guān)于Spring項(xiàng)目接入DeepSeek的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • springboot中的攔截器和過濾器的作用、區(qū)別解析

    springboot中的攔截器和過濾器的作用、區(qū)別解析

    這篇文章主要介紹了springboot中的攔截器和過濾器的作用、區(qū)別解析,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2025-09-09
  • macOS下Spring Boot開發(fā)環(huán)境搭建教程

    macOS下Spring Boot開發(fā)環(huán)境搭建教程

    這篇文章主要為大家詳細(xì)介紹了macOS下Spring Boot開發(fā)環(huán)境搭建教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • win10下配置java環(huán)境變量的方法

    win10下配置java環(huán)境變量的方法

    這篇文章主要介紹了win10下配置java環(huán)境變量的方法,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02
  • 詳細(xì)聊聊RabbitMQ竟無法反序列化List問題

    詳細(xì)聊聊RabbitMQ竟無法反序列化List問題

    這篇文章主要給大家介紹了關(guān)于RabbitMQ竟無法反序列化List的相關(guān)資料,文中通過示例代碼將問題以及解決的過程介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2021-09-09
  • 【MyBatis源碼全面解析】MyBatis一二級緩存介紹

    【MyBatis源碼全面解析】MyBatis一二級緩存介紹

    下面小編就為大家?guī)硪黄綧yBatis源碼全面解析】MyBatis一二級緩存介紹。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-06-06
  • 如何修改maven默認(rèn)的JDK版本

    如何修改maven默認(rèn)的JDK版本

    這篇文章主要介紹了如何修改maven默認(rèn)的JDK版本,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • Map集合中獲取key-value值的實(shí)現(xiàn)方法

    Map集合中獲取key-value值的實(shí)現(xiàn)方法

    這篇文章主要介紹了Map集合中獲取key-value值的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Spring AI集成DeepSeek三步搞定Java智能應(yīng)用的詳細(xì)過程

    Spring AI集成DeepSeek三步搞定Java智能應(yīng)用的詳細(xì)過程

    本文介紹了如何使用SpringAI集成DeepSeek,一個(gè)國內(nèi)頂尖的多模態(tài)大模型,SpringAI提供了一套統(tǒng)一的接口,簡化了與不同AI模型的集成,通過配置文件和簡單的接口調(diào)用,開發(fā)者可以方便地使用DeepSeek進(jìn)行數(shù)學(xué)推理、代碼生成等任務(wù),感興趣的朋友一起看看吧
    2025-03-03
  • java中BigDecimal類型比較大小和絕對值計(jì)算方式

    java中BigDecimal類型比較大小和絕對值計(jì)算方式

    這篇文章主要介紹了java中BigDecimal類型比較大小和絕對值計(jì)算方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • maven 打包項(xiàng)目的幾種方式

    maven 打包項(xiàng)目的幾種方式

    maven目前在web上面的使用方式很普遍,而打包的方式也存在很多方式,本文就詳細(xì)的介紹了三種方式,具有一定的參考價(jià)值,感興趣的可以了解下
    2021-06-06

最新評論

会宁县| 谢通门县| 双峰县| 彭山县| 西盟| 新巴尔虎右旗| 保靖县| 鄯善县| 永州市| 安达市| 报价| 永靖县| 于田县| 鲁山县| 神农架林区| 青州市| 涞水县| 阿拉善左旗| 利川市| 抚远县| 翁牛特旗| 鸡西市| 石景山区| 塘沽区| 建宁县| 沈丘县| 岚皋县| 诸城市| 玉林市| 云和县| 利津县| 新绛县| 通城县| 沛县| 巴南区| 海城市| 海淀区| 文化| 修水县| 开远市| 治多县|