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);
}
}
效果:
