Chrome教程

炸裂:Spring官方支持DeepSeek!

嗨,大家好!最近的开发圈里,大家都在疯狂聊Spring的一个大新闻——Spring宣布接入DeepSeek!

我不禁感叹:“王炸啊!”一向有些“高冷”的Spring居然把这个超酷的国产AI模型给接进来了。就像我们程序员圈内那个“内功深厚”的老前辈,一下子找到了一个适合自己又强力的武器。

Image

今天,我就来和大家聊聊这个神操作是怎么回事,还有它给我们程序员带来了什么福利。

为什么是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绝对是个值得尝试的选择。

Image

好了,今天的分享就到这里,大家赶紧去试试Spring AI,给自己加个“AI加速器”!

最后,我为大家打造了一份deepseek的入门到精通教程,完全免费:https://www.songshuhezi.com/deepseek

同时,也欢迎加入下方的交流群,一起研究deepseek的最新玩法

图片