Java接入DeepSeek的保姆级教程(适合新手)

对于目前的DeepSeek大家应该都不是很陌生,目前也是最流行的一款AI软件了,所以为了让我们开发更全面,能够在自己的项目中融入AI那就会很全面了,所以这次的文章,将模拟一个基础案例,可以在这个基础案例迭代实现出你自己的AI,需要的朋友可以参考下

目录
  • 前言
  • 1、获取自己在DeepSeek上的token
  • 2、引入依赖
  • 3、创建实体类
  • 4、创建Controller层
  • 5、启动项目、调用自己的接口

前言

对于目前的DeepSeek大家应该都不是很陌生,目前也是最流行的一款AI软件了,所以为了让我们开发更全面,能够在自己的项目中融入AI那就会很全面了,所以这次的文章,将模拟一个基础案例,可以在这个基础案例迭代实现出你自己的AI。

话不多说,也不介绍我的网站了,直接开始进行一下流程。

使用的:JDK 17     

1、获取自己在DeepSeek上的token

网站: DeepSeek | 深度求索  ,点击API开放平台找到API keys  获取自己的key,注意你的key一定要保存好了

2、引入依赖

这个就不多说了,在你的pom文件中引入相对应的依赖即可。 

<dependencies>
        <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>3.4.2</version>
        </dependency>
 
        <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <version>3.4.2</version>
 
    </dependency>
        <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.30</version>
            <scope>provided</scope>
        </dependency>
 
 
        <!-- HTTP客户端 -->
        <dependency>
            <groupId>com.squareup.okhttp3</groupId>
            <artifactId>okhttp</artifactId>
            <version>4.9.0</version>
        </dependency>
 
        <!-- JSON处理 -->
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.10.1</version>
        </dependency>
 
        <dependency>
            <groupId>com.mashape.unirest</groupId>
            <artifactId>unirest-java</artifactId>
            <version>1.4.9</version>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.3.6</version>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpasyncclient</artifactId>
            <version>4.0.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpmime</artifactId>
            <version>4.3.6</version>
        </dependency>
        <dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
            <version>20140107</version>
        </dependency>
 
 
    </dependencies>

3、创建实体类

@Data
@Builder
public class DeeseekRequest {
    private String model;
    private List<Message> messages;
 
    @Data
    @Builder
    public static class Message {
        private String role;
        private String content;
    }
}

4、创建Controller层

package com.wdc.dk;
 
import com.google.gson.Gson;
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;
import com.mashape.unirest.http.exceptions.UnirestException;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
 
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
 
 
@RestController
public class AIController {
 
    private final Gson gson = new Gson();
   
 
    @PostMapping("tall")
    public String tallQuestion(@org.springframework.web.bind.annotation.RequestBody String question) throws IOException, UnirestException {
 
        Unirest.setTimeouts(0, 0);
 
//DeeseekRequest: 自己的实体类名称
 
        List<DeeseekRequest.Message> messages = new ArrayList<>();
//给deepSeek一个角色
        messages.add(DeeseekRequest.Message.builder().role("system").content("你是一个语言学家").build());
 
// question:说你自己想说的话
        messages.add(DeeseekRequest.Message.builder().role("user").content(question).build());
 
        DeeseekRequest requestBody = DeeseekRequest.builder()
                .model("deepseek-chat")
                .messages(messages)
                .build();
        HttpResponse<String> response = Unirest.post("https://api.deepseek.com/chat/completions")
                .header("Content-Type", "application/json")
                .header("Accept", "application/json")
                .header("Authorization", "Bearer "+"自己的key")
                .body(gson.toJson(requestBody))
               .asString();
        return  response.getBody();
 
    }
}

5、启动项目、调用自己的接口

你就会发现,你所需要的答案就会被AI回答出来,快去试试吧,像你的目标前进! 

到此这篇关于Java接入DeepSeek的保姆级教程(适合新手)的文章就介绍到这了,更多相关Java接入DeepSeek内容请搜索骃骐网以前的文章或继续浏览下面的相关文章希望大家以后多多支持骃骐网!

您可能感兴趣的文章:

  • springboot接入deepseek深度求索代码示例(java版)
  • Java调用DeepSeek api实现方法记录
  • deepseek本地部署及java、python调用步骤详解
  • JAVA调用Deepseek的api完成基本对话简单代码示例

相关推荐:

SOAP与微服务架构?是否适合现代开发?

微服务架构更符合现代开发趋势,因其灵活性、可伸缩性及云原生适配优势;SOAP虽在遗留系统集成、强契约、企业级ESB等场景仍有价值,但其复杂性限制了敏捷性;微服务挑战在于分布式复杂性、数据一致性、运维负担等,需通过服务网格、事件驱动、容器化、API网关及DevOps文化应对;从SOAP到微服务需实现技术栈向轻量协议、容器编排、可观测性工具转变,同时推动团队向小而自治、全栈负责、快速迭代的文化转型。 ...

适合Vue.js进阶学习的视频教程

