网站广告怎么放,直播系统源码,seo研究中心vip课程,wordpress 上传rar1.deepseek的api创建
deepseek官网链接
点击右上API开放平台后找到API keys 创建APIkey#xff1a; 注意#xff1a;创建好的apikey只能在创建时可以复制#xff0c;要保存好
2.java实现请求deepseek
使用springbootmaven
2.1 pom文件#xff1a;
?xml version 注意创建好的apikey只能在创建时可以复制要保存好
2.java实现请求deepseek
使用springbootmaven
2.1 pom文件
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion3.4.2/versionrelativePath/ !-- lookup parent from repository --/parentgroupIdcom.demo/groupIdartifactIddeepseek-java/artifactIdversion0.0.1-SNAPSHOT/versionnamedeepseek-java/namedescriptionDemo project for Spring Boot/descriptionpropertiesjava.version21/java.version/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactIdversionRELEASE/versionscopecompile/scope/dependencydependencygroupIdorg.json/groupIdartifactIdjson/artifactIdversion20231013/version/dependencydependencygroupIdcom.squareup.okhttp3/groupIdartifactIdokhttp/artifactIdversion4.12.0/version/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/buildrepositoriesrepositoryidmaven-ali/idurlhttp://maven.aliyun.com/nexus/content/groups/public///urlreleasesenabledtrue/enabled/releasessnapshotsenabledtrue/enabledupdatePolicyalways/updatePolicychecksumPolicyfail/checksumPolicy/snapshots/repository/repositoriespluginRepositoriespluginRepositoryidpublic/idnamealiyun nexus/nameurlhttp://maven.aliyun.com/nexus/content/groups/public//urlreleasesenabledtrue/enabled/releasessnapshotsenabledfalse/enabled/snapshots/pluginRepository/pluginRepositories/project2.2 json转化文件
参数可以参考DeepSeek API 文档
import org.json.JSONArray;
import org.json.JSONObject;/*** Description:自定义json转化* Author:* Date: 2025/2/20* Version: v1.0*/
public class JsonExample {/*** toJson* param msg 你要输入的内容* param model 模型类型 例如 deepseek-chat、deepseek-reasoner* return 组装好的json数据*/public static String toJson(String msg,String model){// 创建JSON对象JSONObject json new JSONObject();// 创建messages数组JSONArray messages new JSONArray();// 添加第一个messageJSONObject systemMessage new JSONObject();systemMessage.put(content, You are a helpful assistant);systemMessage.put(role, system);messages.put(systemMessage);// 添加第二个messageJSONObject userMessage new JSONObject();userMessage.put(content, msg);userMessage.put(role, user);messages.put(userMessage);// 将messages数组添加到JSON对象json.put(messages, messages);// 添加其他字段json.put(model, model);json.put(frequency_penalty, 0);json.put(max_tokens, 2048);json.put(presence_penalty, 0);// 添加response_format对象JSONObject responseFormat new JSONObject();responseFormat.put(type, text);json.put(response_format, responseFormat);// 添加其他字段json.put(stop, JSONObject.NULL);json.put(stream, false);json.put(stream_options, JSONObject.NULL);json.put(temperature, 1);json.put(top_p, 1);json.put(tools, JSONObject.NULL);json.put(tool_choice, none);json.put(logprobs, false);json.put(top_logprobs, JSONObject.NULL);// 控制台打印输出JSON字符串并且使用2个空格进行缩进//System.out.println(json.toString(2));return json.toString();}
}转化后JSON如下
{messages: [{content: You are a helpful assistant,role: system},{content: Hi,role: user}],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
}
2.2 实现类
import okhttp3.*;import java.io.IOException;/*** Description:* Author:* Date: 2025/2/20* Version: v1.0*/
public class MyDeepSeekClient {private static final String API_URL https://api.deepseek.com/chat/completions; // 替换为实际的API URLprivate static final String API_KEY 你的APIkey; // 替换为实际的API密钥public static void main(String[] args) {try {String json JsonExample.toJson(你好, deepseek-chat);OkHttpClient client new OkHttpClient().newBuilder().build();MediaType mediaType MediaType.parse(application/json);RequestBody body RequestBody.create(mediaType, json);Request request new Request.Builder().url(API_URL)//deepseek的API.method(POST, body).addHeader(Content-Type, application/json).addHeader(Accept, application/json).addHeader(Authorization, Bearer API_KEY)//deepseek的API_KEY.build();// 异步发送 POST 请求client.newCall(request).enqueue(new Callback() {Overridepublic void onFailure(Call call, IOException e) {e.printStackTrace();}Overridepublic void onResponse(Call call, Response response) throws IOException {try {if (response.isSuccessful()) {//判断响应是否成功// 成功System.out.println(状态码: response.code());System.out.println(响应体: response.body().string());} else {// 失败System.out.println(状态码: response.code());System.out.println(响应体: response.body().string());}} finally {// 关闭响应体防止资源泄漏response.close();}}});} catch (Exception e) {e.printStackTrace();}}
}输入结果如下
状态码: 200
响应体: {id:6d83333a-ac8e-4ebf-9030-dc4e5ec620a3,object:chat.completion,created:1740040067,model:deepseek-chat,choices:[{index:0,message:{role:assistant,content:你好很高兴见到你。有什么我可以帮忙的吗},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}
注意事项 响应体大小如果响应体较大直接调用responseBody.string()可能会占用大量内存。对于大文件或流式数据可以使用responseBody.byteStream()或responseBody.charStream()。