deepseek api Java调用简单的实现
deepseek api Java调用简单的实现
最近一段时间deepseek很火,有点抢了GPT的风头,但是使用发现问题
deepseek网页版还是APP版,只要输入问题就直接卡顿,服务器繁忙了
到底是什么原因呢,其实啊,就是使用的人太多了,另外,有些人还在DDOS导致的(竞争)
deepseek也提供了API调用的功能
我们来看看


但是API充值业务不能使用了

这是官方的API调用文档
我们本地搭建了一个离线版的deepseek
使用效果其实也一般

我们换成
https://account.siliconflow.cn/login
通过调用模型,使用Chatbox还行
那么我们看看他的文档API调用

似乎对API调用非常友好

这里分别是各种语言,调用API做了案例的展示
我们看看是怎么调用的,我们是否可以做一个类似的tools呢

来到java项
看到调用的规则
给出的调用规则是这样的
首先调用的API接口是:
https://api.siliconflow.cn/v1/chat/completions
Authorization
也就是认证了,这里需要提供一个人用户的TOKEN,也就是KEY
发送类别是JSON
body
是发送的参数包,
content\
是你要提问的参数
我们如果实现在JAVA中调用API中,分析一下思路
1、首先POST包,调用
https://api.siliconflow.cn/v1/chat/completions
提供TOKEN
2、根据发包,获取到回显包
3、对数据进行处理,如果有数组,还需要对数组进行解析,去查找关键点,因为我们输出的数据,是那种JSON,有的数据是我们不需要的
我们先用常见的进行输出

这是一个POST方法
我们先来试试这个默认回显结果

看看回显结果

我们可以看到
content":"Hello! How can I assist you today?"
这就是回显内容了
调用的是"model":"deepseek-ai/DeepSeek-V3",模型
那么其他的,我们不需要,就可以不让他输出了
我们来尝试编写
由于是https协议,先支持该协议
HostnameVerifier hv = HostnameVerifier() {
(String urlHostName, SSLSession session) {
;
}
};
TrustManager[] trustAllCerts = {TrustAllTrustManager()};
SSLContext sc = SSLContext.();
SSLSessionContext sslsc = sc.getServerSessionContext();
sslsc.setSessionTimeout();
sc.init(, trustAllCerts, );
HttpsURLConnection.(sc.getSocketFactory());
HttpsURLConnection.(hv);使用
HttpURLConnection
标准库进行编写
connection.setRequestProperty("Authorization", "Bearer 这里写上你的token");由于网络延时,这里加上一个线程启动
Platform.runLater(() -> {重点是处理json数据
回显包里有数组,需要进行
JSONArray解析 具体写法:
String jsonResponse = response.toString().replaceAll("null$", ""); /去除 nullJSONObject jsonObject = JSONObject.(jsonResponse); 字符串转化为JSONObject JSONArray choicesArray = jsonObject.getJSONArray(); 获取定义的choices数组
(choicesArray.size() > ) { 判断是否为空
JSONObject firstChoice = choicesArray.getJSONObject(0); 取第一个元素
JSONObject message = firstChoice.getJSONObject("message"); 元素中获取对象
String content = message.getString("content"); 提取需要的content数据这里加了一个判断
if(!content.isEmpty()){
testsd.setText(content);
}else{
testsd.appendText("数据返回错误!");如果输出的
content
数据不等于空,输出数据,否则弹出信息,数据返回数据
判断catch异常后
加入线程启动
Platform.(() -> {
});
}
}).start();那么API调用就实现了
我们来看看效果

工具成功实现调用api
<< 上一篇
下一篇 >>