java项目如何通过SpringAI接入deepSeek

本文将详细介绍如何在 Spring Boot 中集成 DeepSeek,通过实践操作帮助读者快速掌握这一技术。


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:

java项目接入火山引擎满血deepSeek,DeepSeek满血版免费领啦!:https://volcengine.com/L/X7gmgzwnc0o/ 邀请码:S5IXFXRB每位用户被成功邀请后,可获得1张15元代金券,约可抵扣375万R1模型tokens


提示:以下是本篇文章正文内容,下面案例可供参考

一、准备工作

环境要求
确保 Spring Boot >= 3.3.x 版本,这是集成 DeepSeek 的最低版本要求。
确保 JDK >= 17,以支持 DeepSeek 的最新版本。
配置开发环境,包括 IDE(推荐使用 IDEA)、版本控制工具(如 Git)以及开发服务器。
火山引擎注册地址:https://volcengine.com/L/X7gmgzwnc0o/

二、配置 Spring Boot 项目

1.引入依赖

代码如下(示例):在pom.xml中添加 Spring Boot 与 DeepSeek 的依赖项。以下是示例配置

<dependencies>
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <version>3.3.9</version>
  </dependency>
  <dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-deepseek</artifactId>
    <version>0.8.1</version>
  </dependency>
</dependencies>

说明:
spring-boot-starter-web:用于快速构建 Web 应用的基础组件。
spring-ai-deepseek:Spring Boot 与 DeepSeek 的集成模块,支持智能对话和流式响应。

2.配置 DeepSeek 访问凭证

在应用的application.yml或config/app.yml中配置 DeepSeek 的访问凭证。以下是示例配置::

spring:
  ai:
    deepseek:
      base-url: https://api.deepseek.com/v1
      api-key: sk-your-api-key-here
  • 说明: base-url:DeepSeek API 的端点地址。
  • api-key:获取 DeepSeek 开发者 API 密钥。
  • 如果没有开发者密钥,可以使用sk-your-api-key-here作为占位符。

实现智能对话功能

1.创建服务层组件

在 Spring Boot 应用的根目录下创建一个DeepSeekService类,用于与 DeepSeek 进行交互。以下是示例代码:

package com.example.deepseek.service;

import org.springframework.ai.deepseek.DEEPSEEK;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.web.servlet.MockMvc;
import java.util.Map;

@Service
@AutowiredBeanInitialization.class=DEEPSEEK
public class DeepSeekService {
    private final Map<String, String> responses = new HashMap<>();
    
    @Autowired
    private final DeepSeekClient deepSeekClient;
    
    @Autowired
    @Named("response")
    private final String response;
    
    @GetMapping("/get-response")
    public ResponseEntity<String> getMessage(String prompt) {
        Map<String, String> result = deepSeekClient.chat(prompt);
        responses.put("response", result.get("output", ""));
        return ResponseEntity.ok(result.get("response", "")).build();
    }
}


  • 说明: @AutowiredBeanInitialization.class=DEEPSEEK:自动生成 DeepSeek 客户端
  • @Autowired @Named(“response”) private final String
  • response;:为响应字段注入实例。 @GetMapping(“/get-response”):定义 API端点,用于接收用户输入并返回 DeepSeek 的响应。

2.创建 Controller 类

在 Spring Boot 应用的根目录下创建一个DeepSeekController类,用于暴露 API。以下是示例代码:

package com.example.deepseek.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.web.servlet.MockMvc;
import org.springframework.boot.http.HttpStatus;
import org.springframework.boot.http.ResponseEntity;
import org.springframework.ai.deepseek.DEEPSEEK;
import org.springframework.web.bind.annotation.*;
import java.util.Map;

@RestController
public class DeepSeekController {
    @Autowired
    private final DeepSeekService deepSeekService;
    
    @GetMapping("/api/get-response")
    public ResponseEntity<Map.Entry<String, String>> getMessage(@RequestParam(String) String prompt) {
        String response = deepSeekService.getMessage(prompt);
        return ResponseEntity.ok(new HashMap<>();
            {"message" = "得到回复:" + response}).build();
    }
}
  • 说明: @GetMapping(“/api/get-response”):定义 API 端点,用于接收用户输入并返回DeepSee的响应。
  • @RequestParam(String) String prompt:定义输入字段,用于接收用户输入。

四实现流式响应功能

为了实现流式响应功能,可以使用 Spring Boot 的Websocket API。以下是示例代码:

package com.example.deepseek.stream;
   
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.web.servlet.MockMvc;
import org.springframework.boot.http.HttpStatus;
import org.springframework.boot.http.ResponseEntity;
import org.springframework.ai.deepseek.DEEPSEEK;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
import org.springframework.web.reactive.function.client.WebClient;
import org.springframework.web.reactive.function.client Websocket;
import java.util.Map;
   
@RestController
public class DeepSeekWebSocketController {
    @Autowired
    private final DeepSeekClient deepSeekClient;
    
    @GetMapping("/ws")
    public WebSocket Echo(@Echo) Echo {
        @Override
        public Echo.handle(EchoEvent e) throws IOException {
            try {
                String message = e gottenValue().getString();
                Map<String, String> result = deepSeekClient.chat(prompt);
                e.send(new EchoContent(new EchoText(result.get("output", ""))));
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}

-说明:

  • @GetMapping(“/ws”):定义 WebSocket 端点。
  • @Echo:定义 WebSocket 客户端。
  • Echo.handle(EchoEvent e):定义处理 WebSocket 事件的方法。

五 完整的 Spring Boot 项目的构建和运行步骤

1构建项目

  • 创建一个spring-boot-projects目录,包含src、main、pom.xml、application.yml等文件。
  • 在src/main/java目录下创建DeepSeekService和DeepSeekController类。
  • 在src/main/resources/application.yml中添加 DeepSeek 访问凭证配置。 运行项目
  • 打开终端,进入项目根目录后,执行以下命令启动 Spring Boot 服务

2运行项目

  • 打开终端,进入项目根目录后,执行以下命令启动 Spring Boot 服务:
spring-boot start
  • 打开浏览器,访问http://localhost:8080,可以使用以下命令快速访问:
spring-boot-integrated http://localhost:8080

总结

提示:这里对文章进行总结:

通过以上步骤,可以成功在 Spring Boot 项目中集成 DeepSeek 的服务,实现智能对话.最后板砖不易希望大家注册火山引起过的时候可以填写我的邀请码S5IXFXRB
DeepSeek满血版免费领啦!:https://volcengine.com/L/X7gmgzwnc0o/ 邀请码:S5IXFXRB 每位用户被成功邀请后,可获得1张15元代金券,约可抵扣375万R1模型tokens

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