当前位置: 首页 > news >正文

Spring Boot整合DeepSeek实现AI对话

本篇博文会分为DeepSeek开放平台上的API,以及本地私有化部署DeepSeek R1模型两种方式来整合使用,本地化私有部署可以参考这篇博文:DeepSeek介绍及使用ollama本地化部署DeepSeek-R1大模型

Spring AI

Spring AI 是由 Spring(一个广泛使用的开源框架)推出的一个新项目,旨在将 人工智能(AI) 集成到 Spring 应用程序中。Spring 是一个支持 Java 开发的框架,而 Spring AI 使得 Java 开发人员能够更容易地构建、管理和集成人工智能模型和机器学习功能。
我们这里直接使用Spring官方提供的相关依赖来整合,官网地址:https://docs.spring.io/spring-ai/reference/api/chat/deepseek-chat.html
本篇博文主要就是采用的spring ai提供的两个starter依赖进行配置整合,分别是spring-ai-openai-spring-boot-starterspring-ai-ollama-spring-boot-starter

版本依赖

根据官网的描述,spring ai框架支持的SpringBoot版本应该是3.2.x 和 3.3.x
https://www.chengpei.top/upload/spring-ai-version.png
而SpringBoot 3.2.x 和 3.3.x依赖的JDK版本最低应该也是JDK17,所以这里演示整合的代码都是基于spring boot 3.3.8 以及 JDK17

整合DeepSeek API key

进入DeepSeek开放平台页面,注册账号登录后,可以创建API key,新账号有赠送的10元额度,具体价格可以参考这里:https://api-docs.deepseek.com/zh-cn/quick_start/pricing/
有了API key后我们可以开始构建工程了,基于springboot 3.3.8版本搭建一个工程,引入以下依赖:

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

增加以下配置:

spring:
  ai:
    openai:
      base-url: https://api.deepseek.com
      api-key: sk-xxxxxxxxxxxxxxxxx
      chat:
        options:
          model: deepseek-chat

项目会自动装配OpenAiAutoConfiguration,就可以在需要的地方注入OpenAiChatModel
代码如下:

@Resource
private OllamaChatModel chatModel;

private final List<Message> chatHistoryList = new ArrayList<>();

@PostConstruct
public void init() {
	chatHistoryList.add(new SystemMessage("You are a helpful assistant."));
}
    
@GetMapping("/chat")
public ChatResponse test(String message) {
    chatHistoryList.add(new UserMessage(message));
    Prompt prompt = new Prompt(chatHistoryList);
    ChatResponse chatResponse = chatModel.call(prompt);
    if (chatResponse.getResult() != null && chatResponse.getResult().getOutput() != null) {
        chatHistoryList.add(chatResponse.getResult().getOutput());
    }
    return chatResponse;
}

整合本地化部署的DeepSeek R1模型

本地化私有部署可以参考这篇博文:DeepSeek介绍及使用ollama本地化部署DeepSeek-R1大模型
部署完成后同样是基于springboot 3.3.8版本搭建一个工程,引入的依赖就换为:

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

增加以下配置:

spring:
  ai:
    ollama:
      base-url: http://localhost:11434
      chat:
        model: deepseek-r1:1.5b

项目会自动装配OllamaAutoConfiguration,就可以在需要的地方注入ollamaChatModel
代码跟使用spring-ai-openai-spring-boot-starter几乎一样,只是注入的ChatModel类换成了OllamaChatModel
而且实测本地化部署也可以使用spring-ai-openai-spring-boot-starter,修改配置文件如下:

spring:
  ai:
    openai:
      base-url: http://localhost:11434
      api-key: xxxxxxx
      chat:
        options:
          model: deepseek-r1:1.5b

其他也就一样了,只是把地址换成了本地ollama的服务地址,api-key不需要了但是也不能不填,不填会报错,模型就配置本地有的模型即可
如果想像网站那样可以一个字一个字的输出,也可以调用chatModel.stream流式输出爱的回复

相关文章:

  • python-leetcode 25.环形链表
  • 番外03:前端面试八股文-javaScript
  • 服务器防护(ubuntu)
  • 数据结构(6)
  • 华象新闻 | 2月20日前谨慎升级 PostgreSQL 版本
  • 初阶c语言(练习题,猜随机数,关机程序)
  • bash shell笔记——循环结构
  • 业务开发 | 基础知识 | Maven 快速入门
  • AWS助力AI智能扫地机器人马来西亚项目技术解析与成本优化实践
  • 【工业场景】用YOLOv8实现火灾识别
  • Docker 的打包及基本使用
  • 力扣-二叉树-257 二叉树的所有路径
  • LKT4202UGM新一代安全认证加密芯片,守护联网设备和服务安全
  • 小结:OSPF的网络类型,LSA
  • 扣子工作流中禁止同类别的图像流节点,不能超过4个
  • R语言学习计划启动
  • 14、deepseek视觉大模型Janus Pro本地部署及实战
  • 【AI系列】从零开始学习大模型GPT (2)- Build a Large Language Model (From Scratch)
  • C# ASP.NET的未来发展趋势
  • ElasticSearch基础和使用
  • 多地晒五一假期前两日成绩单,湖南单日客流同比增长逾三成
  • 重庆渝中警方:男子点燃摩托车欲寻衅滋事,被民警和群众合力制服
  • 校方就退60件演出服道歉:承诺回收服装承担相关费用,已达成和解
  • 新华社评论员:在推进中国式现代化的宽广舞台上绽放青春光彩
  • 韩国经济副总理崔相穆宣布辞职
  • 民生访谈|支持外贸企业拓内销,上海正抓紧制定便利措施