Spring AI + DeepSeek:轻松打造你的第一个 AI 应用

图片

前序

在当今数字化时代,人工智能(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 开发之旅。

开发你的AI程序

创建项目,点击下一步,我这边为了演示,选择了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的格式输出,系统跑完之后,直接插入数据库,也可以做到数据采集,给企业的项目使用。

转载自:https://blog.youkuaiyun.com/xiatian_win123/article/details/145554691

 
 

==好了,给粉丝个福利==

==打车千万别直接去APP,记得先领券==
亲测一单省了30块钱
### 使用 SpringDeepSeek 构建聊天机器人 为了使用 SpringDeepSeek 构建聊天机器人,可以遵循以下方法来设置项目并实现功能。 #### 添加依赖项 首先,在项目的 `pom.xml` 文件中添加必要的 Maven 依赖项以引入 Spring AIDeepSeek Reasoner 模型的支持: ```xml <dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-openai-spring-boot-starter</artifactId> <version>0.8.0-SNAPSHOT</version> </dependency> ``` 此配置允许应用程序利用 Spring 生态系统中的工具和服务来处理人工智能任务[^1]。 #### 加载和解析文档 对于知识库文件的操作,可以通过 `FileSystemDocumentLoader` 来加载本地存储的不同格式的文件,并通过 `TextDocumentParser` 将其转换为适合进一步处理的形式。这一步骤有助于准备用于训练模型的数据集或者作为推理过程的一部分输入给定的信息源[^2]。 #### 实现聊天逻辑 构建聊天机器人的核心在于定义对话管理机制以及与用户的交互方式。通常情况下,会涉及到自然语言理解 (NLU) 的模块分析用户消息意图;随后调用相应的业务服务执行具体操作;最后由响应生成器形成回复发送回前端界面显示给用户查看。 在实际开发过程中,可能还需要考虑如下方面: - 集成第三方 API 或者自定义算法增强语义理解和上下文感知能力; - 设计友好的用户体验确保流畅沟通体验; - 对话历史记录保存以便后续查询统计分析等用途。 ```java // 示例代码片段:创建一个简单的 REST 控制器接收 HTTP 请求并与客户端交流 @RestController @RequestMapping("/chatbot") public class ChatBotController { @PostMapping("/message") public ResponseEntity<String> handleMessage(@RequestBody String userMessage){ // 处理接收到的消息... return new ResponseEntity<>("这是来自服务器端的回答", HttpStatus.OK); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值