springboot调用deepseek
时间: 2025-02-20 18:04:01 浏览: 113
### SpringBoot 调用 DeepSeek 的实现
#### 创建 API Key
为了使应用程序能够访问 DeepSeek 接口,需先创建 `deepseek` API key。这一步骤对于确保安全性和身份验证至关重要[^1]。
#### 添加依赖项
在项目的 `pom.xml` 文件中加入必要的 Maven 依赖来支持 HTTP 请求和其他可能需要的功能:
```xml
<dependencies>
<!-- 其他已有依赖 -->
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>4.9.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.12.3</version>
</dependency>
</dependencies>
```
上述代码片段展示了如何引入 OkHttp 和 Jackson 库用于发起网络请求以及处理 JSON 数据交换[^2]。
#### 编写服务类
定义一个 Java 类来进行实际的服务调用操作,在此类内部封装了向 DeepSeek 发送 POST 请求的方法:
```java
import okhttp3.*;
import com.fasterxml.jackson.databind.ObjectMapper;
public class DeepSeekService {
private static final String BASE_URL = "https://api.deepseek.com/v1";
private OkHttpClient client;
private ObjectMapper mapper;
public DeepSeekService(String apiKey) {
this.client = new OkHttpClient();
this.mapper = new ObjectMapper();
// 设置默认头部信息
Headers headers = new Headers.Builder()
.add("Authorization", "Bearer " + apiKey)
.build();
Request request = new Request.Builder().url(BASE_URL).headers(headers).build();
}
/**
* 向DeepSeek发送查询请求.
*/
public Response sendQuery(String queryText) throws Exception{
JSONObject jsonBody = new JSONObject();
jsonBody.put("prompt", queryText);
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, jsonBody.toString());
Request request = new Request.Builder()
.url(BASE_URL + "/query")
.post(body)
.build();
Call call = client.newCall(request);
return call.execute();
}
}
```
这段程序实现了通过给定的 API 密钥初始化客户端对象,并提供了一个方法用来执行具体的查询任务。
#### 控制器层接口设计
最后,在控制器层面暴露 RESTful 风格的端点供外部调用者使用:
```java
@RestController
@RequestMapping("/api/deepseek")
public class DeepSeekController {
@Autowired
private DeepSeekService service;
@PostMapping("/query")
public ResponseEntity<String> handlePost(@RequestBody Map<String,String> payload){
try {
String result = service.sendQuery(payload.get("text")).body().string();
return ResponseEntity.ok(result);
} catch (Exception e) {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(e.getMessage());
}
}
}
```
此部分负责接收来自前端或其他系统的 POST 请求并将它们转发至之前构建的服务逻辑中去处理。
阅读全文
相关推荐

















