Spring Ai DeepSeek官网中显示 DeepSeek对接Spring Ai只能使用文本功能 所以 通过集成实现文本,后续根据DeepSeek的官网Api实现图片等功能。

准备阶段

maven导入 Spring Ai DeepSeek官网

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

yml配置 可以查看 DeepSeek官网 了解相对应的配置

spring:
  ai:
    openai:
      api-key: "替换为你的 DeepSeek API 密钥"
      base-url: "https://api.deepseek.com"   # 这里使用deepseek的地址官网可查最新的的
      chat:
        options:
          model: "deepseek-reasoner"                # 默认模型
          temperature0: 0.7                       # 生成文本的随机性控制
#          max-tokens: 500

只需要配置这三个参数就可以直接使用了,其他参数后续用到会单独列出来

spring.ai.openai.chat.base-url 官方路径 直接用 https://api.deepseek.com

spring.ai.openai.chat.api-key apikey DeepSeek开放平台 中注册申请

spring.ai.openai.chat.options.model 使用的模型 deepseek-reasoner 默认模型

对话模块

根据 Spring Ai DeepSeek官网 来实现SpringBoot集成DeepSeek的对话功能。

官网有直接使用的案例

    /**
     * 普通对话
     * @param message
     * @return
     */
    @GetMapping("/ai/generate")
    public Map generate(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {
        return Map.of("generation", this.chatModel.call(message));
    }

    /**
     * 普通对话流式返回
     * @param message
     * @return
     */
    @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);
    }

普通对话

还有个流式对话生成,我们直接点到源码里面看

简单来说,“the streaming response from the AI model” 指的是 AI 模型以“流式传输”(streaming)的形式逐步生成并返回回答,而不是一次性生成完整结果后再返回。

好处 :

  • 提升体验:用户无需长时间等待,可以即时看到部分结果(比如聊天时逐字显示)。

  • 节省资源:对于长文本生成,分批传输效率更高。

举个实际例子:

  • 非流式响应
    你问 AI “写一篇长文章”,等待 10 秒后,突然收到完整文章。

  • 流式响应
    你问同样的问题,AI 会像打字一样,逐句输出内容,你几乎立刻就能看到开头部分。

常见应用场景:

  • 聊天机器人(如 ChatGPT)的逐词回复

  • 实时翻译、语音助手

  • 需要动态生成内容的场景(比如代码自动补全)

多轮对话

DeepSeek多轮对话

基础原理:上下文关联的核心

上下文关联的本质是让模型记住并理解对话历史,常见技术手段包括:

  • 对话历史拼接:将用户当前提问与之前的问答内容拼接为完整输入。

  • 注意力机制:利用Transformer的Self-Attention自动关联历史内容。

  • 显式状态管理:通过数据库或缓存记录关键对话信息(如用户偏好、未完成任务等)。

由于SpringAi并不支持原生的DeepSeek 所以这得独立对接DeepSeek去实现,

图片模块

Spring Ai中能对图片处理的聊天模型有很多的如官网所示

由于项目用的是DeepSeek去做对接,但是DeepSeek在SpringAi中并未开放图片处理。

但是DeepSeek的官网是有开放图片等一系列的对接的处理的。

本模块将摒弃Spring Ai直接使用DeepSeek的调用方式去使用。