23. AI-大语言模型-DeepSeek赋能开发-Spring AI集成

文章目录

  • 前言
  • 一、Spring AI 集成 DeepSeek
    • 1. 开发AI程序
    • 2. DeepSeek 大模型
    • 3. 集成 DeepSeek 大模型
      • 1. 接入前准备
      • 2. 引入依赖
      • 3. 工程配置
      • 4. 调用示例
      • 5. 小结
    • 4. 集成第三方平台(已集成 DeepSeek 大模型)
      • 1. 接入前准备
      • 2. POM依赖
      • 3. 工程配置
      • 4. 调用示例
      • 5. 调用测试
      • 6. 小结
    • 5. 集成 DeepSeek4j 1.4版本
      • 1. 为什么需要 DeepSeek4j?
      • 2. 依赖
      • 3. 配置
      • 4. 示例


前言

拥抱AI

DeepSeek 是深度求索公司发布的大模型,是国产之光。大家应该学会如何使用 DeepSeek 大模型,本文主要探讨,如何开发基于 DeepSeek 大模型的智能应用。


一、Spring AI 集成 DeepSeek

接下来深入了解如何使用 Spring Boot 和 DeepSeek 开发 AI 程序。

1. 开发AI程序

  在当今数字化时代,人工智能(AI)已成为推动技术进步和创新的核心力量。从智能语音助手到图像识别系统,从个性化推荐引擎到自动化流程,AI 的应用无处不在,正深刻地改变着我们的生活和工作方式。

  与此同时,软件开发领域也在不断演进,以适应快速变化的技术需求和业务场景。Spring Boot 作为 Java 生态系统中最受欢迎的框架之一,以其 “约定优于配置” 的理念和丰富的功能,为开发者提供了一种高效、便捷的方式来构建企业级应用程序。

  DeepSeek 则是 AI 领域的一颗新星,致力于开发先进的大语言模型(LLM)和相关技术 。它的出现为 AI 技术的发展注入了新的活力,其模型在性能和成本效益方面展现出了卓越的优势,在多项测试中表现出色,甚至超越了一些行业领先的模型,且设计成本相对较低。

  Spring Boot 的强大功能和便捷性,使得开发者能够快速搭建稳定的后端服务,而 DeepSeek 的先进大语言模型则为应用赋予了强大的智能交互和处理能力。通过将 DeepSeek 的 AI 能力集成到 Spring Boot 应用中,我们可以轻松实现智能聊天机器人、智能文档处理、智能代码生成等各种创新应用,为用户提供更加智能化、个性化的服务体验。

2. DeepSeek 大模型

DeepSeek 推出两款模型:

  • DeepSeek V 系列,对于V系列主要 对话,模型名称:deepseek-chat
  • DeepSeek R 系统,对于R系统主要 推理, 模型名称:deepseek-reasoner

DeepSeek 官方更新日志,可以看到模型发布和演化的过程。

https://api-docs.deepseek.com/zh-cn/updates

3. 集成 DeepSeek 大模型

  DeepSeek AI提供开源的 DeepSeek V3 模型,该模型以其尖端的推理和解决问题的能力而闻名。

  Spring AI 通过重用现有的 OpenAI 客户端与 DeepSeek AI 集成。首先,需要获取 DeepSeek API 密钥,配置基本 URL,并选择其中一个受支持的模型。

SpringAI集成DS

1. 接入前准备

  • 创建 API 密钥:
    访问此处:https://api-docs.deepseek.com/zh-cn/,创建 API 密钥。
    使用 Spring AI 项目中的 spring.ai.openai.api-key 属性对其进行配置。

  • 设置 DeepSeek 基本 URL:
    将 spring.ai.openai.base-url 属性设置为 api.deepseek.com。

  • 选择 DeepSeek 模型:
    使用属性 spring.ai.openai.chat.model= 指定模型。有关可用选项,请参阅支持的型号。

2. 引入依赖

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

3. 工程配置

spring:
  ai:
- openai:
-   api-key: sk-xxx   # 填写自己申请的key
-   base-url: https://api.deepseek.com
-   chat:
- - options:
- -   model: deepseek-chat

4. 调用示例

package com.demo.controller;

import org.springframework.ai.chat.messages.UserMessage;
import org.springframework.ai.chat.model.ChatResponse;
import org.springframework.ai.chat.prompt.Prompt;
import org.springframework.ai.openai.OpenAiChatModel;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import reactor.core.publisher.Flux;

import java.util.Map;


