程序员老鬼

如何通过Spring AI接入DeepSeek模型?

在开发应用时,接入AI模型往往是一项繁琐的工作,尤其是面对不同AI服务商的接口和配置差异,可能会让开发者头疼不已。

但是,Spring AI的出现给我们带来了一个简单、高效的解决方案,它为Java开发者提供了一个统一的框架,让接入各种AI服务变得轻松便捷。

本文将介绍如何使用Spring AI来集成国产的DeepSeek模型,不论是通过云端服务还是本地部署,都可以轻松实现。

为什么选择Spring AI?

Spring AI的最大亮点在于它为不同的AI模型提供了一个统一的接口。你不再需要为每个AI服务商的不同接口编写代码,只要通过Spring AI,你就能以相同的方式调用各种AI模型,包括OpenAI、Hugging Face,当然也包括DeepSeek等国内AI服务。

Image

另外,Spring AI还简化了配置过程,你不再需要手动配置各种复杂的参数,所有的API密钥、模型设置等都可以通过Spring AI进行自动配置,大大减轻了开发者的负担。

方法一:通过OpenAI兼容模式接入DeepSeek

DeepSeek为开发者提供了OpenAI兼容模式,这意味着你可以像调用OpenAI一样调用DeepSeek,Spring AI也正好支持这一方式。通过这种方式,你只需要稍微修改配置,就能实现与DeepSeek的连接。

步骤1:添加依赖

首先,在你的项目中引入Spring AI的OpenAI Starter。你可以在pom.xml中添加以下依赖:

<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-openai-spring-boot-starter</artifactId>
<version>0.8.1</version>
</dependency>

步骤2:配置DeepSeek的API

在application.yml文件中配置DeepSeek的OpenAI兼容端点和API密钥,类似于以下内容:

spring:
ai:
openai:
base-url:https://api.deepseek.com/v1
api-key:sk-your-deepseek-key-here
chat.options:
model:deepseek-chat

步骤3:代码调用

接下来,我们可以编写一个简单的控制器,通过Spring AI调用DeepSeek模型生成响应:

@RestController
@RequestMapping("/ai")
publicclassChatController {

privatefinal ChatClient chatClient;

publicChatController(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的响应了。

方法二:本地部署DeepSeek

如果你希望将DeepSeek部署在本地服务器上,而不是使用云端API,Spring AI也提供了本地部署的支持。你可以使用Ollama工具将DeepSeek模型本地化部署,然后通过Spring AI与之进行交互。

步骤1:本地部署DeepSeek模型

首先,通过Ollama工具将DeepSeek模型部署到本地服务器。具体的部署过程可以参考这篇文章《DeepSeek满血复活,直接起飞!》。

步骤2:添加依赖

在Maven项目中添加Spring AI的Ollama Starter依赖:

<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-ollama-spring-boot-starter</artifactId>
<version>0.8.1</version>
</dependency>

步骤3:配置本地服务

在application.yml文件中配置Ollama的本地服务地址和DeepSeek模型名称:

spring:
ai:
ollama:
base-url:http://localhost:11434
chat:
model:deepseek-r1:1.5b

步骤4:代码调用

最后,你可以通过以下代码来调用本地部署的DeepSeek模型:

@RestController
@RequestMapping("/ai")
publicclassChatController {

privatefinal ChatClient chatClient;

publicChatController(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();
        }
    }
}

通过这种方式,你就能够通过本地化部署的DeepSeek模型进行交互。

总结

通过Spring AI,我们可以非常方便地集成DeepSeek模型。无论是使用OpenAI兼容模式调用云端服务,还是本地部署模型,Spring AI都提供了灵活、高效的解决方案。这种方式不仅简化了配置,降低了开发的复杂度,还使得切换AI服务商变得更加容易。

Image

对于那些希望在自己的应用中集成国产AI模型的开发者,DeepSeek是一个不错的选择,结合Spring AI的使用,能够让整个集成过程更加顺畅。

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

也可以看我写的这篇文章《DeepSeek满血复活,直接起飞!》来进行本地搭建。

-END-

ok,今天先说到这,老规矩,给大家分享一份不错的副业资料,感兴趣的同学可以链接我,微信:hls404 找我领取。

以上,就是今天的分享了,看完文章记得右下角点赞,也欢迎在评论区写下你的留言。