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$", ""); /去除 null
JSONObject 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
<< 上一篇
下一篇 >>