SpringBoot项目连接deepseek

目录

[6 连接deepseek](#6 连接deepseek)

[6.1 通用步骤](#6.1 通用步骤)

[6.2 SpringBoot项目里的步骤](#6.2 SpringBoot项目里的步骤)


6 连接deepseek

6.1 通用步骤

  1. 打开deepseek官网https://www.deepseek.com
  2. 点击API开放平台
  3. 点击用量信息去充值
  4. 充值完后点击API keys,然后创建API key

    创建成功后,要保存后弹框里的信息,因为关闭,就再也找不到了,除非删除,在重新创建
  5. 点击接口文档,找到对话,然后再最右边选择自己需要的语言。

    复制OKHTTP里面的内容。

6.2 SpringBoot项目里的步骤

  1. 导入相关依赖
java 复制代码
<dependency>
    <groupId>com.squareup.okhttp3</groupId>
    <artifactId>okhttp</artifactId>
    <version>3.14.9</version>
</dependency>

2.复制并且修改下面的代码,修改第6行代码,把从sk开头的东西改为6.1里创建的API key。

java 复制代码
import okhttp3.*;
import java.io.IOException;

public class Utils {
    // 替换为你的 API Key
    private static final String API_KEY = "Bearer sk-666";
    private static final String API_URL = "https://api.deepseek.com/chat/completions";

    public static void main(String[] args) throws IOException {
        // 1. 创建请求体(JSON)
        String jsonBody = String.format("{\n"
                        + "  \"model\": \"deepseek-chat\",\n"
                        + "  \"messages\": [\n"
                        + "    {\"role\": \"user\", \"content\": \"%s\"}\n"
                        + "  ],\n"
                        + "  \"temperature\": 0.7,\n"
                        + "  \"top_p\": 0.8\n"
                        + "}", "你好");

        // 2. 创建 HTTP 请求
        OkHttpClient client = new OkHttpClient();
        RequestBody body = RequestBody.create(MediaType.get("application/json"), jsonBody);

        Request request = new Request.Builder()
               .url(API_URL)
               .post(body)
               .addHeader("Content-Type", "application/json")
               .addHeader("Accept", "application/json")
               .addHeader("Authorization", API_KEY) // 直接使用 API Key
               .build();

        // 3. 发送请求并处理响应
        try (Response response = client.newCall(request).execute()) {
            if (!response.isSuccessful()) {
                throw new IOException("请求失败: " + response);
            }
            System.out.println("响应结果:\n" + response.body().string());
        }
    }
}

此时运行会出现以下结果

只要把第18行代码的"你好",改成自己问的东西,就可以和得到deepseek对应的回答了。

上面这个代码要放在service层。示例如下

java 复制代码
package com.qcby.websocket.service.impl;


import com.qcby.websocket.service.DeepSeekService;
import okhttp3.*;
import org.springframework.stereotype.Service;

import java.io.IOException;

@Service
public class DeepSeekServiceImpl implements DeepSeekService {
    // 替换为你的 API Key
    private static final String API_KEY = "Bearer sk-6666";
    private static final String API_URL = "https://api.deepseek.com/chat/completions";

    public  String getJson(String context) throws IOException {
        // 1. 创建请求体(JSON)
        String jsonBody = String.format("{\n"
                + "  \"model\": \"deepseek-chat\",\n"
                + "  \"messages\": [\n"
                + "    {\"role\": \"user\", \"content\": \"%s\"}\n"
                + "  ],\n"
                + "  \"temperature\": 0.7,\n"
                + "  \"top_p\": 0.8\n"
                + "}", context);
        // 2. 创建 HTTP 请求
        OkHttpClient client = new OkHttpClient();
        RequestBody body = RequestBody.create(MediaType.get("application/json"), jsonBody);

        Request request = new Request.Builder()
                .url(API_URL)
                .post(body)
                .addHeader("Content-Type", "application/json")
                .addHeader("Accept", "application/json")
                .addHeader("Authorization", API_KEY) // 直接使用API Key
                .build();

        // 3. 发送请求并处理响应
        try (Response response = client.newCall(request).execute()) {
            if (!response.isSuccessful()) {
                throw new IOException("请求失败: " + response);
            }
           return  response.body().string();
        }

    }

}
相关推荐
Alan_751 小时前
文件上传接口设计-从单文件到分片上传
后端
newerp1 小时前
Go语言程序结构 —— 变量、声明与零值机制
后端
SamDeepThinking1 小时前
现场重构一段代码,展示什么叫「好代码,都在表达自己的意图」
java·后端·程序员
Conan在掘金1 小时前
ArkTS 进阶之道(16):@Styles 样式复用边界——为啥样式不能当对象返
后端
January丶1 小时前
SpringBoot整合ElasticSearch
spring boot
Conan在掘金1 小时前
ArkTS 进阶之道(15):@BuilderParam 组件参数化边界——为啥 @Builder 能当参数传
后端
小园子的小菜1 小时前
Java 并发四大工具类深度解析:CountDownLatch、CyclicBarrier、Semaphore、Exchanger 原理、源码与面试考点
java·开发语言·面试
搭贝低代码1 小时前
设备管理系统迁移改造:从手工台账到二维码数字化的实践路径
java·低代码·搭贝
前端双越老师1 小时前
Nest.js 和 Spring Boot 为何如此像?写给前端转 Java 的同学
java·spring boot·全栈
JL151 小时前
Java+Go 混合架构怎么搭?收官 50 道面试题 + 学习路线
java·架构·golang