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

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

前言

对于目前的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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java使用Freemarker页面静态化生成的实现

    Java使用Freemarker页面静态化生成的实现

    这篇文章主要介绍了Java使用Freemarker页面静态化生成的实现,页面静态化是将原来的动态网页改为通过静态化技术生成的静态网页,FreeMarker 是一个用 Java 语言编写的模板引擎,它基于模板来生成文本输,更多相关内容需要的小伙伴可以参考一下
    2022-06-06
  • ByteArrayInputStream简介和使用_动力节点Java学院整理

    ByteArrayInputStream简介和使用_动力节点Java学院整理

    ByteArrayInputStream 是字节数组输入流。它继承于InputStream。这篇文章主要介绍了ByteArrayInputStream简介和使用_动力节点Java学院整理,需要的朋友可以参考下
    2017-05-05
  • MyBatis中的占位符入参全面详解

    MyBatis中的占位符入参全面详解

    这篇文章主要为大家介绍了MyBatis中的占位符全面详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • springboot 高版本后继续使用log4j的完美解决方法

    springboot 高版本后继续使用log4j的完美解决方法

    这篇文章主要介绍了 springboot 高版本后继续使用log4j的解决方法,需要的朋友可以参考下
    2017-12-12
  • 深入理解Spring中的循环依赖

    深入理解Spring中的循环依赖

    Spring在注入bean的时候会做循环依赖检查,下面这篇文章主要给大家介绍了关于Spring中循环依赖的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧
    2018-05-05
  • Java8 如何移除两个相同的List对象

    Java8 如何移除两个相同的List对象

    这篇文章主要介绍了Java8 如何移除两个相同的List对象,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • Java使用StopWatch输出执行耗时的方法详解

    Java使用StopWatch输出执行耗时的方法详解

    StopWatch是一个简单而强大的工具,可以帮助我们测量代码执行时间,从而优化性能,这篇文章主要介绍了Java使用StopWatch输出执行耗时的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-07-07
  • 9个SpringBoot中的自带实用过滤器使用详解

    9个SpringBoot中的自带实用过滤器使用详解

    在SpringBoot应用中,过滤器(Filter)是处理HTTP请求和响应的重要组件,SpringBoot自带了许多实用的过滤器,如字符编码,跨域请求,缓存控制等,下面我们就来看看它的具体使用吧
    2025-05-05
  • Jmeter关联实现及参数化使用解析

    Jmeter关联实现及参数化使用解析

    这篇文章主要介绍了Jmeter关联实现及参数化使用解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • spring cloud gateway集成hystrix全局断路器操作

    spring cloud gateway集成hystrix全局断路器操作

    这篇文章主要介绍了spring cloud gateway集成hystrix全局断路器操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07

最新评论