当前位置: 首页 > news >正文

深度求索—DeepSeek API的简单调用(Java)

DeepSeek简介

DeepSeek(深度求索)是由中国人工智能公司深度求索(DeepSeek Inc.)研发的大规模语言模型(LLM),专注于提供高效、智能的自然语言处理能力,支持多种场景下的文本生成、对话交互和多模态任务。

网页体验链接

DeepSeek开放平台

简单实现DeepSeek API的调用

1、API key申请

  • 登陆注册,实名认证之后,在deepseek开放平台上申请APIkey:

  • 点击创建API key

  • 输入名称即可完成创建,创建后会获得一个key

注:注意保存好这个key,点击关闭后无法再重新点开查看,如果丢失则需要重新进行创建

2、查看接口文档 

DeepSeek接口文档

参数

  • base_url: https://api.deepseek.com
  • api_key: apply for an key

3、简单的一个调用案例

  • 在pom.xml文件中导入依赖
        <dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp</artifactId><version>4.9.1</version> <!-- 请检查最新版本 --></dependency><dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.8.8</version> <!-- 请检查最新版本 --></dependency><dependency><groupId>org.json</groupId><artifactId>json</artifactId><version>20231013</version></dependency>
  •  创建一个简单的案例
import okhttp3.*;
import org.json.JSONArray;
import org.json.JSONObject;import java.io.IOException;
import java.util.Scanner;public class DeepSeekClient {private static final String BASE_URL = "https://api.deepseek.com/v1/chat/completions"; // API 端点private static final String API_KEY = "***"; // 替换为自己的 API Keyprivate final OkHttpClient client;public DeepSeekClient() {this.client = new OkHttpClient();}public String sendChatCompletionRequest(JSONArray messages) throws IOException {// 构建请求体JSONObject requestBody = new JSONObject();requestBody.put("model", "deepseek-chat"); // 模型名称requestBody.put("messages", messages); // 包含对话历史的 messages// 创建请求体RequestBody body = RequestBody.create(requestBody.toString(),MediaType.parse("application/json"));// 创建请求Request request = new Request.Builder().url(BASE_URL).post(body).addHeader("Authorization", "Bearer " + API_KEY).addHeader("Content-Type", "application/json").build();// 发送请求并获取响应try (Response response = client.newCall(request).execute()) {if (!response.isSuccessful()) {throw new IOException("Unexpected code: " + response.code());}return response.body().string();}}public static void main(String[] args) {DeepSeekClient client = new DeepSeekClient();Scanner scanner = new Scanner(System.in);JSONArray messages = new JSONArray(); // 用于保存对话历史// 设置高数老师的角色JSONObject systemMessage = new JSONObject();systemMessage.put("role", "system");systemMessage.put("content", "你是一位高数老师。请用简洁明了的语言回答我的问题。");messages.put(systemMessage);System.out.println("高数老师: 你好!你可以问我任何问题,输入 '退出' 来结束对话。");// 开始对话循环while (true) {System.out.print("你: ");String userInput = scanner.nextLine();// 如果用户输入 "退出",结束对话if ("退出".equalsIgnoreCase(userInput)) {System.out.println("高数老师: 再见!如果有其他问题,随时来找我。");break;}// 将用户输入添加到 messagesJSONObject userMessage = new JSONObject();userMessage.put("role", "user");userMessage.put("content", userInput);messages.put(userMessage);try {// 发送请求并获取 AI 的回复String response = client.sendChatCompletionRequest(messages);JSONObject jsonResponse = new JSONObject(response);JSONArray choices = jsonResponse.getJSONArray("choices");if (choices.length() > 0) {JSONObject firstChoice = choices.getJSONObject(0);JSONObject message = firstChoice.getJSONObject("message");String content = message.getString("content");// 打印 AI 的回复System.out.println("高数老师: " + content);// 将 AI 的回复添加到 messagesJSONObject assistantMessage = new JSONObject();assistantMessage.put("role", "assistant");assistantMessage.put("content", content);messages.put(assistantMessage);}} catch (IOException e) {e.printStackTrace();System.out.println("高数老师: 抱歉,我暂时无法回答你的问题。请稍后再试。");}}scanner.close();}
}

 4、运行程序

可以根据自己对AI预先设置的角色进行相关问答测试,以上为该案例的运行结果

http://www.lryc.cn/news/537451.html

相关文章:

  • flv实时监控视频
  • 有哪些免费的SEO软件优化工具
  • 跟着ai辅助学习vue3
  • 什么是Mustache
  • C++,STL容器适配器,priority_queue:优先队列深入解析
  • 1.综述 Google 的软件工程读书笔记
  • vue框架生命周期详细解析
  • 复杂电磁环境下无人机自主导航增强技术研究报告——地磁匹配与多源数据融合方法,附matlab代码
  • 蓝桥杯---排序数组(leetcode第912题)
  • 考研高数复习规范
  • Stable diffusion只换衣服的方法
  • 无人机航迹规划: 梦境优化算法(Dream Optimization Algorithm,DOA)求解无人机路径规划MATLAB
  • LlamaFactory可视化模型微调-Deepseek模型微调+CUDA Toolkit+cuDNN安装
  • 算法12-贪心算法
  • js实现点击音频实现播放功能
  • matlab平面波展开法计算的二维声子晶体带隙
  • Spring Boot (maven)分页3.0版本 通用版
  • 解决DeepSeek服务器繁忙问题
  • 小项目第一天
  • 家里WiFi信号穿墙后信号太差怎么处理?
  • 教育小程序+AI出题:如何通过自然语言处理技术提升题目质量
  • SpringMVC新版本踩坑[已解决]
  • 一款利器提升 StarRocks 表结构设计效率
  • 老牌软件,如今依旧坚挺
  • Plaid | 数据库切换历程:从 AWS Aurora MySQL 到 TiDB 的迁移之旅
  • MongoDB 扩缩容实战:涵盖节点配置、服务启动与移除操作
  • Python学习心得字符串拼接的几种方法
  • USB2.03.0摄像头区分UVC相机在linux中的常用命令
  • electron 学习
  • 美术教程2025