Spring AI 是 Spring 生态系统中的一个重要项目,旨在将人工智能集成到 Spring 应用程序中,它为 Java 开发者提供了一种便捷的方式来构建、管理和部署 AI 模型。
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 项目中添加以下依赖:
<groupId>org.springframework.ai</groupId> <artifactId>spring-ai-openai-spring-boot-starter</artifactId> <version>0.8.0</version>
2、修改配置文件
在application.yml中配置 DeepSeek 的 OpenAI 兼容端点和 API 密钥:
spring: ai: openai: api-key: sk-xxx # 替换为你的API Key base-url: https://api.deepseek.com chat: options: model: deepseek-chat # 可选模型:deepseek-chat/deepseek-reasoner temperature: 0.7
注意:API 密钥需要去 DeepSeek 开放平台申请,由于官网服务器资源紧张,已暂停 API 服务充值,所以我们需要其他的方法来获取,具体请看之前的文章。
3、在代码中调用
写一个简单的控制器,用于调用 DeepSeek 模型生成响应:
@RestControllerpublic class ChatController { private final OpenAiChatModel chatModel;
public ChatController(OpenAiChatModel chatModel) { this.chatModel = chatModel; }
@GetMapping("/chat") public String generate(@RequestParam String message) { return chatModel.call(message); }}
这样,你就可以通过/ai/chat接口发送消息,并获取 DeepSeek 的响应了。
4、覆盖默认配置(可选)
如果某些请求需要使用不同的模型或参数,可以在调用时临时覆盖默认配置:
@GetMapping(value = "/stream", produces = "text/event-stream")public Flux<String> streamChat(@RequestParam String message) { return chatModel.stream(new Prompt(message)) .map(ChatResponse::getResult) .map(Generation::getContent);}
方法二:本地化部署
如果你更倾向于在本地或者内网服务器中部署 DeepSeek 模型,这种方式会更适合你。我们可以借助 Ollama 工具来本地部署一个 DeepSeek R1 蒸馏版。
1、根据硬件条件选择部署方式:
轻量级部署:使用DeepSeek-R1蒸馏模型(8B/14B参数)
企业级部署:部署完整版DeepSeek-R1(需404GB存储+1300GB显存)
2、环境准备硬件要求:
最低配置:NVIDIA RTX 3090(24GB显存)
推荐配置:NVIDIA A100(80GB显存)
3、部署DeepSeek本地模型
通过Ollama将DeepSeek部署到本地我已经写过教程了,大家可以参考这篇教程:【告别服务器卡顿!零基础本地部署DeepSeek大模型,Windows/Mac双系统保姆级教程!】
将DeepSeek部署到本地后再回来进行后续操作。
4、添加依赖
在 Maven 项目中添加以下依赖:
<groupId>org.springframework.ai</groupId> <artifactId>spring-ai-ollama-spring-boot-starter</artifactId> <version>0.8.0</version>
5、修改配置文件
在application.yml中配置 Ollama 的本地服务地址和模型名称:
6、在代码中调用
写一个控制器,用于调用本地部署的 DeepSeek 模型:
@RestControllerpublic class LocalChatController { private final OllamaChatModel chatModel;
public LocalChatController(OllamaChatModel chatModel) { this.chatModel = chatModel; }
@GetMapping("/local-chat") public String localChat(@RequestParam String message) { return chatModel.call(message); }
@GetMapping(value = "/local-stream", produces = "text/event-stream") public Flux<String> streamChat(@RequestParam String message) { return chatModel.stream(new Prompt(message)) .map(ChatResponse::getResult) .map(Generation::getContent); }}
通过 Spring AI,我们可以轻松实现 DeepSeek 的集成,无论是通过云端的 OpenAI 兼容模式,还是本地化部署,都非常简单方便。如果你正在寻找一款高效的国产 AI 模型,DeepSeek 值得一试。
而 Spring AI 则让整个集成过程变得更加顺畅。我的感觉是,这种方式不仅降低了开发复杂度,还提升了代码的灵活性,强烈推荐试试!
领取专属 10元无门槛券
私享最新 技术干货