炸裂:Spring官方支持DeepSeek!
嗨,大家好!最近的开发圈里,大家都在疯狂聊Spring的一个大新闻——Spring宣布接入DeepSeek!
我不禁感叹:“王炸啊!”一向有些“高冷”的Spring居然把这个超酷的国产AI模型给接进来了。就像我们程序员圈内那个“内功深厚”的老前辈,一下子找到了一个适合自己又强力的武器。
今天,我就来和大家聊聊这个神操作是怎么回事,还有它给我们程序员带来了什么福利。
为什么是Spring AI?
要说Spring这个框架,不用我多说大家也都知道,它在Java开发中是多么的“吃香”。无论是大企业的系统架构,还是一些小而美的项目,Spring都能轻松应对。而这次,Spring推出的Spring AI,就是解决了Java开发者接入AI模型的一个大难题。
你有没有遇到过这种情况:用Python接入一些AI模型,想把它们移植到Java应用中,发现不同的AI服务商、不同的API接口,都得一个个地调试,搞得头大。Spring AI来了,它就是为了消除这种“接口不统一”的痛点。
Spring AI 的亮点
说到Spring AI的亮点,那可是满满的“程序员福音”。接下来我给大家列几个核心点,都是“让你眼前一亮”的存在:
统一接口:Spring AI打破了不同AI服务商接口的壁垒,你可以通过统一的API调用方式来接入OpenAI、Hugging Face,甚至是国产的DeepSeek。是不是听起来就很方便? 简化配置:我们知道,配置这些AI接口有时候就像拆开一个魔方,特别是API密钥、模型参数等配置搞得人头大。但Spring AI告诉你,不用担心,这些都由它帮你搞定。 灵活切换:如果你有一天突然想换个AI服务商,只需要修改配置文件,业务代码几乎不需要动,想不高效都难。
总的来说,Spring AI的出现,给我们Java开发者带来了极大的便利,特别是在集成AI模型的时候,省时省力又省心。那既然如此,让我们一起来看看具体的接入方式吧!
集成方式一:伪装成OpenAI
先来看看Spring如何让DeepSeek伪装成OpenAI,这样我们就能通过类似OpenAI的接口来调用DeepSeek的功能。想想看,多好!你根本不需要重新学习什么新API,只需要用Spring提供的工具就能直接调用。
1、添加依赖
在Maven项目里,添加以下依赖:
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-openai-spring-boot-starter</artifactId>
<version>0.8.1</version>
</dependency>
2、修改配置文件
接下来,你只需要在application.yml中配置DeepSeek的OpenAI兼容端点和API密钥。注意,API密钥得去DeepSeek开放平台申请哦。
⚠️ 友情提醒:目前 DeepSeek 官网暂停了 API 充值,但别慌,我们可以用一个稳定的中转站:腾讯云 API 代理:https://curl.qcloud.com/T3M5yBHp
spring:
ai:
openai:
base-url: https://api.deepseek.com/v1 # DeepSeek的OpenAI式端点
api-key: sk-your-deepseek-key-here
chat.options:
model: deepseek-chat # 指定DeepSeek的模型名称
3、在代码中调用
完成以上配置后,就可以在代码中用Spring AI的API进行调用啦!下面是一个简单的控制器,处理聊天请求:
@RestController
@RequestMapping("/ai")
public class ChatController { private final ChatClient chatClient;
public ChatController(ChatClient.Builder chatClientBuilder) {
this.chatClient = chatClientBuilder.build();
}
@GetMapping("/chat")
public String generate(@RequestParam(value = "message") String message) {
return chatClient.prompt(message).call().content();
}
}
这样,你就可以通过/ai/chat接口,发送消息并获取DeepSeek的响应了。简单吧!
4、覆盖默认配置(可选)
如果你需要为某些请求临时调整模型或参数,可以这样做:
ChatResponse response = chatModel.call(
new Prompt(
"Generate the names of 5 famous pirates.",
OpenAiChatOptions.builder()
.withModel("deepseek-chat")
.withTemperature(0.4)
.build()
));
集成方式二:本地化部署
如果你不想依赖云端服务,想要在本地或者内网服务器中部署DeepSeek模型,那就选择本地化部署吧!本地部署的好处,大家都懂——省心、省钱,数据都在自己手里。
1、部署DeepSeek本地模型
你可以使用Ollama工具来本地部署DeepSeek的模型,我已经写过相关的教程,大家可以参考这篇:如何安装DeepSeek本地模型。部署完成后,我们就可以继续后续的步骤了。
2、添加依赖
和云端部署一样,在Maven项目中添加依赖:
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-ollama-spring-boot-starter</artifactId>
<version>0.8.1</version>
</dependency>
3、修改配置文件
在application.yml中配置Ollama的本地服务地址和模型名称。例如:
spring:
ai:
ollama:
base-url: http://localhost:11434 # 本地Ollama服务地址
chat:
model: deepseek-r1:1.5b # 本地DeepSeek模型名称
4、在代码中调用
最后,再写一个控制器来调用本地部署的DeepSeek模型:
@RestController
@RequestMapping("/ai")
public class ChatController { private final ChatClient chatClient;
public ChatController(ChatClient.Builder chatClient) {
this.chatClient = chatClient.build();
}
@GetMapping("/chat")
public ResponseEntity<Flux<String>> chat(@RequestParam(value = "message") String message) {
try {
Flux<String> response = chatClient.prompt(message).stream().content();
return ResponseEntity.ok(response);
} catch (Exception e) {
return ResponseEntity.badRequest().build();
}
}
}
最后,结束语
无论你选择使用Spring AI的云端服务,还是本地部署DeepSeek模型,都非常方便。特别是Spring AI简化了配置过程,使得我们作为开发者可以更专注于业务逻辑,而不是API接口的繁琐配置。如果你正好在找一个高效的国产AI模型,DeepSeek绝对是个值得尝试的选择。
好了,今天的分享就到这里,大家赶紧去试试Spring AI,给自己加个“AI加速器”!
最后,我为大家打造了一份deepseek的入门到精通教程,完全免费:https://www.songshuhezi.com/deepseek
同时,也欢迎加入下方的交流群,一起研究deepseek的最新玩法