如何在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 则让整个集成过程变得更加顺畅。我的感觉是,这种方式不仅降低了开发复杂度,还提升了代码的灵活性,强烈推荐试试!

版权属于: sbboke版权所有。

转载时必须以链接形式注明作者和原始出处及本声明。

张贴在Spring AI 集成

相关文章

0 0 投票数
文章评分
订阅评论
提醒
0 评论
最旧
最新 最多投票
内联反馈
查看所有评论