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

文章目录

  • 前言
  • [一、Spring AI 集成 DeepSeek](#一、Spring AI 集成 DeepSeek)
    • [1. 开发AI程序](#1. 开发AI程序)
    • [2. DeepSeek 大模型](#2. DeepSeek 大模型)
    • [3. 集成 DeepSeek 大模型](#3. 集成 DeepSeek 大模型)
      • [1. 接入前准备](#1. 接入前准备)
      • [2. 引入依赖](#2. 引入依赖)
      • [3. 工程配置](#3. 工程配置)
      • [4. 调用示例](#4. 调用示例)
      • [5. 小结](#5. 小结)
    • [4. 集成第三方平台(已集成 DeepSeek 大模型)](#4. 集成第三方平台(已集成 DeepSeek 大模型))
      • [1. 接入前准备](#1. 接入前准备)
      • [2. POM依赖](#2. POM依赖)
      • [3. 工程配置](#3. 工程配置)
      • [4. 调用示例](#4. 调用示例)
      • [5. 调用测试](#5. 调用测试)
      • [6. 小结](#6. 小结)
    • [5. 集成 DeepSeek4j 1.4版本](#5. 集成 DeepSeek4j 1.4版本)
      • [1. 为什么需要 DeepSeek4j?](#1. 为什么需要 DeepSeek4j?)
      • [2. 依赖](#2. 依赖)
      • [3. 配置](#3. 配置)
      • [4. 示例](#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,并选择其中一个受支持的模型。

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. 引入依赖

xml 复制代码
<dependency>
- <groupId>org.springframework.ai</groupId>
- <artifactId>spring-ai-openai-spring-boot-starter</artifactId>
</dependency>

3. 工程配置

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

4. 调用示例

java 复制代码
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. 选择一个对话功能的免费模型,如果你想用其他,生图,视频,语音相关,里面也可以自行选择。
  1. 硅基流动官网注册后后,点击API密钥菜单,生成密钥,点击复制。

2. POM依赖

xml 复制代码
- <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. 工程配置

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

4. 调用示例

java 复制代码
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 !!


相关推荐
乂爻yiyao10 分钟前
Vibe Coding 工程化实践
人工智能·ai
玄同7651 小时前
Python 后端三剑客:FastAPI/Flask/Django 对比与 LLM 开发选型指南
人工智能·python·机器学习·自然语言处理·django·flask·fastapi
慢半拍iii1 小时前
ops-nn算子库深度解析:昇腾神经网络计算的基础
人工智能·深度学习·神经网络·ai·cann
Elastic 中国社区官方博客1 小时前
Elasticsearch:Workflows 介绍 - 9.3
大数据·数据库·人工智能·elasticsearch·ai·全文检索
组合缺一1 小时前
Solon AI (Java) v3.9 正式发布:全能 Skill 爆发,Agent 协作更专业!仍然支持 java8!
java·人工智能·ai·llm·agent·solon·mcp
一 乐1 小时前
校园二手交易|基于springboot + vue校园二手交易系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端
80530单词突击赢1 小时前
SpringBoot整合SpringMVC全解析
java·spring boot·后端
Ekehlaft1 小时前
这款国产 AI,让 Python 小白也能玩转编程
开发语言·人工智能·python·ai·aipy
慢半拍iii2 小时前
对比分析:ops-nn与传统深度学习框架算子的差异
人工智能·深度学习·ai·cann
vx1_Biye_Design2 小时前
基于Spring Boot+Vue的学生管理系统设计与实现-计算机毕业设计源码46223
java·vue.js·spring boot·spring·eclipse·tomcat·maven