main
HuangHai 2 months ago
parent 7f53a798cc
commit d7425679a2

@ -0,0 +1,81 @@
package com.dsideal.Res.Util;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
public class CallDeepSeek {
private static final String API_KEY = "sk-44ae895eeb614aa1a9c6460579e322f1"; // 请替换为您的API KEY
private static final String API_URL = "https://api.deepseek.com/v1/chat/completions";
public static void callDeepSeekStream(String prompt, SSEListener listener) {
new Thread(() -> {
try {
JSONObject json = new JSONObject();
json.set("model", "deepseek-chat");
json.set("messages", JSONUtil.parseArray(
"[{\"role\":\"user\",\"content\":\"" + prompt + "\"}]"
));
json.set("stream", true); // 启用流式响应
HttpRequest request = HttpRequest.post(API_URL)
.header("Content-Type", "application/json")
.header("Authorization", "Bearer " + API_KEY)
.header("Accept", "text/event-stream") // SSE支持
.body(json.toString());
HttpResponse response = request.execute();
if (response.isOk()) {
// 处理流式响应
String[] lines = response.body().split("\\r?\\n");
for (String line : lines) {
if (line.startsWith("data:")) {
String data = line.substring(5).trim();
if (!data.equals("[DONE]")) {
listener.onData(data);
}
}
}
listener.onComplete();
} else {
listener.onError("API请求失败: " + response.getStatus());
}
} catch (Exception e) {
listener.onError(e.getMessage());
}
}).start();
}
public static void main(String[] args) {
callDeepSeekStream("你好", new SSEListener() {
@Override
public void onData(String data) {
System.out.println("收到数据: " + data);
}
@Override
public void onComplete() {
System.out.println("流式传输完成");
}
@Override
public void onError(String error) {
System.err.println("错误: " + error);
}
});
// 保持主线程运行
try {
Thread.sleep(30000); // 等待30秒
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public interface SSEListener {
void onData(String data);
void onComplete();
void onError(String error);
}
}
Loading…
Cancel
Save