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

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

 更新時間:2025年03月06日 12:08:59   作者:小天努力學(xué)java  
本文介紹了如何使用SpringAI集成DeepSeek,一個國內(nèi)頂尖的多模態(tài)大模型,SpringAI提供了一套統(tǒng)一的接口,簡化了與不同AI模型的集成,通過配置文件和簡單的接口調(diào)用,開發(fā)者可以方便地使用DeepSeek進(jìn)行數(shù)學(xué)推理、代碼生成等任務(wù),感興趣的朋友一起看看吧

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

DeepSeek 介紹

DeepSeek 是國內(nèi)頂尖 AI 團(tuán)隊「深度求索」開發(fā)的多模態(tài)大模型,具備數(shù)學(xué)推理、代碼生成等深度能力,堪稱"AI界的六邊形戰(zhàn)士"。DeepSeek 最新版本 R1 采用了“思維鏈”技術(shù),能夠展示完整的推理過程,使其在復(fù)雜推理任務(wù)上表現(xiàn)出色,甚至在某些方面可以與 OpenAI 的 O1 模型相媲美。

DeepSeek 身上的標(biāo)簽有很多,其中最具代表性的標(biāo)簽有以下兩個:

  • 低成本(不挑硬件、開源、使用簡單無需復(fù)雜提示詞)。
  • 高性能(推理能力極強(qiáng)、回答準(zhǔn)確)。

Spring AI 是什么?

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

你可以將 Spring AI 看作是一個適配器或者高層封裝,用來幫你更方便地集成和使用不同的 AI 模型。它的核心目標(biāo)是簡化開發(fā)流程,降低使用多種 AI 服務(wù)時的復(fù)雜性,同時提升代碼的可維護(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ù)的底層實現(xiàn)和差異。

簡化配置:Spring AI 提供了自動化的配置管理,例如 API 密鑰、模型參數(shù)等。你只需要簡單地在配置文件中定義所需的參數(shù),Spring AI 就會自動完成初始化和連接,避免繁瑣的手動配置。

易于切換:Spring AI 的抽象設(shè)計使得更換 AI 提供商變得非常簡單。開發(fā)者只需要修改少量配置,而不用修改業(yè)務(wù)代碼,從而實現(xiàn)靈活的 AI 服務(wù)切換,適應(yīng)不同場景需求。

1、環(huán)境準(zhǔn)備