@RestController
public class ChatController {

- private final OpenAiChatModel chatModel;
- 
- public ChatController(OpenAiChatModel chatModel) {
- - this.chatModel = chatModel;
- }

- @GetMapping("/ai/generate")
- public Map<String, String> generate(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {
- - return Map.of("generation", 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);
- }
}

5. 小结

  Spring AI 接入 DeepSeek 大模型是非常简单的,实现了阻塞和流式聊天模式。
  对于 DeepSeek 大模型的函数调用,角色定义以及结构化输出等是一致的。

4. 集成第三方平台(已集成 DeepSeek 大模型)

1. 接入前准备

硅基流动平台,注册地址 如下:

https://cloud.siliconflow.cn/i/pCa1dBVX

  1. 选择一个对话功能的免费模型,如果你想用其他,生图,视频,语音相关,里面也可以自行选择。

硅基流动平台
2. 硅基流动官网注册后后,点击API密钥菜单,生成密钥,点击复制。

创建API密钥

2. POM依赖

- <properties>
- - <java.version>17</java.version>
- - <spring-ai.version>1.0.0-M5</spring-ai.version>
- - <maven.compiler.source>17</maven.compiler.source>
- - <maven.compiler.target>17</maven.compiler.target>
- </properties>
- <dependencies>
- - <dependency>
- - - <groupId>org.springframework.boot</groupId>
- - - <artifactId>spring-boot-starter-web</artifactId>
- - </dependency>
- - <dependency>
- - - <groupId>org.springframework.ai</groupId>
- - - <artifactId>spring-ai-openai-spring-boot-starter</artifactId>
- - </dependency>
- </dependencies>
- <dependencyManagement>
- - <dependencies>
- - - <dependency>
- - - - <groupId>org.springframework.ai</groupId>
- - - - <artifactId>spring-ai-bom</artifactId>
- - - - <version>${spring-ai.version}</version>
- - - - <type>pom</type>
- - - - <scope>import</scope>
- - - </dependency>
- - </dependencies>
- </dependencyManagement>

3. 工程配置

spring:
  ai:
- openai:
-   api-key: # 这里是你自己的api key
-   base-url: https://api.siliconflow.cn
-   chat:
- - options:
- -   model: deepseek-ai/DeepSeek-R1-Distill-Llama-8B

4. 调用示例

package com.demo.controller;

import groovy.util.logging.Slf4j;
import org.springframework.ai.chat.client.ChatClient;
import org.springframework.web.bind.annotation.*;

@RestController
@CrossOrigin(origins = "*")
@Slf4j
public class ChatBotController {

- private final ChatClient chatClient;

- public ChatBotController(ChatClient.Builder builder) {
- - this.chatClient = builder.defaultSystem("你是一个天气预报员,当有人输入日期的时候,你输出北京的天气预报信息," +
- - - - "生成结果在html页面中以markdown的格式输出,最后输出结尾的时候始终以下面的语句结尾:感谢您的咨询,我是舆情君。").build();
- }

- @GetMapping(value = "ai/chat/{message}")
- public String chat(@PathVariable("message") String message) {
- - return chatClient.prompt()
- - - - .user(message)
- - - - .call()
- - - - .content();
- }
}

5. 调用测试

启动项目,地址栏输入:http://localhost:8080/ai/chat/2025年2月18日

6. 小结

以上是简单的演示,项目中可以直接写程序,通过大模型的能力,直接以json的格式输出,系统执行之后,直接插入数据库,也可以做到数据采集,助力企业的项目。

5. 集成 DeepSeek4j 1.4版本

1. 为什么需要 DeepSeek4j?

DeepSeek4J 是专为 Java 生态打造的 DeepSeek 模型集成框架。其 API 设计简洁优雅,仅需一行代码,即可完成 DeepSeek 的接入。

现有框架的局限性

  • 思维链内容丢失:R1 最核心的推理过程完全被忽略。
  • 响应模式不兼容:无法处理“思考在前、结论在后”的输出模式。
  • 参数限制:temperature、top_p 等关键参数设置失效。
  • 流式处理不完善:用户体验欠佳。

解决方案
面向 DeepSeek 的开箱即用方案——DeepSeek4j。

