在当今数字化时代,人工智能(AI)已成为推动技术进步和创新的核心力量。从智能语音助手到图像识别系统,从个性化推荐引擎到自动化流程,AI 的应用无处不在,正深刻地改变着我们的生活和工作方式。
与此同时,软件开发领域也在不断演进,以适应快速变化的技术需求和业务场景。Spring Boot 作为 Java 生态系统中最受欢迎的框架之一,以其 “约定优于配置” 的理念和丰富的功能,为开发者提供了一种高效、便捷的方式来构建企业级应用程序。
DeepSeek 则是 AI 领域的一颗新星,致力于开发先进的大语言模型(LLM)和相关技术 。它的出现为 AI 技术的发展注入了新的活力,其模型在性能和成本效益方面展现出了卓越的优势,在多项测试中表现出色,甚至超越了一些行业领先的模型,且设计成本相对较低。
当 Spring Boot 与 DeepSeek 相遇,两者的结合为开发 AI 应用程序带来了前所未有的机遇。Spring Boot 的强大功能和便捷性,使得开发者能够快速搭建稳定的后端服务,而 DeepSeek 的先进大语言模型则为应用赋予了强大的智能交互和处理能力。通过将 DeepSeek 的 AI 能力集成到 Spring Boot 应用中,我们可以轻松实现智能聊天机器人、智能文档处理、智能代码生成等各种创新应用,为用户提供更加智能化、个性化的服务体验。
在接下来的内容中,我将带领大家一步步深入了解如何使用 Spring Boot 和 DeepSeek 开发你的第一个 AI 程序。 无论你是经验丰富的开发者,还是刚刚踏入 AI 领域的新手,都能从本文中获得实用的知识和技能,开启你的 AI 开发之旅。
基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能
创建项目,点击下一步,我这边为了演示,选择了web和openai
点击完成后,进入项目,会自动导入web和ai相关的依赖包
<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>
配置openai相关的参数
如何获取Key呢,我这里使用的是deepseek和硅基流动再加华为这三家公司合作的一个联合首发的一个平台注册的,注册地址 如下:
https://cloud.siliconflow.cn/i/pCa1dBVX
我选择了一个对话功能的免费模型,你如果你想用其他,生图,视频,语音相关,里面也可以自行选择。
硅基流动官网注册后后,找到API密钥菜单,生成一个你自己的Key;
这样,你的API Key 和模型都配置好了。
spring:
ai:
openai:
api-key: 这里是你自己的api key
base-url: https://api.siliconflow.cn
chat:
options:
model: deepseek-ai/DeepSeek-R1-Distill-Llama-8B
model: deepseek-ai/DeepSeek-R1-Distill-Llama-8B
这个模型,就是硅基流动模型广场选择的模型名称
下面开发AI了
package com.summer.springai.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 = "/chat/{message}")
public String chat(@PathVariable("message") String message) {
return chatClient.prompt()
.user(message)
.call()
.content();
}
}
我这里设置了一个系统角色,给的是苏州天气预报员,对话只要输入日期,就给你输出天气情况。
开发完毕,启动项目,地址栏输入:http://localhost:8080/ai/chat/2025年2月12日
看最终效果:
这里只是简单的演示,项目中可以直接写程序,通过大模型的能力,直接以json的格式输出,系统跑完之后,直接插入数据库,也可以做到数据采集,给企业的项目使用。