Spring Ai SpringBoot集成DeepSeek

SpringBoot傻瓜式集成DeepSeek

demo基础信息:jdk 21, springBoot 3.x.x

1、pom文件添加依赖

XML 复制代码
		<dependency>
			<groupId>org.springframework.ai</groupId>
			<artifactId>spring-ai-starter-model-deepseek</artifactId>
			<version>1.0.1</version>
		</dependency>

2、配置文件添加配置

bash 复制代码
spring:
  ai:
    deepseek:
      api-key: "sk-*****"
      chat:
        options:
          model: deepseek-chat
          temperature: 0.8

3、代码实现

java 复制代码
package com.zhh.web_demo_ai.ai;

import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.springframework.ai.chat.messages.AssistantMessage;
import org.springframework.ai.chat.messages.Message;
import org.springframework.ai.chat.messages.SystemMessage;
import org.springframework.ai.chat.messages.UserMessage;
import org.springframework.ai.chat.prompt.Prompt;
import org.springframework.ai.deepseek.DeepSeekChatModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.ArrayList;
import java.util.List;

@Slf4j
@SpringBootTest
public class AiTest {

    @Autowired
    private DeepSeekChatModel chatModel;

    /**
     * 简单问答
     */
    @Test
    public void show(){
        String msg = chatModel.call("你好");
        System.out.println(msg);
    }

    /**
     * 根据预设词回答
     */
    @Test
    public void testWithSystemPrompt() {
        var systemMessage = new SystemMessage("你现在就是鲁迅。");
        var userMessage = new UserMessage("怎么形容今天天气很好?");
        // 将系统消息和用户消息一起作为提示词
        var prompt = new Prompt(List.of(systemMessage, userMessage));
        String msg = chatModel.call(prompt).getResult().getOutput().getText();
        System.out.println("问:" + userMessage.getText());
        System.out.println("Ai答:" + msg);
    }

    /**
     * 根据上下文回答
     */
    @Test
    public void testHistoryChat() {
        // 创建一个列表来存储对话历史
        List<Message> chatHistory = new ArrayList<>();

        // 第一轮:用户提问
        chatHistory.add(new UserMessage("我喜欢看喜剧电影,推荐3个"));
        var prompt1 = new Prompt(chatHistory);
        String msg1 = chatModel.call(prompt1).getResult().getOutput().getText();
        System.out.println("问:" + chatHistory.get(0).getText());
        System.out.println("Ai答:" + msg1);

        // 将AI的回复也加入历史
        chatHistory.add(new AssistantMessage(msg1));

        // 第二轮:用户基于AI的推荐进一步提问
        chatHistory.add(new UserMessage("再推荐2个喜剧电影"));
        var prompt2 = new Prompt(chatHistory);
        String msg2= chatModel.call(prompt2).getResult().getOutput().getText();
        System.out.println("问:" + chatHistory.get(2).getText());
        System.out.println("Ai答:" + msg2);
    }

}

效果:

相关推荐
goehou1 小时前
MCP 查数实战:让 LLM 安全地查数据库(只读账号、SQL 校验、参数漂移)
数据库·ai·llm·教程·mcp·function calling
VIP_CQCRE3 小时前
给团队搭一个 AI 工作台:Open WebUI 接入 Ace Data Cloud 实战
docker·ai·rag·open webui·ace data cloud
Smoothcloud润云4 小时前
PyTorch推理服务动态批处理实战:兼顾吞吐与延迟
人工智能·pytorch·python·深度学习·ai·gpu算力
我才是银古6 小时前
DeepSeek Harness 插件生态解析
插件·deepseek·dsh
木土雨成小小测试员7 小时前
WorkBuddy的安装使用教程详解
ai
feasibility.8 小时前
“美版DeepSeek”等海外开放模型,能夺回生态入口吗?——中国开放权重领先下的2026全球AI分水岭
人工智能·开源·大模型·llm·minimax·deepseek·beam
ss2738 小时前
DeepSeek Harness v0.2.1-alpha.2:Agent 能翻译思考过程了,还能开 Git Worktree
deepseek
fellow998 小时前
DSH Desktop:把 DeepSeek Harness 变成真正的桌面应用
electron·agent·ai编程·deepseek
码哥字节8 小时前
给 Agent 加了 Redis 还是跨会话失忆,我排查后发现少了一层
spring ai·agent skills
Martina_03219 小时前
AI生成的海岸城市一移动镜头,水面反射就跳?用6步统一反射探针、SSR与平面反射
图像处理·人工智能·平面·3d·ai·自然语言处理·游戏策划