适合vue.js进阶学习的视频教程有两个推荐:1. vue mastery的"vue.js: advanced concepts"课程,涵盖组件通信、状态管理和性能优化等;2. pluralsight的"vue.js: building applications with vue, vuex, and vue router"课程,深入探讨如何构建复杂的单页面应用。 你问到适合Vue.js进阶学习的...

七夕节适合领结婚证吗?

七夕节可以领结婚证,法律无限制,但需面对人潮拥挤、流程仓促等现实问题,影响仪式感;可考虑纪念日、520、1314等更具意义或避开高峰的日期,注重证件准备、着装、预约及后续庆祝,让领证更从容有意义。 七夕节当然可以领结婚证,法律上没有任何限制。但适不适合,这真的要看你和伴侣对这个日子的期待以及对“仪式感”的理解。它有它浪漫的一面,毕竟是传统意义上的情人节,但从实际操作和体验来看,可能并不总是最理想的...

中秋节适合去哪里旅游?

中秋旅游首选江南古城如苏州、杭州,感受水乡月色与民俗;追求清幽可选莫干山、安吉民宿或云南古村落;带娃家庭推荐迪士尼、长隆等亲子乐园或博物馆科技馆;避开人潮可探松阳古村落、小众湖畔或城市近郊公园,兼顾意境与舒适。 中秋节去哪里旅游,这事儿真没个标准答案,得看你心里想要什么。是想感受浓浓的传统文化氛围,还是想找个清净地儿赏月发呆?或者干脆就想趁着假期,带家人孩子好好玩一玩。一般来说,江南水乡的韵味、山...

节假日适合看的电影推荐?

节假日看电影要兼顾轻松、情怀与话题性。春节选《流浪地球》类合家欢,情人节可看《爱乐之城》,国庆推荐《我和我的祖国》,圣诞必看《真爱至上》。避雷看评分、影评、预告,参考专业推荐。经典老片如《E.T.外星人》《音乐之声》《小鬼当家》适合全家共赏。居家可选《罗马》《切尔诺贝利》《了不起的麦瑟尔夫人》及《霸王别姬》等经典。提升仪式感需备零食、布环境、用道具、共讨论、做延伸活动,让观影更温馨难忘。 节假日看...

植树节适合种什么树?

选择树种时最关键的考量因素是因地制宜,即根据当地气候、土壤条件及种植目的选择适应性强、生态效益高的本土树种,如北方选杨树、松树,南方选樟树、榕树,西部干旱区选梭梭、胡杨等,确保树木成活并发挥防风固沙、涵养水源等生态功能。 植树节选择种什么树,最核心的考量在于“适地适树”——即选择那些能适应当地气候、土壤条件,且对生态环境有积极作用的本土或适应性强的树种。这不仅仅是为了让树苗活下来,更是为了让它们能...

带孩子适合去哪些节假日活动?

节假日带孩子出门,最重要的是创造有意义的回忆和高质量的亲子互动,而非单纯打卡景点。推荐活动包括亲近自然的户外场所如公园、农场,寓教于乐的博物馆、图书馆,动手类创意工作坊,儿童剧等艺术表演,以及结合节日氛围的主题活动。为避开人潮,建议提前预约、错峰出行、选择小众场所,并保持灵活调整计划的心态。不同年龄段需侧重不同:0-3岁注重感官体验与安全感,适合轻松短时的活动;3-6岁好奇心强,宜选动物园、角色扮...

raw 格式图片为什么体积大 适合后期处理吗

raw文件是相机传感器记录的原始数据,未经处理,保留了完整的色彩和动态范围信息,而jpeg是经过相机内部处理并采用有损压缩的成品图像;2. raw文件体积大是因为其高色彩深度(12位、14位甚至16位)和无损或未压缩的存储方式,能记录数十亿种颜色,远超jpeg的1670万色;3. raw支持非破坏性编辑,可无损调整白平衡、曝光、色彩等参数,且能恢复更多高光和阴影细节,而jpeg一旦处理完成,调整空...

pbm 格式图片是黑白图吗 适合表示线条图吗

pbm格式图片确实是纯粹的二值图像,每个像素非黑即白。1. pbm与jpeg、png等格式的本质区别在于其仅用一个比特表示黑白,无色彩、灰度或透明度,结构极简;2. 它常用于线条图、扫描文档、传真及嵌入式系统,因文件小、解析快,在资源受限场景具优势;3. 实际应用中还用于算法开发调试、图像转换中间步骤及教学演示;4. 转换方法常用imagemagick的-monochrome参数进行二值化;5. ...

为什么Golang适合开发高并发Web应用 分析goroutine在IO密集型场景优势

goroutine通过轻量级并发模型和高效调度机制实现高并发。其核心在于:1. 采用goroutine作为轻量级执行单元,由go运行时管理,可轻松创建成千上万个;2. 调度器自动将goroutine分配到os线程,当io阻塞时切换至其他任务,避免cpu空闲;3. 在io密集型场景下,充分利用等待io的时间执行其他goroutine,提高资源利用率;4. 使用channel通信、控制数量、避免同步阻...