重磅!Spring 原生支持 DeepSeek,AI 能力再升級!
在最新的 Spring 官方更新中,Spring AI 現(xiàn)已原生支持 DeepSeek!今天就帶大家了解如何在 Spring Boot 3.4 項(xiàng)目中集成 DeepSeek AI 服務(wù),整個(gè)過程十分簡單便捷。
Spring AI 介紹
Spring AI 是由 Spring 官方推出的開源框架,旨在為 Java 開發(fā)者提供便捷的 AI 集成方案。其核心目標(biāo)是通過抽象化和模塊化的設(shè)計(jì),使得 AI 功能能夠更簡單地融入 Spring 生態(tài)體系。以下是 Spring AI 的核心特點(diǎn):
- 統(tǒng)一的 API 抽象支持 OpenAI、DeepSeek、Google、Ollama 等多個(gè) AI 服務(wù),提供標(biāo)準(zhǔn)化的調(diào)用接口。
- 核心功能模塊支持模型交互、向量處理、檢索增強(qiáng)生成(RAG)以及函數(shù)調(diào)用等。
- 低代碼集成通過 Spring Boot Starter 依賴,可快速完成 AI 服務(wù)接入。
- 結(jié)構(gòu)化數(shù)據(jù)輸出能夠?qū)⒛P晚憫?yīng)直接映射為 Java 對象,方便后續(xù)數(shù)據(jù)處理。
- 流式數(shù)據(jù)響應(yīng)支持 Flux 流式輸出,適用于實(shí)時(shí)對話等高并發(fā)場景。
獲取 API KEY
由于 DeepSeek 官方服務(wù)可能存在調(diào)用壓力,我們可以選擇阿里云百煉平臺(tái)提供的 DeepSeek API。首先前往 阿里云百煉,搜索 DeepSeek 模型,點(diǎn)擊“立即體驗(yàn)”。然后在頁面右上角點(diǎn)擊鑰匙圖標(biāo),即可創(chuàng)建并獲取 API KEY。
Spring Boot 3.4 項(xiàng)目中集成 DeepSeek
添加 Spring AI 依賴
在 Spring Boot 3.4 項(xiàng)目的 pom.xml
文件中,引入 Spring AI 相關(guān)依賴:
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-openai-spring-boot-starter</artifactId>
<version>1.0.0-M6</version>
</dependency>
配置 AI 服務(wù)信息
在 application.yml
配置文件中,添加 DeepSeek API 相關(guān)參數(shù):
spring:
ai:
openai:
api-key: <YOUR_API_KEY> # 你的 API KEY
base-url: https://dashscope.aliyuncs.com/compatible-mode # 阿里云百煉 DeepSeek API 地址
chat:
options:
model: deepseek-r1 # DeepSeek 可選模型(deepseek-r1 或 deepseek-v3)
temperature: 0.8 # 控制文本生成的創(chuàng)造性,值越低越嚴(yán)謹(jǐn)
創(chuàng)建 DeepSeek 接口
在 com.icoderoad.controller
包下,創(chuàng)建 DeepSeekController
控制器:
package com.icoderoad.controller;
import org.springframework.ai.openai.OpenAiChatModel;
import org.springframework.ai.chat.prompt.Prompt;
import org.springframework.ai.chat.messages.UserMessage;
import org.springframework.ai.chat.ChatResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import reactor.core.publisher.Flux;
import java.util.Map;
@RestController
@RequestMapping("/ai")
public class DeepSeekController {
private final OpenAiChatModel chatModel;
@Autowired
public DeepSeekController(OpenAiChatModel chatModel) {
this.chatModel = chatModel;
}
/**
* 直接返回 AI 生成的答案
*/
@GetMapping("/chat")
public Map<String, String> chat(@RequestParam("message") String message) {
return Map.of("response", chatModel.call(message));
}
/**
* 流式輸出 AI 生成的答案
*/
@GetMapping(value = "/chatFlux", produces = MediaType.TEXT_EVENT_STREAM_VALUE + "; charset=UTF-8")
public Flux<ChatResponse> chatFlux(@RequestParam("message") String message) {
Prompt prompt = new Prompt(new UserMessage(message));
return chatModel.stream(prompt);
}
}
測試接口
直接調(diào)用 AI 接口
啟動(dòng) Spring Boot 項(xiàng)目后,使用 Postman 或?yàn)g覽器訪問:
GET http://localhost:8080/ai/chat?message=你好
服務(wù)器將返回 AI 生成的答案,可能會(huì)有一定的延遲。
采用流式輸出
調(diào)用流式輸出接口,獲取持續(xù)輸出的 AI 生成內(nèi)容:
GET http://localhost:8080/ai/chatFlux?message=你好
此方式適用于需要實(shí)時(shí)更新的聊天機(jī)器人、流式文本生成等場景。
總結(jié)
本次介紹了如何在 Spring Boot 3.4 中使用 Spring AI 集成 DeepSeek AI 服務(wù),并提供了同步和流式調(diào)用兩種方式。由于流式輸出響應(yīng)更快,適用于大多數(shù)實(shí)時(shí) AI 交互場景。希望本文能幫助大家更好地利用 Spring AI 進(jìn)行 AI 能力升級!