人工智能大数据,工作效率生产力
Ctrl + D 收藏本站,更多好用AI工具
当前位置:首页 » 最新消息

示例:JAVA调用deepseek

2025-03-15 4

近日,国产AI DeepSeek在中国、美国的科技圈受到广泛关注,甚至被认为是大模型行业的最大“黑马”。在外网,DeepSeek被不少人称为“神秘的东方力量”。1月27日,DeepSeek应用登顶苹果美国地区应用商店免费APP下载排行榜,在美区下载榜上超越了ChatGPT。同日,苹果中国区应用商店免费榜显示,DeepSeek成为中国区第一。总之就是deepseek目前比较火,同时也提供了开放平台,尝试接入一下,也比较方便,官网每个接口都提供了各种语言的示例代码,java采用的okhttp,我用httpurlconnection尝试下

示例:JAVA调用deepseek插图

一、获取 API key

开放平台地址:DeepSeek

登录deepseek开放平台,创建API keys,注意创建的时候复制key,要不然找不到了

示例:JAVA调用deepseek插图1

新账号有10元的体验额度,不足可以充值,10元体验额度的有效期为1个月

示例:JAVA调用deepseek插图2

v3和R1的收费标准

1. deepseek-chat 模型优惠期至北京时间 2025 年 2 月 8 日 24:00,期间 API 调用享历史价格,优惠结束后将按每百万输入 tokens 2 元,每百万输出 tokens 8 元计费
2. deepseek-reasoner 模型上线即按每百万输入 tokens 4 元,每百万输出 tokens 16 元计费

示例:JAVA调用deepseek插图3

二、获取开放API文档

接口地址:首次调用 API | DeepSeek API Docs

进入接口文档,提供了对话、补全、模型等接口,我们找一个【对话补全】接口,给了一个上下文,让他补充说话

示例:JAVA调用deepseek插图4

三、JAVA调用API文档

使用java调用API,跟其他接口没什么区别,方便上手,注意下入参和返回参数就可以,采用json格式。

—–对话上下文

{ "content": "欢迎加入虚拟电厂", "role": "system" , "name": "muyunfei" },

{ "content": "你好,虚拟电厂与deepseek结合的方向说一下吧", "role": "user" , "name": "路人甲"}

组装请求参数:

{ "messages": [{ "content": "欢迎加入虚拟电厂", "role": "system", "name": "muyunfei" }, { "content": "你好,虚拟电厂与deepseek结合的方向说一下吧", "role": "user", "name": "路人甲" }], "model": "deepseek-chat", "frequency_penalty": 0, "max_tokens": 2048, "presence_penalty": 0, "response_format": { "type": "text" }, "stop": null, "stream": false, "stream_options": null, "temperature": 1, "top_p": 1, "tools": null, "tool_choice": "none", "logprobs": false, "top_logprobs": null }

返回数据参数格式:

{ "id": "2fe86f3b-6e3b-4e65-b35a-1127c14c8739", "object": "chat.completion", "created": 1738810567, "model": "deepseek-chat", "choices": [{ "index": 0, "message": { "role": "assistant", "content": "Hello! How can I assist you today? 😊" }, "logprobs": null, "finish_reason": "stop" }], "usage": { "prompt_tokens": 9, "completion_tokens": 11, "total_tokens": 20, "prompt_tokens_details": { "cached_tokens": 0 }, "prompt_cache_hit_tokens": 0, "prompt_cache_miss_tokens": 9 }, "system_fingerprint": "fp_3a5770e1b4" }

————————————————————————

