2025-02-14 11:58:39来源:兔叽下载站编辑:花降
在开始之前,请确保您的开发环境已经安装了java开发工具包(jdk)和集成开发环境(ide),例如intellij idea或eclipse。同时,您需要注册并获取到deepseek平台提供的api密钥。
一、准备阶段:别急着写代码
(1)先到Deepseek官网注册开发者账号,拿到专属的API Key,这个就像你家门的钥匙,千万别暴露在GitHub上(别问我怎么知道的)
最近很多小伙伴反馈DeepSeek无法充值,新注册的也无赠送金额,API就没办法调用,大家也可注册获取使用Deepseek模型的平台,注册后生成API密钥即可,注册即送 2000 万 Tokens,完全够我们使用了
注册后点击“API密钥”生成硅基的API-KEY
(2)新建Maven项目时,推荐直接用Spring Initializr生成骨架,勾选Web和Lombok依赖,省去后续配置的麻烦
(3)在pom.xml里添加这两个救命依赖:
二、三步写出第一个AI请求
(1)创建请求体包装类:
@Data
@Builder
public class DeepseekRequest {
String model;
List
@Data
@Builder
public static class Message {
String role;
String content;
}
}
(2)构建HTTP客户端:
public class DeepseekClient {
//如果使用硅基平台,API_URL修改为 "https://api.siliconflow.cn/v1/chat/completions"
static final String API_URL = "https://api.deepseek.com/v1/chat/completions";
final OkHttpClient client = new OkHttpClient();
final Gson gson = new Gson();
public String getResponse(String apiKey, String prompt) throws IOException {
// 构建请求体
Message message = Message.builder()
.role("user")
.content(prompt).build();
//如果使用硅基平台,model修改为 "deepseek-ai/DeepSeek-V3"
DeepseekRequest requestBody = DeepseekRequest.builder()
.model("deepseek-chat")
.messages(Collections.singletonList(message))
.build();
// 创建HTTP请求
Request request = new Request.Builder()
.url(API_URL)
.post(RequestBody.create(gson.toJson(requestBody), MediaType.get("application/json")))
.addHeader("Authorization", "Bearer " + apiKey)
.build();
// 发送请求并处理响应
try (Response response = client.newCall(request).execute()) {
if (!response.isSuccessful()) {
throw new IOException("Unexpected code " + response);
}
return response.body().string();
}
}
}
(3)在Controller里优雅调用:
@RestController
public class ChatController {
@Value("${deepseek.api.key}")
String apiKey;
@PostMapping("/ask")
public String askQuestion(@RequestBody String question) {
try {
return new DeepseekClient().getResponse(apiKey, question);
} catch (IOException e) {
return "出错了:" + e.getMessage();
}
}
}
三、新手避坑指南
(1)遇到401错误先检查三件事:API Key是否正确、是否带Bearer前缀、请求头名称拼写对不对
(2)返回乱码时记得设置Content-Type为application/json; charset=utf-8
(3)建议用@Value注解从application.yml读取API Key,千万别把密钥硬编码在代码里
(4)给HTTP请求加上超时配置,防止线程被卡死:
OkHttpClient client = new OkHttpClient.Builder()
.connectTimeout(30, TimeUnit.SECONDS)
.readTimeout(60, TimeUnit.SECONDS)
.build();
四、扩展玩法
给AI对话加上记忆功能其实很简单,只需要在messages列表里维护历史对话:
List
messages.add(Message.builder().role("system").content("你是一个资深的Java工程师").build());
messages.add(Message.builder().role("user").content("如何实现分布式锁?").build());
建议:先跑通基础流程,再逐步添加重试机制、结果缓存等高级功能。对接API就像搭积木,重要的是先让整个流程转起来。遇到问题别慌,善用Postman测试接口,多看官方文档的错误码说明。记住,每个报错都是进步的阶梯!
系统工具 | 96.1M | 2025-02-20
进入
系统工具 | 96.1M | 2025-02-20
进入
系统工具 | 96.1M | 2025-02-20
进入
社交聊天 | 18.12MB | 2025-02-20
进入
社交聊天 | 99.52MB | 2025-02-20
进入
社交聊天 | 223.89MB | 2025-02-20
进入
社交聊天 | 125.89MB | 2025-02-20
进入
社交聊天 | 44.79MB | 2025-02-20
进入
影音播放 | 96.1M | 2025-02-19
进入
系统工具 | 33.11M | 2025-02-19
进入