勿忘初心做自己 发表于 昨天 17:51

Spring Boot + DeepSeek 实战来了:完美运行!

大家好,我是R哥。
DeepSeek 是国内研发的一款大语言模子(LLM),在代码理解和生成方面表现突出,甚至在一些测试中超过了 GPT-4。相比其他模子,它的本地化适配更好,最重要的是,它提供的 API 无需复杂网络环境。
更多介绍:DeepSeek 是什么?
前段时间我分享一个《王炸!Spring 宣布接入 DeepSeek!!》
这篇我要分享的是,怎样使用 Spring Boot 集成 DeepSeek 搭建一个 AI 智能问答服务,让用户可以输入题目,然后调用 DeepSeek API 进行智能答复。
1、创建 Spring Boot 项目

起首创建一个标准的 Spring Boot 项目,你可以用 Spring Initializr 生成,也可以用 IDEA 等开发工具创建。
Spring Boot 底子就不介绍了,推荐看这个实战项目:
https://github.com/javastacks/spring-boot-best-practice
添加依赖

项目创建完成后,先修改 pom.xml 添加必要的依赖:
<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-bom 和 spring-ai-openai-spring-boot-starter 依赖,前者可以放在父项目中,后者放在子项目中继承即可。
需要留意的是:
因为现在 Spring AI 还没有发布正式版,在 Maven 中央堆栈中还找不到正式依赖,所以需要再添加 spring-milestones 和 spring-snapshots 堆栈。
添加 DeepSeek 配置参数

然后,在 application.yml 配置 DeepSeek API:
spring:
ai:
    openai:
      api-key: "sk-xxxxxx" # 安全起见,从系统环境变量读取
      base-url: https://api.deepseek.com
      chat:
      options:
          model: deepseek-chat
          temperature: 0.5安全起见,API KEY 可以设置从系统环境变量读取:
export SPRING_AI_OPENAI_API_KEY="sk-xxxxxx" # 真实 API KEY假如从系统环境变量读取,不要忘记使用 source 命令生效。
谈天配置项解释如下表:
配置参数说明spring.ai.openai.api-keyOpenAI API 的密钥,用于身份验证和访问权限。spring.ai.openai.base-urlOpenAI API 的底子 URL,用于指定 API 请求的端点。spring.ai.openai.chat.options.model指定使用的谈天模子。spring.ai.openai.chat.options.temperature控制生成文本的随机性。值越低,生成的文本越确定和一致;值越高,生成的文本越随机。以上只是文本生成的几个核心参数,更多配置参数可以参考以下几个参数配置类:

[*]OpenAiParentProperties
[*]OpenAiConnectionProperties
[*]OpenAiChatProperties
[*]...
完整的类结构图如下:
https://img2024.cnblogs.com/other/1218593/202502/1218593-20250228163350985-493343376.png
在《王炸!Spring 宣布接入 DeepSeek!!》一文中说了,Spring AI 现在是通过使用现有的 OpenAI 客户端与 DeepSeek AI 集成的:
https://img2024.cnblogs.com/other/1218593/202502/1218593-20250228163351337-1023340306.jpg
所以,以上 OpenAI 配置参数也是和DeepSeek 兼容的。
2、集成 DeepSeek API

上面提到,Spring AI 中的 DeepSeek API 现在还是走的 OpenAI 客户端,所以,要使用 DeepSeek,只需要在 API 中需要注入一个 OpenAiChatModel 客户端实例来发起请求。
参考代码如下:
/**
* 微信公众号:Java技术栈
*/
@Slf4j
@RestController
@RequiredArgsConstructor
public class ChatController {

    private final OpenAiChatModel chatModel;

    /**
   * 聊天接口
   * @param message
   * @return
   */
    @GetMapping("/ds/chat")
    public String generate(@RequestParam(value = "message", defaultValue = "hello") String message) {
      return this.chatModel.call(message);
    }

    /**
   * 流式聊天接口
   * @param message
   * @return
   */
    @GetMapping("/ds/chatStream")
    public Flux<ChatResponse> generateStream(@RequestParam(value = "message", defaultValue = "hello") String message) {
      Prompt prompt = new Prompt(new UserMessage(message));
      return this.chatModel.stream(prompt);
    }

}普通谈天和流式谈天的区别是:
普通谈天是一次性返回结果,流式谈天是几个字几个字的返回,流式谈天返回的结果需要前端框架进行封装。
这样,我们的 Spring Boot + DeepSeek API 智能问答接口就完成了。
3、效果测试

启动 Spring Boot 项目后,我们可以通过 Postman 或欣赏器访问:
http://localhost:8080/api/chat?message=xxx
假如配置没题目,你会收到 DeepSeek 生成的答复。
测试示例如下:
https://img2024.cnblogs.com/other/1218593/202502/1218593-20250228163351690-1078431732.png
https://img2024.cnblogs.com/other/1218593/202502/1218593-20250228163352083-2046528412.png
Spring Boot + DeepSeek 完美运行!真的太香了!
用 Spring Boot 处置惩罚 HTTP 请求,再通过 DeepSeek API 进行 AI 交互,轻松打造一个 AI 智能问答系统,整个接入流程和 API 使用非常轻松。
以上只是简单的接入,你也可以进一步扩展,比如增加前端用户界面、增加用户会话记录,甚至接入微信、钉钉呆板人,让 AI 真正赋能企业业务。
本文完整示例代码已上传 Github:
https://github.com/javastacks/spring-boot-best-practice/tree/master/spring-boot-ai
赶紧试试吧,感受 AI 的魅力吧!
末了,推荐下我的《Spring Boot 核心技术课》,基于最新 Spring Boot 3.x 主版本,持续更新,包括底层实现原理及代码实战,知识点非常齐备,16 个模块,助你快速打通 Spring Boot 的各个环节。
程序员 + AI 编程是必然的趋势了,也是必备的技能,背面我会在《Spring Boot 核心技术课》课程中加一个 AI 模块,更新更多的 Spring Boot + AI 实战教程,课程加量不加价。
https://img2024.cnblogs.com/other/1218593/202502/1218593-20250228163354326-1031124392.png
版权声明: 本文系公众号 "Java技术栈" 原创,转载、引用本文内容请注明出处,抄袭、洗稿一律投诉侵权,结果自负,并保留追究其法律责任的权利。
更多文章推荐:
1.Spring Boot 3.x 教程,太全了!
2.3,000+ 道 Java面试题及答案整理(最新版)
3.免费获取 IDEA 激活码的 7 种方式(最新版)
4.Java & DeepSeek & AI 学习资料分享
5.程序员精美简历模板分享
觉得不错,别忘了顺手点赞+转发哦!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Spring Boot + DeepSeek 实战来了:完美运行!