在開始集成之前,確保你的開發(fā)環(huán)境滿足以下要求:

  • JDK17 或更高版本
    • 高版本才能使用SpringAI,才能調(diào)用deepseek;
  • DeepSeekAPIKey(可通過官網(wǎng)注冊獲?。?,申請地址:https://platform.deepseek.com/usage

使用Spring Initializr 或其他工具創(chuàng)建-一個新的SpringBoot項目,確保版本為3.2.x或更高。

2、構(gòu)建項目

2.1、pom依賴

在項目的pom.xml文件中添加SpringAI和DeepSeek的相關(guān)依賴。

以下是基于Maven的依賴配置示例:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.4.2</version>
    <relativePath/> <!-- lookup parent from repository -->
  </parent>
  <groupId>com.tyron</groupId>
  <artifactId>Spring-AI</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>Spring-AI</name>
  <description>Spring-AI</description>
  <url/>
  <properties>
    <java.version>21</java.version>
    <spring-ai.version>1.0.0-M5</spring-ai.version>
  </properties>
  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.ai</groupId>
      <artifactId>spring-ai-openai-spring-boot-starter</artifactId>
    </dependency>
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.springframework.ai</groupId>
        <artifactId>spring-ai-bom</artifactId>
        <version>${spring-ai.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <annotationProcessorPaths>
            <path>
              <groupId>org.projectlombok</groupId>
              <artifactId>lombok</artifactId>
            </path>
          </annotationProcessorPaths>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <configuration>
          <excludes>
            <exclude>
              <groupId>org.projectlombok</groupId>
              <artifactId>lombok</artifactId>
            </exclude>
          </excludes>
        </configuration>
      </plugin>
        </plugins>
    </build>
</project>

2.2、配置文件

#必填項
spring.ai.openai.api-key=your-api-key
spring.ai.openai.base-url=https://api.deepseek.com
#模型選擇(示例使用對話模型)
spring.ai.openai.chat.options.model=deepseek-chat

2.3、接口定義

@RestController()
@RequestMapping("/ai")
public class ChatController {
    private OpenAiChatModel openAiChatModel;
    @Autowired
    public ChatController(OpenAiChatModel openAiChatModel) {
        this.openAiChatModel = openAiChatModel;
    }
    /**
     * 生成
     *
     * @param message 輸入信息
     * @return 輸出信息
     */
    @GetMapping("/generate")
    public Map generate(@RequestParam(value = "message", defaultValue = "你是誰?") String message) {
        return Map.of("generation", this.openAiChatModel.call(message));
    }
}

3、方法調(diào)用

接口報錯

充值后,方可調(diào)用

小天有話說

本文中使用 spring-ai-openai starter,只要在請求頭里加個api_key,就能假裝自己在調(diào) OpenAI。Spring AI 的 openai starter 本質(zhì)上是通過 RestTemplate 發(fā)請求,訪問 DeepSeek API。

除此之外還可以通過本地化部署的方式進(jìn)行調(diào)用,Spring Cloud Alibaba AI 中也支持這種方式,并且官網(wǎng)上提供了詳細(xì)的方法:https://java2ai.com/blog/spring-ai-alibaba-ollama-deepseek/ 。

大模型的響應(yīng)速度是很慢的,為了提升用戶體驗,流式輸出便很有必要了,后續(xù)文章會進(jìn)行樣例說明。

題外話

在 2025 年,AI 已深度融入社會各領(lǐng)域,成為推動發(fā)展的關(guān)鍵力量。

技術(shù)層面,AI 模型市場呈現(xiàn)多元競爭格局,通過多模態(tài)融合和輕量化部署實現(xiàn)效率躍升。DeepSeek等國產(chǎn)模型通過架構(gòu)創(chuàng)新將訓(xùn)練成本降低,推動AI應(yīng)用從“工具輔助”向“數(shù)字勞動力”轉(zhuǎn)型。

在應(yīng)用領(lǐng)域,AI 的硬件應(yīng)用不斷拓展,特別是在機(jī)器人技術(shù)方面,像自動駕駛汽車,以及自主無人機(jī)、倉庫和制造業(yè)機(jī)器人等。此外,智能語音助手變得更加智能,能處理復(fù)雜查詢,根據(jù)用戶習(xí)慣動態(tài)管理日程并做出前瞻性建議。

展望未來,AI 將朝著多模態(tài)、更個性化、更智能的方向發(fā)展。多模態(tài) AI 將整合文本、圖像、音頻和視頻等多源數(shù)據(jù),實現(xiàn)更自然的人機(jī)交互和更深入的理解。在生成式 AI 方面,除了圖像和視頻生成,還將拓展到更多創(chuàng)意領(lǐng)域,如音樂創(chuàng)作、文學(xué)創(chuàng)作等,成為創(chuàng)作者不可或缺的工具。

對程序員群體呈現(xiàn)“雙刃劍”效應(yīng):一方面,AI工具通過代碼生成、智能調(diào)試和個性化學(xué)習(xí)顯著提升效率,例如Cursor、DeepSeek等工具能輔助快速開發(fā)項目,甚至幫助新手理解復(fù)雜代碼;另一方面,初級程序員面臨重復(fù)性任務(wù)被AI替代的壓力,需向全棧開發(fā)或AI系統(tǒng)設(shè)計等深度領(lǐng)域轉(zhuǎn)型。同時,AI推動工作方式革新,程序員角色從編碼執(zhí)行者轉(zhuǎn)向任務(wù)規(guī)劃者,通過多模態(tài)大模型實現(xiàn)跨語言協(xié)作和智能決策,成為人機(jī)協(xié)同的“技術(shù)賦能者”。整體而言,AI既是生產(chǎn)力躍升的催化劑,也是職業(yè)能力重構(gòu)的驅(qū)動力,要求程序員在駕馭技術(shù)的同時強(qiáng)化創(chuàng)新思維與跨領(lǐng)域整合能力。

到此這篇關(guān)于Spring AI集成DeepSeek:三步搞定Java智能應(yīng)用的文章就介紹到這了,更多相關(guān)Spring AI集成DeepSeek內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java 過濾器實現(xiàn)敏感詞匯過濾功能

    Java 過濾器實現(xiàn)敏感詞匯過濾功能

    通過使用 Java 過濾器,我們可以輕松地實現(xiàn)敏感詞匯過濾的功能,以保護(hù)用戶免受不良內(nèi)容的侵害,讓我們通過一個簡單的示例來演示我們的敏感詞匯過濾器是如何工作的,感興趣的朋友一起看看吧
    2024-01-01
  • SpringBoot選擇自有bean優(yōu)先加載實現(xiàn)方法

    SpringBoot選擇自有bean優(yōu)先加載實現(xiàn)方法

    在一些需求中,可能存在某些場景,比如先加載自己的bean,然后自己的bean做一些DB操作,初始化配置問題,然后后面的bean基于這個配置文件,繼續(xù)做其他的業(yè)務(wù)邏輯。因此有了本文的這個題目
    2023-03-03
  • 淺談為什么重寫equals()就要重寫hashCode()

    淺談為什么重寫equals()就要重寫hashCode()

    困擾我很久的問題,一直不明白為什么重寫equals()方法的時候要重寫hashCode()方法,這次總算弄明白了,作此分享,感興趣的可以了解一下
    2021-10-10
  • SpringBoot?常用讀取配置文件的三種方法詳解

    SpringBoot?常用讀取配置文件的三種方法詳解

    這篇文章主要介紹了SpringBoot?常用讀取配置文件的3種方法,通過本文學(xué)習(xí)可以解決Spring Boot有哪些常用的讀取配置文件方式,一些復(fù)雜的數(shù)據(jù)結(jié)構(gòu),如list,map如何配置,帶著這些問題一起通過本文學(xué)習(xí)吧
    2022-09-09
  • SpringBootAdmin+actuator實現(xiàn)服務(wù)監(jiān)控

    SpringBootAdmin+actuator實現(xiàn)服務(wù)監(jiān)控

    這篇文章主要為大家詳細(xì)介紹了SpringBootAdmin+actuator實現(xiàn)服務(wù)監(jiān)控,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Springboot內(nèi)置的工具類之CollectionUtils示例講解

    Springboot內(nèi)置的工具類之CollectionUtils示例講解

    這篇文章主要介紹了Springboot內(nèi)置的工具類之CollectionUtils,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-12-12
  • Java 用Prometheus搭建實時監(jiān)控系統(tǒng)過程詳解

    Java 用Prometheus搭建實時監(jiān)控系統(tǒng)過程詳解

    這篇文章主要介紹了用Prometheus搭建實時監(jiān)控系統(tǒng)過程詳解之上帝之火,普羅米修斯的崛起,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 淺談圖片上傳利用request.getInputStream()獲取文件流時遇到的問題

    淺談圖片上傳利用request.getInputStream()獲取文件流時遇到的問題

    下面小編就為大家?guī)硪黄獪\談圖片上傳利用request.getInputStream()獲取文件流時遇到的問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • java多線程編程必備volatile與synchronized深入理解

    java多線程編程必備volatile與synchronized深入理解

    這篇文章主要介紹了java多線程編程必備volatile與synchronized的深入理解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • SpringBoot?UserAgentUtils獲取用戶瀏覽器的用法

    SpringBoot?UserAgentUtils獲取用戶瀏覽器的用法

    UserAgentUtils是于處理用戶代理(User-Agent)字符串的工具類,一般用于解析和處理瀏覽器、操作系統(tǒng)以及設(shè)備等相關(guān)信息,這些信息通常包含在接口請求的?User-Agent?字符串中,本文介紹SpringBoot?UserAgentUtils獲取用戶瀏覽器的用法,感興趣的朋友一起看看吧
    2025-04-04

最新評論

大宁县| 台山市| 衡东县| 利津县| 娄底市| 三明市| 崇文区| 舒兰市| 桃园县| 永昌县| 德江县| 鸡东县| 雅江县| 岳阳市| 新闻| 驻马店市| 玛纳斯县| 新巴尔虎右旗| 滕州市| 登封市| 安顺市| 柯坪县| 甘孜| 新绛县| 天长市| 肇庆市| 清水河县| 莎车县| 讷河市| 团风县| 唐河县| 五莲县| 南漳县| 郓城县| 泰兴市| 栖霞市| 永福县| 海阳市| 通州市| 台北县| 漠河县|