【Spring Boot + DeepSeek 实战来了!】


完整项目已经放到文末,自行下载使用

DeepSeek 是国内研发的一款大语言模型(LLM),在代码理解和生成方面表现突出,甚至在一些测试中超过了 GPT-4。相比其他模型,它的本地化适配更好,最重要的是,它提供的 API 无需复杂网络环境。

首先应该没人不知道deepseek是什么吧???所以我直入主题,通过今天的学习,我们可以熟练掌握如何使用 Spring Boot 集成 DeepSeek 搭建一个 AI 智能问答服务,让用户可以输入问题,然后调用 DeepSeek API 进行智能回答。

一、查阅Spring官网,了解Spring是如何解决整合AI的

在这里插入图片描述
在这里插入图片描述

Spring Al是一个用于人工智能工程的应用程序框架。它的目标是将Spring生态系统设计原则(如可移植性和模块化设计)应用于人工智能领域,并推广使用POJO作为人工智能领域应用程序的构建块。
Spring Al的核心是解决ai集成的基本挑战:将企业数据和api与A模型连接起来。

(白话文:说白了,Spring Al就是一个Spring官方为了我们更便捷、更简单的去集成不同人工智能模型的框架

二、功能整合

2.1、找到具体开发文档,了解如何整合

在这里插入图片描述
由上图我们得知,Spring AI 目前是通过使用现有的 OpenAI 客户端与 DeepSeek AI 集成的,这里我们简单说下Spring AI和openAI的关系,方便大家知其所以然:

Spring AI 是 Spring 团队推出的用于在 Spring 应用程序中集成人工智能功能的框架,而 OpenAI 是一家知名的人工智能研究和技术公司,他拥有GPT 系列模型:从 GPT-1 到 GPT-4

集成关系
Spring AI 支持集成 OpenAI 的服务和模型。借助 Spring AI 提供的 API 和抽象层,开发者能够在基于 Spring 的项目里轻松地调用 OpenAI 的强大人工智能能力。

开发便利性

Spring AI 为开发者提供了简化的编程模型和统一的接口,使得在 Spring 项目中使用 OpenAI 服务变得更加便捷。具体表现为

简化配置Spring AI 封装了与 OpenAI 服务进行交互所需的复杂配置,开发者只需进行少量的配置,即可快速集成 OpenAI 服务。

统一抽象它提供了统一的抽象层,将不同的 AI 服务提供商(包括 OpenAI)的 API 进行了抽象,使得开发者可以以一致的方式使用不同的 AI 功能,降低了学习成本和开发难度。

(白话文总结:说白了,Spring Al通过简单的配置,就可以实现与OpenAI的交互,使得我们更简单的去访问OpenAI服务,并且SpringAI所提供的api可以实现对不同AI模型的访问)

我们去deepseek官网,查看deepseek是如何描述与其对接的呢?
在这里插入图片描述
到这里,我们就明白了,Spring AI 目前是通过使用现有的 OpenAI 客户端与 DeepSeek AI 集成的。

2.2、整合

2.2.1、技术栈介绍

SpringBoot:用于快速构建 Java 后端服务。
Deepseek:高性能的深度学习推理框架,用于问答模型的推理。
Spring AI:Spring 生态中的 AI 工具包,用于简化 AI 模型的集成。
Postman:用于测试和调用 API 接口。

2.2.1、环境准备

在开始之前,请确保你已经完成以下准备工作:
安装 JDK 17 或更高版本。
安装 Maven:用于构建和管理项目依赖。
安装 Postman:用于测试 API 接口。
准备 Deepseek 模型:确保你已经有一个训练好的问答模型(如 qa_model.ds)。

2.2.3、创建 Spring Boot 项目

过程省略;

2.2.4、引入依赖
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.ai</groupId>
            <artifactId>spring-ai-bom</artifactId>
            <version>1.0.0-M5</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<repositories>
    <repository>
        <id>spring-milestones</id>
        <name>Spring Milestones</name>
        <url>https://repo.spring.io/milestone</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
    <repository>
        <id>spring-snapshots</id>
        <name>Spring Snapshots</name>
        <url>https://repo.spring.io/snapshot</url>
        <releases>
            <enabled>true</enabled>
        </releases>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>org.springframework.ai</groupId>
        <artifactId>spring-ai-openai-spring-boot-starter</artifactId>
    </dependency>
</dependencies>

需要注意的是:

因为目前 Spring AI 还没有发布正式版,在 Maven 中央仓库中还找不到正式依赖,所以需要再添加 spring-milestones 和 spring-snapshots 仓库。

2.2.5、添加 DeepSeek 配置参数
spring:
  ai:
    openai:
      api-key: "sk-xxxxxx" #读取自己的
      base-url: https://api.deepseek.com
      chat:
        options:
          model: deepseek-chat
          temperature: 0.5

需要注意的是:

前提需要去deepseek官网创建API key,并且需要完成充值(不充值调用接口会报错),具体金额自己看,最小的就行,反正是测试
在这里插入图片描述
在这里插入图片描述

2.2.6、集成 DeepSeek API

上面提到,Spring AI 中的 DeepSeek API 目前还是走的 OpenAI 客户端,所以,要使用 DeepSeek,只需要在 API 中需要注入一个 OpenAiChatModel 客户端实例来发起请求。

参考代码如下:

@RestController
public class ChatController {

    private final OpenAiChatModel chatModel;

    @Autowired
    public ChatController(OpenAiChatModel chatModel) {
        this.chatModel = chatModel;
    }

    @GetMapping("/ai/generate")
    public String generate(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {
        return this.chatModel.call(message);
    }

    @GetMapping("/ai/generateStream")
    public Flux<ChatResponse> generateStream(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {
        Prompt prompt = new Prompt(new UserMessage(message));
        return this.chatModel.stream(prompt);
    }
}

普通聊天和流式聊天的区别是:

普通聊天是一次性返回结果,流式聊天是几个字几个字的返回,流式聊天返回的结果需要前端框架进行封装。

这样,我们的 Spring Boot + DeepSeek API 智能问答接口就完成了。

2.2.7、功能测试

启动 Spring Boot 项目后,我们可以通过 Postman 或浏览器访问:

在这里插入图片描述
本文完整示例代码已上传 Gitee:
https://gitee.com/zw_fky/springboot_ai_deepseek.git
赶紧试试吧,感受 AI 的魅力吧!

本篇完结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值