————————– 完整代码 ————————

 import java.io.BufferedInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.URL; import java.security.cert.CertificateException; import java.security.cert.X509Certificate; import javax.net.ssl.HostnameVerifier; import javax.net.ssl.HttpsURLConnection; import javax.net.ssl.SSLContext; import javax.net.ssl.SSLSession; import javax.net.ssl.SSLSocketFactory; import javax.net.ssl.TrustManager; import javax.net.ssl.X509TrustManager; import net.sf.json.JSONArray; import net.sf.json.JSONObject; /** * 实现了。。。。。。 * * @author 牟云飞 * *<p>Modification History:</p> *<p>Date Author Description</p> *<p>------------------------------------------------------------------</p> *<p>2025年2月4日 牟云飞 新建</p> */ public class DeepseekTestMain { private static final String DEEPSEEK_API_URL_COMPLETIONS = "https://api.deepseek.com/chat/completions"; // API地址 —— // 对话补全 private static final String DEEPSEEK_API_KEY = "换成自己的key"; // 官网申请的api key public static void main(String[] args) { DeepseekTestMain test = new DeepseekTestMain(); try { test.sendDeepseekChat(DEEPSEEK_API_URL_COMPLETIONS, "虚拟电厂与deepseek结合的方向说一下"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * 对话补全 * * @param mess * @return * @throws IOException */ public String sendDeepseekChat(String deepseekUrl, String context) throws IOException { String result = null; URL url_req = new URL(deepseekUrl); HttpsURLConnection connection = (HttpsURLConnection) url_req.openConnection(); // 设置参数 connection.setDoOutput(true); // 需要输出 connection.setDoInput(true); // 需要输入 connection.setUseCaches(false); // 不允许缓存 connection.setConnectTimeout(60000); // 设置连接超时 connection.setReadTimeout(60000); // 设置读取超时 connection.setRequestMethod("POST"); // 设置POST方式连接 // 设置请求属性 connection.setRequestProperty("Content-Type", "application/json"); connection.setRequestProperty("Accept", "application/json"); connection.setRequestProperty("Charset", "UTF-8"); // 设置请求头参数 connection.addRequestProperty("Authorization", "Bearer " + DEEPSEEK_API_KEY); // 设置appId HttpsURLConnection https = (HttpsURLConnection) connection; SSLSocketFactory oldSocketFactory = trustAllHosts(https); HostnameVerifier oldHostnameVerifier = https.getHostnameVerifier(); https.setHostnameVerifier(DO_NOT_VERIFY); // 输入数据 String requestData = "{ \"messages\": " + "[ " + " { \"content\": \"欢迎加入虚拟电厂\", \"role\": \"system\" , \"name\": \"muyunfei\" }, " + " { \"content\": \"你好,虚拟电厂与deepseek结合的方向说一下吧\", \"role\": \"user\" , \"name\": \"路人甲\"} " + "]," + " \"model\": \"deepseek-chat\"," + " \"frequency_penalty\": 0," + " \"max_tokens\": 2048," + " \"presence_penalty\": 0," + " \"response_format\": {\n \"type\": \"text\"\n }," + " \"stop\": null," + " \"stream\": false," + " \"stream_options\": null," + " \"temperature\": 1," + " \"top_p\": 1," + " \"tools\": null," + " \"tool_choice\": \"none\"," + " \"logprobs\": false," + " \"top_logprobs\": null}"; try (OutputStream os = connection.getOutputStream()) { byte[] input = requestData.getBytes("utf-8"); os.write(input,0,input.length); } // 输出数据 InputStream in = connection.getInputStream(); // 获取返回数据 BufferedInputStream bis = new BufferedInputStream(in); ByteArrayOutputStream baos = new ByteArrayOutputStream(); int c; while (-1 != (c = bis.read())) { baos.write(c); } bis.close(); in.close(); baos.flush(); byte[] data = baos.toByteArray(); String responseMsg = new String(data); System.out.println(responseMsg); // { // "id": "2fe86f3b-6e3b-4e65-b35a-1127c14c8739", // "object": "chat.completion", // "created": 1738810567, // "model": "deepseek-chat", // "choices": [{ // "index": 0, // "message": { // "role": "assistant", // "content": "Hello! How can I assist you today? 😊" // }, // "logprobs": null, // "finish_reason": "stop" // }], // "usage": { // "prompt_tokens": 9, // "completion_tokens": 11, // "total_tokens": 20, // "prompt_tokens_details": { // "cached_tokens": 0 // }, // "prompt_cache_hit_tokens": 0, // "prompt_cache_miss_tokens": 9 // }, // "system_fingerprint": "fp_3a5770e1b4" // } JSONObject jsonObject = JSONObject.fromObject(responseMsg); JSONArray choices = JSONArray.fromObject(jsonObject.get("choices"));// 获取补全内容,是个数组,多个补全回复多个 System.out.println(choices.toString()); JSONObject item = JSONObject.fromObject(JSONObject.fromObject(choices.get(0)).get("message")); System.out.println(item.get("content")); // 对JSON作解析 return result; } private SSLSocketFactory trustAllHosts(HttpsURLConnection connection) { SSLSocketFactory oldFactory = connection.getSSLSocketFactory(); try { SSLContext sc = SSLContext.getInstance("TLS"); sc.init(null, trustAllCerts, new java.security.SecureRandom()); SSLSocketFactory newFactory = sc.getSocketFactory(); connection.setSSLSocketFactory(newFactory); } catch (Exception e) { e.printStackTrace(); } return oldFactory; } private TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() { public java.security.cert.X509Certificate[] getAcceptedIssuers() { return new java.security.cert.X509Certificate[] {}; } public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { } public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException { } } }; private HostnameVerifier DO_NOT_VERIFY = new HostnameVerifier() { public boolean verify(String hostname, SSLSession session) { return true; } }; } 

原文链接:https://blog.csdn.net/myfmyfmyfmyf/article/details/145469456?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522dc3d9ebd4a3532e06c3bcc96fc65cdd3%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=dc3d9ebd4a3532e06c3bcc96fc65cdd3&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-3-145469456-null-null.nonecase&utm_term=deepseek

相关推荐

阅读榜

hellenandjeckett@outlook.com

加入QQ群:849112589

回顶部