如何在Spring AI上接入DeepSeek

大家平时开发应用时,接入 AI 模型是不是觉得很麻烦?特别是不同 AI 服务商的接口和配置各不相同,光是对接就能让人头大。

而 Spring AI 就是来解决这个问题的!它从一些知名的 Python 项目(比如 LangChain 和 LlamaIndex)中汲取灵感,专门为 Java 应用提供了一套统一的解决方案。简单来说,它就像个“万能适配器”,帮你把各种 AI 模型轻松接入到你的应用中。

ai_tutorial_deepseek_integration_Spring_AI_1

Spring AI 的主要亮点有以下几点:

  • 统一接口:无论是 OpenAI、Hugging Face 还是国产的 DeepSeek,只要通过 Spring AI,你都可以用同样的方式调用它们。
  • 简化配置:不用再手动配置各种复杂的参数,Spring AI 会帮你搞定一切,比如 API 密钥、模型参数等。
  • 灵活切换:如果哪天你想换个 AI 服务商,只需要改个配置文件,业务代码基本不用动,省心又高效。

这次我们要讲的是如何用 Spring AI 来集成国产的 AI 模型 DeepSeek。这款模型最近很火,性能不错,很多公司都在考虑集成到自己的应用中。接下来,我会详细介绍两种集成方式:伪装成 OpenAI本地化部署

方法一:伪装成 OpenAI

DeepSeek 提供了 OpenAI 兼容模式,这意味着你可以用调用 OpenAI 的方式来调用 DeepSeek。Spring AI 的 openai starter 就是通过 RestTemplate 发请求的,我们只需要稍微改一下 URL 和认证方式就行了。

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 密钥:

    
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的模型名称

注意:API 密钥需要去 DeepSeek 开放平台申请,由于官网服务器资源紧张,已暂停 API 服务充值,所以我们需要其他的方法来获取,具体请看这篇:【获取DeepSeek API

3、在代码中调用

写一个简单的控制器,用于调用 DeepSeek 模型生成响应:

    
@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 模型,这种方式会更适合你。我们可以借助 Ollama 工具来本地部署一个 DeepSeek R1 蒸馏版。

1、部署DeepSeek本地模型

通过Ollama将DeepSeek部署到本地我已经写过教程了,大家可以参考这篇教程:【如何安装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
      chat:
        model: deepseek-r1:1.5b  # 与本地模型名称对应

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 的集成,无论是通过云端的 OpenAI 兼容模式,还是本地化部署,都非常简单方便。如果你正在寻找一款高效的国产 AI 模型,DeepSeek 值得一试。

ai_tutorial_deepseek_integration_Spring_AI_2

而 Spring AI 则让整个集成过程变得更加顺畅。我的感觉是,这种方式不仅降低了开发复杂度,还提升了代码的灵活性,强烈推荐试试!

阅读全文
img
付费
AI爆文训练营
图文变现友好赛道,低门槛、高上限,教你从0到1做个赚钱的公众号!
立即查看
躺着赚钱
¥149/年
何老师陪你做副业
这里聚焦AI副业、个人IP、自媒体运营、写作、赚钱案例。不哔哔,只分享有价值的副业项目。
立即查看
AI赚钱案例
限免
DeepSeek进阶教程
带你全面掌握DeepSeek应用技巧。提升工作、学习效率
立即查看
100万人学过
免费
Monica AI
Monica AI满血复活DeepSeek【免费】,提升您的聊天、搜索、写作和编程体验。
立即查看
一站式 AI 助手
云服务
腾讯云
综合性的云计算服务平台,现已接入DeepSeek,提供多样化的云解决方案
立即查看
高效可靠
云服务
阿里云
全球领先的云计算与数据服务平台,提供云服务器、存储、数据库、安全等多种服务
立即查看
多样化
编程学习
免费领取编程学习资料