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

Spring AI 接入 DeepSeek AI

DeepSeek 大模型

DeepSeek 推出两款模型

  • DeepSeek V 系列,对于V系列主要 对话,模型名称:deepseek-chat

  • DeepSeek R 系统,对于R系统主要 推理, 模型名称:deepseek-reasoner

DeepSeek 官方更新日志,可以看到模型发布和演化的过程

https://api-docs.deepseek.com/zh-cn/updates

Spring AI 官方接入文档

https://docs.spring.io/spring-ai/reference/api/chat/deepseek-chat.html

集成 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 属性对其进行配置。

  2. 设置 DeepSeek 基本 URL:
    将 spring.ai.openai.base-url 属性设置为 api.deepseek.com。

  3. 选择 DeepSeek 模型:
    使用属性 spring.ai.openai.chat.model 指定模型。有关可用选项,请参阅支持的型号。

集成 DeepSeek 示例

  1. 引入依赖
<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-openai-spring-boot-starter</artifactId>
</dependency>

目前使用的是一个快照版本

<spring-ai.version>1.0.0-SNAPSHOT</spring-ai.version>

<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>

使用上述的依赖的时候,maven 官方还未将上述使用的依赖录入,所以我们这里需要添加一下 spring 仓库地址

<repositories>
    <repository>
        <id>spring-milestones</id>
        <name>Spring Milestones</name>
        <url>https://repo.spring.io/milestone</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
    <repository>
        <id>spring-snapshots</id>
        <name>Spring Snapshots</name>
        <url>https://repo.spring.io/snapshot</url>
        <releases>
            <enabled>false</enabled>
        </releases>
    </repository>
</repositories>
  1. 配置
spring:
  ai:
    openai:
      api-key: sk-xxx   // 填写自己申请的key
      base-url: https://api.deepseek.com
      chat:
        options:
          model: deepseek-chat
  1. 简单的聊天示例
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);
    }
}

测试

API 调用

  • 阻塞式
    在这里插入图片描述
  • 非阻塞式响应式
    在这里插入图片描述
  • 再看一下后台计费情况,以及消耗的 tokens
    在这里插入图片描述

总结

Spring AI 接入 DeepSeek 大模型是非常简单的,实现了阻塞和流式聊天模式。
现阶段 DeepSeek 大模型受资源限制可能无法本地部署,那么可以通过在线服务进行学习和使用。
目前的计费模式,看下来还是可以接受的。
源码:https://gitee.com/zhaomingjian/workspace_jason_demo/tree/master/spring-boot-deepseek

附 UI 解决方案

https://ant-design-x.antgroup.com/index-cn

在这里插入图片描述

相关文章:

  • 【linux 安装mongodb】在redhat9上安装mongodb8出现下载元数据错误
  • LLM 模型 Prompt 工程
  • rabbitmq-amqp事务消息+消费失败重试机制+prefetch限流
  • Ubuntu 22.04安装NVIDIA A30显卡驱动
  • 机器学习-决策树详细解释
  • 决策树(Decision Tree)基础知识
  • Java TCP 通信:实现简单的 Echo 服务器与客户端
  • Scala:统计每个单词出现的个数并打印
  • SolidWorks 转 PDF3D 技术详解
  • [vue] .native修饰符
  • 【Proteus仿真】【STM32单片机】全自动养护智能生态雨林缸
  • SpringCloud篇(服务网关 - GateWay)
  • 《深度学习实战》第11集:AI大模型压缩与加速
  • Python语句中OR逻辑运算符用例分析
  • unity学习63,第2个小游戏:用fungus做一个简单对话游戏
  • grpc工具使用
  • SQL基础语法
  • 数据结构与算法:二分答案法
  • 文件IO函数和目录相关函数
  • 飞算JavaAI编程工具集成到idea中
  • 经济日报:美国滥施汽车关税损人不利己
  • 人民日报仲音:大力纠治违规吃喝顽瘴痼疾
  • 中国巴西民间推动建立经第三方验证的“森林友好型”牛肉供应链
  • 地下5300米开辟“人造气路”,我国页岩气井垂深纪录再刷新
  • 首映|奥斯卡最佳国际影片《我仍在此》即将公映
  • 英国首相斯塔默住所起火,警方紧急调查情况