  • 增强支持 DeepSeek 独有的思维链和账单特性。
  • 增加 Project Reactor 的全面响应式支持。
  • 提供集成 Spring Boot Starter,支持自动配置。

2. 依赖

3. 配置

4. 示例


本文的引用仅限自我学习如有侵权,请联系作者删除。
参考知识
如何用Spring AI 结合 DeepSeek开发你的第一个AI程序?
Spring 宣布接入 DeepSeek!!
DeepSeek4J 再更新!Java 项目一行代码集成 DeepSeek !!


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/972371.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

侯捷 C++ 课程学习笔记:STL 标准库与泛型编程的实战指南

在侯捷老师的 C 系列课程中&#xff0c;《STL 标准库与泛型编程》这门课程让我对 C 的强大工具——标准模板库&#xff08;STL&#xff09;有了全新的认识。STL 是现代 C 编程的核心&#xff0c;它提供了丰富的数据结构、算法和迭代器&#xff0c;极大地简化了开发工作。侯捷老…

【数据结构初阶第十二节】设计循环队列

云边有个稻草人-CSDN博客 必须有为成功付出代价的决心&#xff0c;然后想办法付出这个代价。 还有最后一道关于队列的习题&#xff0c;这题有点难&#xff0c;准备好迎接挑战吧&#xff01; 目录 1.【题目】 2.实现循环队列推荐用数组&#xff0c;Why? 3.Q1&#xff1a;如…

Git使用[同一电脑多个账户ssh-key的管理]

同一电脑多个账户ssh-key的管理 现在遇到一个问题,我同一台电脑既要通过VPN访问内网的git也要访问对外释放的gitee,刚开始我直接把原来的SSH-key添加到内网的gitlab发现可以访问,但是后来再方位外网的gitee就出问题了,看来要换一种手段才行 本文引用&#xff1a;https://cloud…

Ubuntu:20.04更新cmake到更高版本

从输出信息可以看出&#xff0c;您当前的系统中已经安装了 cmake&#xff0c;但版本是 3.16.3&#xff0c;而您的项目需要 CMake 3.18 或更高版本。默认情况下&#xff0c;Ubuntu 20.04 的官方软件仓库中提供的 CMake 版本较低&#xff08;如 3.16.3&#xff09;&#xff0c;因…

解锁 AIoT 无限可能,乐鑫邀您共赴 Embedded World 2025

2025 年 3 月 11-13 日&#xff0c;全球规模最大的嵌入式展览会——Embedded World 2025 将在德国纽伦堡盛大开幕。作为物联网和嵌入式技术领域的领先企业&#xff0c;乐鑫信息科技 (688018.SH) 将展示在 AI LLM、HMI、双频 Wi-Fi 6、低功耗 MCU 和 Matter 等领域的最新技术及解…

《[含文档+PPT+源码等]精品基于Python实现的Django中药材在线学习系统的设计与实现

基于Python实现的Django中药材在线学习系统的设计与实现背景&#xff0c;可以从以下几个方面进行阐述&#xff1a; 一、行业背景 随着中医药在全球范围内的不断推广和普及&#xff0c;中药材的知识普及和在线学习需求日益增长。传统的中药材学习方式往往受限于地域、时间和资…

EXCEL解决IF函数“您已为此函数输入太多个参数”的报错

IF函数的基本结构是IF(条件, 值为真时的结果, 值为假时的结果)&#xff0c;所以标准的IF函数最多只能有三个参数。当用户输入的参数超过三个时&#xff0c;Excel就会报这个错误。比如多个IF语句叠加&#xff0c;但可能在嵌套的过程中没有正确关闭每个IF函数的括号&#xff0c;导…

总结单例模式的写法(在线程安全的情况下)

目录 1 饿汉模式 2 懒汉模式 3 分析 啥是设计模式? 设计模式好⽐象棋中的 "棋谱". 红⽅当头炮, ⿊⽅⻢来跳. 针对红⽅的⼀些⾛法, ⿊⽅应招的时候有⼀ 些固定的套路. 按照套路来⾛局势就不会吃亏. 软件开发中也有很多常⻅的 "问题场景". 针对这些问题…

神经网络|(十)概率论基础知识-正态分布及python仿真

【1】引言 前序学习进程中&#xff0c;已经掌握了二项分布、泊松分布相关知识及其python仿真技巧&#xff0c;相关文章链接为&#xff1a; 神经网络|(八)概率论基础知识-二项分布及python仿真-CSDN博客 神经网络|(九)概率论基础知识-泊松分布及python仿真-CSDN博客 在此基础…

centos8 使用yum安装程序出现报错

在执行yum指令出现源更新不了Could not resolve host: mirrorlist.centos.org&#xff1b; Unknown error问题 yum -y update结果 Errors during downloading metadata for repository appstream: - Curl error (6): Couldnt resolve host name for http://mirrorlist.centos…

MSI微星电脑冲锋坦克Pro Vector GP76 12UGS(MS-17K4)原厂Win11系统恢复镜像,含还原功能,预装OEM系统下载

适用机型&#xff1a;【MS-17K4】 链接&#xff1a;https://pan.baidu.com/s/1P8ZgXc6S_J9DI8RToRd0dQ?pwdqrf1 提取码&#xff1a;qrf1 微星笔记本原装出厂WINDOWS11系统自带所有驱动、出厂主题壁纸、系统属性专属联机支持标志、Office办公软件、MSI Center控制中心等预装…

手机控制电脑远程关机

远程看看软件兼容iOS和Android设备&#xff0c;该软件除了能通过电脑远程关闭另一台电脑外&#xff0c;您还可以通过它在手机上远程关闭公司的电脑。您可以按照以下步骤进行操作以实现电脑远程关机&#xff1a; 步骤1.在手机应用商店搜索“远程看看”进行软件安装&#xff0c;…

html网络安全工具源码 网络安全前端

&#x1f345; 点击文末小卡片 &#xff0c;免费获取网络安全全套资料&#xff0c;资料在手&#xff0c;涨薪更快 前端常见的网络安全包括&#xff1a;xss&#xff08;跨站脚本攻击&#xff09;、csrf&#xff08;跨站请求伪造&#xff09;、sql注入攻击等。 1&#xff09;跨站…

VMware新建虚拟机

看看自己的电脑是什么内核&#xff0c;有几个处理器 再分配给虚拟机 镜像文件需要自己安装下载地方https://mirrors.aliyun.com/centos/?spma2c6h.13651104.d-2001.8.3fb1320cuI1jeS 然后就出现了 然后开启虚拟机&#xff0c;等待 等待之后如下&#xff0c;选择语言 等待一段时…

Comsol 二维Voronoi泰森多边形结构振动传输特性

Voronoi 泰森多边形结构在振动传输特性方面具有一些独特的特点&#xff1a; 1. 频率特性&#xff1a;Voronoi 泰森多边形结构的频率特性受到其几何形状和材料特性的影响。不规则的边界和内部区域的形状、尺寸和材料会影响结构的振动模态和频率响应。 2. 波的传播&#xff1a;…

三、linux字符驱动详解

在上一节完成NFS开发环境的搭建后&#xff0c;本节将探讨Linux字符设备驱动的开发。字符设备驱动作为Linux内核的重要组成部分&#xff0c;主要负责管理与字符设备&#xff08;如串口、键盘等&#xff09;的交互&#xff0c;并为用户空间程序提供统一的读写操作接口。 驱动代码…

【Flink快速入门-7.Flink 状态管理】

Flink 状态管理 实验介绍 在批计算中&#xff0c;我们对某个特定 Batch 的数据通过一系列计算之后输出一个最终结果&#xff0c;你会发现我们并没有提到过数据的状态&#xff0c;或者说我们对数据状态并不关心。但是在流计算中&#xff0c;有状态的计算是流处理框架中的重要功…

【JavaEE进阶】数据库连接池

目录 &#x1f334;数据库连接池 &#x1f38b;数据库连接池的使用 &#x1f332;MySQL企业开发规范 &#x1f334;数据库连接池 数据库连接池负责分配、管理和释放数据库连接&#xff0c;它允许应⽤程序重复使⽤⼀个现有的数据库连接&#xff0c;⽽不是再重新建⽴⼀个. 没…

剑指 Offer II 025. 链表中的两数相加

comments: true edit_url: https://github.com/doocs/leetcode/edit/main/lcof2/%E5%89%91%E6%8C%87%20Offer%20II%20025.%20%E9%93%BE%E8%A1%A8%E4%B8%AD%E7%9A%84%E4%B8%A4%E6%95%B0%E7%9B%B8%E5%8A%A0/README.md 剑指 Offer II 025. 链表中的两数相加 题目描述 给定两个 非…

数据分析--数据清洗

一、数据清洗的重要性&#xff1a;数据质量决定分析成败 1.1 真实案例警示 电商平台事故&#xff1a;2019年某电商大促期间&#xff0c;因价格数据未清洗导致错误标价&#xff0c;产生3000万元损失医疗数据分析&#xff1a;未清洗的异常血压值&#xff08;如300mmHg&#xff…