spring ai如何调用deepseek api
时间: 2025-07-01 13:04:46 浏览: 13
### 如何在 Spring Boot 或 Spring Framework 中集成和调用 DeepSeek API
#### 使用 Spring Boot 实现 DeepSeek API 调用
为了实现高效且可扩展的 DeepSeek API 调用,可以采用基于响应式编程的方式构建应用程序。这不仅提高了系统的性能还增强了用户体验的质量[^1]。
```xml
<dependencies>
<!-- 添加对Spring AI的支持 -->
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-ollama-spring-boot-starter</artifactId>
<version>1.0.0-M6</version>
</dependency>
</dependencies>
```
通过引入 `spring-ai-ollama-spring-boot-starter` 依赖项来简化与 DeepSeek 的交互过程,使得开发者能够更专注于业务逻辑而非底层连接细节[^2]。
#### 创建配置类以初始化客户端实例
定义一个配置类用于设置必要的参数以及创建所需的 HTTP 客户端对象:
```java
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.reactive.function.client.WebClient;
@Configuration
public class WebClientConfig {
@Bean
public WebClient webClient() {
return WebClient.builder()
.baseUrl("https://api.deepseek.com/v1") // 假设这是DeepSeek的服务地址
.build();
}
}
```
此部分代码展示了如何借助于 `WebClient` 来发起异步请求给目标服务端点,并指定基础 URL 地址以便后续操作时无需重复书写完整的路径信息。
#### 编写 Service 层处理具体业务需求
接下来,在 service 层编写具体的业务方法来进行实际的数据交换工作:
```java
@Service
@Slf4j
@AllArgsConstructor(onConstructor_ = {@Autowired})
public class DeepSeekService {
private final WebClient webClient;
/**
* 发送消息到DeepSeek并获取回复.
*/
public Mono<String> sendMessage(String message) {
log.info("Sending message to DeepSeek: {}", message);
return webClient.post()
.uri("/chat/completions")
.bodyValue(Map.of(
"model", "deepseek-r1",
"messages", List.of(new Message(message))
))
.retrieve()
.bodyToMono(String.class)
.doOnError(error -> log.error("Error occurred while sending message.", error));
}
static record Message(String content) {}
}
```
上述示例中实现了向 DeepSeek 发起 POST 请求的功能,其中包含了所使用的模型名称 (`deepseek-r1`) 和待发送的消息体内容。返回的结果被封装在一个 `Mono<String>` 对象内,允许进一步执行链式的反应式操作。
#### 控制器层暴露 RESTful 接口供外部访问
最后一步是在控制器层设计相应的接口让前端或其他系统可以通过标准的HTTP协议与其通信:
```java
@RestController
@RequestMapping("/api/deepseek")
@RequiredArgsConstructor(onConstructor_ = {@Autowired})
class DeepSeekController {
private final DeepSeekService deepSeekService;
@PostMapping("/send-message")
ResponseEntity<Mono<String>> send(@RequestBody String message) {
return new ResponseEntity<>(this.deepSeekService.sendMessage(message), HttpStatus.OK);
}
}
```
这样就完成了一个简单的 Spring Boot 应用来调用 DeepSeek API 的全过程介绍。当然实际情况可能会更加复杂一些,比如需要考虑认证授权机制、错误重试策略等方面的问题[^3]。
阅读全文
相关推荐


















