Spring AI集成DeepSeek的詳細步驟
DeepSeek 介紹
DeepSeek 是國內(nèi)頂尖 AI 團隊「深度求索」開發(fā)的多模態(tài)大模型,具備數(shù)學(xué)推理、代碼生成等深度能力,堪稱"AI界的六邊形戰(zhàn)士"。DeepSeek 最新版本 R1 采用了“思維鏈”技術(shù),能夠展示完整的推理過程,使其在復(fù)雜推理任務(wù)上表現(xiàn)出色,甚至在某些方面可以與 OpenAI 的 O1 模型相媲美。
DeepSeek 身上的標(biāo)簽有很多,其中最具代表性的標(biāo)簽有以下兩個:
- 低成本(不挑硬件、開源、使用簡單無需復(fù)雜提示詞)。
- 高性能(推理能力極強、回答準(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ù)雜性,同時提升代碼的可維護性和靈活性。
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)用
總結(jié)
本文中使用 spring-ai-openai starter
,只要在請求頭里加個api_key
,就能假裝自己在調(diào) OpenAI。Spring AI 的 openai starter 本質(zhì)上是通過 RestTemplate 發(fā)請求,訪問 DeepSeek API。
除此之外還可以通過本地化部署的方式進行調(diào)用,Spring Cloud Alibaba AI 中也支持這種方式,并且官網(wǎng)上提供了詳細的方法:https://java2ai.com/blog/spring-ai-alibaba-ollama-deepseek/ 。
大模型的響應(yīng)速度是很慢的,為了提升用戶體驗,流式輸出便很有必要了,后續(xù)文章會進行樣例說明。
以上就是Spring AI集成DeepSeek的詳細步驟的詳細內(nèi)容,更多關(guān)于Spring AI集成DeepSeek的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
springboot項目整合druid數(shù)據(jù)庫連接池的實現(xiàn)
這篇文章主要介紹了springboot項目整合druid數(shù)據(jù)庫連接池的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04Springboot中用 Netty 開啟UDP服務(wù)方式
這篇文章主要介紹了Springboot中用 Netty 開啟UDP服務(wù)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11Java如何實現(xiàn)支付寶電腦支付基于servlet版本
這篇文章主要介紹了Java如何實現(xiàn)支付寶電腦支付基于servlet版本,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-11-11idea全局設(shè)置Maven配置的實現(xiàn)步驟
本文主要介紹了idea全局設(shè)置Maven配置,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07springmvc使用JSR-303進行數(shù)據(jù)校驗實例
本篇文章主要介紹了詳解springmvc使用JSR-303進行數(shù)據(jù)校驗,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-02-02SpringBoot FailureAnalyzer實例使用教程
FailureAnalyzer是一種在啟動時攔截exception并將其轉(zhuǎn)換為human-readable消息的好方法,包含在故障分析中。SpringBoot為application context相關(guān)的exceptions,JSR-303驗證等提供了這樣的分析器,實際上很容易創(chuàng)建自己的2022-12-12使用sts工具、SpringBoot整合mybatis的詳細步驟
這篇文章主要介紹了使用sts工具、SpringBoot整合mybatis的詳細步驟,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-04-04