Spring AI集成DeepSeek三步搞定Java智能應(yīng)用的詳細(xì)過(guò)程
DeepSeek 作為一款卓越的國(guó)產(chǎn) AI 模型,越來(lái)越多的公司考慮在自己的應(yīng)用中集成。對(duì)于 Java 應(yīng)用來(lái)說(shuō),我們可以借助 Spring AI 集成 DeepSeek,非常簡(jiǎn)單方便!
DeepSeek 介紹
DeepSeek 是國(guó)內(nèi)頂尖 AI 團(tuán)隊(duì)「深度求索」開(kāi)發(fā)的多模態(tài)大模型,具備數(shù)學(xué)推理、代碼生成等深度能力,堪稱"AI界的六邊形戰(zhàn)士"。DeepSeek 最新版本 R1 采用了“思維鏈”技術(shù),能夠展示完整的推理過(guò)程,使其在復(fù)雜推理任務(wù)上表現(xiàn)出色,甚至在某些方面可以與 OpenAI 的 O1 模型相媲美。
DeepSeek 身上的標(biāo)簽有很多,其中最具代表性的標(biāo)簽有以下兩個(gè):
- 低成本(不挑硬件、開(kāi)源、使用簡(jiǎn)單無(wú)需復(fù)雜提示詞)。
- 高性能(推理能力極強(qiáng)、回答準(zhǔn)確)。
Spring AI 是什么?
Spring AI 從著名的 Python 項(xiàng)目(如 LangChain 和 LlamaIndex)中汲取靈感,解決了 AI 集成中的核心挑戰(zhàn):將企業(yè)數(shù)據(jù)和 API 與 AI 模型連接起來(lái)。
你可以將 Spring AI 看作是一個(gè)適配器或者高層封裝,用來(lái)幫你更方便地集成和使用不同的 AI 模型。它的核心目標(biāo)是簡(jiǎn)化開(kāi)發(fā)流程,降低使用多種 AI 服務(wù)時(shí)的復(fù)雜性,同時(shí)提升代碼的可維護(hù)性和靈活性。
Spring AI 的主要功能包括
統(tǒng)一 API:Spring AI 提供了一套統(tǒng)一的接口,用來(lái)調(diào)用不同的 AI 模型(例如 OpenAI、Hugging Face、DeepSeek、Gemini 等)。開(kāi)發(fā)者只需要學(xué)習(xí) Spring AI 的 API,就能無(wú)縫對(duì)接各種 AI 服務(wù),而無(wú)需深入了解各家服務(wù)的底層實(shí)現(xiàn)和差異。
簡(jiǎn)化配置:Spring AI 提供了自動(dòng)化的配置管理,例如 API 密鑰、模型參數(shù)等。你只需要簡(jiǎn)單地在配置文件中定義所需的參數(shù),Spring AI 就會(huì)自動(dòng)完成初始化和連接,避免繁瑣的手動(dòng)配置。
易于切換:Spring AI 的抽象設(shè)計(jì)使得更換 AI 提供商變得非常簡(jiǎn)單。開(kāi)發(fā)者只需要修改少量配置,而不用修改業(yè)務(wù)代碼,從而實(shí)現(xiàn)靈活的 AI 服務(wù)切換,適應(yīng)不同場(chǎng)景需求。
1、環(huán)境準(zhǔn)備
在開(kāi)始集成之前,確保你的開(kāi)發(fā)環(huán)境滿足以下要求:
- JDK17 或更高版本
- 高版本才能使用SpringAI,才能調(diào)用deepseek;
- DeepSeekAPIKey(可通過(guò)官網(wǎng)注冊(cè)獲?。?,申請(qǐng)地址:https://platform.deepseek.com/usage
使用Spring Initializr 或其他工具創(chuàng)建-一個(gè)新的SpringBoot項(xiàng)目,確保版本為3.2.x或更高。
2、構(gòu)建項(xiàng)目
2.1、pom依賴
在項(xiàng)目的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、配置文件
#必填項(xiàng) spring.ai.openai.api-key=your-api-key spring.ai.openai.base-url=https://api.deepseek.com #模型選擇(示例使用對(duì)話模型) 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 = "你是誰(shuí)?") String message) { return Map.of("generation", this.openAiChatModel.call(message)); } }
3、方法調(diào)用
接口報(bào)錯(cuò)
充值后,方可調(diào)用
小天有話說(shuō)
本文中使用 spring-ai-openai starter
,只要在請(qǐng)求頭里加個(gè)api_key
,就能假裝自己在調(diào) OpenAI。Spring AI 的 openai starter 本質(zhì)上是通過(guò) RestTemplate 發(fā)請(qǐng)求,訪問(wèn) DeepSeek API。
除此之外還可以通過(guò)本地化部署的方式進(jìn)行調(diào)用,Spring Cloud Alibaba AI 中也支持這種方式,并且官網(wǎng)上提供了詳細(xì)的方法:https://java2ai.com/blog/spring-ai-alibaba-ollama-deepseek/ 。
大模型的響應(yīng)速度是很慢的,為了提升用戶體驗(yàn),流式輸出便很有必要了,后續(xù)文章會(huì)進(jìn)行樣例說(shuō)明。
題外話
在 2025 年,AI 已深度融入社會(huì)各領(lǐng)域,成為推動(dòng)發(fā)展的關(guān)鍵力量。
技術(shù)層面,AI 模型市場(chǎng)呈現(xiàn)多元競(jìng)爭(zhēng)格局,通過(guò)多模態(tài)融合和輕量化部署實(shí)現(xiàn)效率躍升。DeepSeek等國(guó)產(chǎn)模型通過(guò)架構(gòu)創(chuàng)新將訓(xùn)練成本降低,推動(dòng)AI應(yīng)用從“工具輔助”向“數(shù)字勞動(dòng)力”轉(zhuǎn)型。
在應(yīng)用領(lǐng)域,AI 的硬件應(yīng)用不斷拓展,特別是在機(jī)器人技術(shù)方面,像自動(dòng)駕駛汽車,以及自主無(wú)人機(jī)、倉(cāng)庫(kù)和制造業(yè)機(jī)器人等。此外,智能語(yǔ)音助手變得更加智能,能處理復(fù)雜查詢,根據(jù)用戶習(xí)慣動(dòng)態(tài)管理日程并做出前瞻性建議。
展望未來(lái),AI 將朝著多模態(tài)、更個(gè)性化、更智能的方向發(fā)展。多模態(tài) AI 將整合文本、圖像、音頻和視頻等多源數(shù)據(jù),實(shí)現(xiàn)更自然的人機(jī)交互和更深入的理解。在生成式 AI 方面,除了圖像和視頻生成,還將拓展到更多創(chuàng)意領(lǐng)域,如音樂(lè)創(chuàng)作、文學(xué)創(chuàng)作等,成為創(chuàng)作者不可或缺的工具。
對(duì)程序員群體呈現(xiàn)“雙刃劍”效應(yīng):一方面,AI工具通過(guò)代碼生成、智能調(diào)試和個(gè)性化學(xué)習(xí)顯著提升效率,例如Cursor、DeepSeek等工具能輔助快速開(kāi)發(fā)項(xiàng)目,甚至幫助新手理解復(fù)雜代碼;另一方面,初級(jí)程序員面臨重復(fù)性任務(wù)被AI替代的壓力,需向全棧開(kāi)發(fā)或AI系統(tǒng)設(shè)計(jì)等深度領(lǐng)域轉(zhuǎn)型。同時(shí),AI推動(dòng)工作方式革新,程序員角色從編碼執(zhí)行者轉(zhuǎn)向任務(wù)規(guī)劃者,通過(guò)多模態(tài)大模型實(shí)現(xiàn)跨語(yǔ)言協(xié)作和智能決策,成為人機(jī)協(xié)同的“技術(shù)賦能者”。整體而言,AI既是生產(chǎn)力躍升的催化劑,也是職業(yè)能力重構(gòu)的驅(qū)動(dòng)力,要求程序員在駕馭技術(shù)的同時(shí)強(qiáng)化創(chuàng)新思維與跨領(lǐng)域整合能力。
到此這篇關(guān)于Spring AI集成DeepSeek:三步搞定Java智能應(yīng)用的文章就介紹到這了,更多相關(guān)Spring AI集成DeepSeek內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Spring AI集成DeepSeek的詳細(xì)步驟
- Spring AI與DeepSeek實(shí)戰(zhàn)一之快速打造智能對(duì)話應(yīng)用
- Deepseek整合SpringAI詳細(xì)流程
- 基于SpringAI+DeepSeek實(shí)現(xiàn)流式對(duì)話功能
- SpringBoot或SpringAI對(duì)接DeepSeek大模型的詳細(xì)步驟
- Spring AI內(nèi)置DeepSeek的詳細(xì)步驟
- SpringBoot整合DeepSeek實(shí)現(xiàn)AI對(duì)話功能
- Spring?AI集成DeepSeek實(shí)現(xiàn)流式輸出的操作方法
相關(guān)文章
spring,mybatis事務(wù)管理配置與@Transactional注解使用詳解
這篇文章主要介紹了spring,mybatis事務(wù)管理配置與@Transactional注解使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07使用Idea或Datagrip導(dǎo)入excel數(shù)據(jù)的方法
這篇文章主要介紹了使用Idea或Datagrip導(dǎo)入excel數(shù)據(jù)的方法,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11關(guān)于maven打包時(shí)的報(bào)錯(cuò): Return code is: 501 , ReasonPhrase:HTTPS Requ
這篇文章主要介紹了關(guān)于maven打包時(shí)的報(bào)錯(cuò): Return code is: 501 , ReasonPhrase:HTTPS Required,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09java統(tǒng)計(jì)字符串單詞個(gè)數(shù)的方法解析
在一些項(xiàng)目中可能需要對(duì)一段字符串中的單詞進(jìn)行統(tǒng)計(jì),本文在這里分享了一個(gè)簡(jiǎn)單的demo,有需要的朋友可以拿去看一下2017-01-01idea中文件被Mark as Plain Text后恢復(fù)方式
在IntelliJ IDEA中,如果錯(cuò)誤地將文件標(biāo)記為純文本(Mark as Plain Text),可以通過(guò)在項(xiàng)目目錄中右鍵點(diǎn)擊文件并選擇“Mark as”來(lái)恢復(fù)原文件類型2024-11-11