diff --git a/src/main/java/com/huangge1199/aiagent/Service/InvokeService.java b/src/main/java/com/huangge1199/aiagent/Service/InvokeService.java index 4a6790e..27cd23c 100644 --- a/src/main/java/com/huangge1199/aiagent/Service/InvokeService.java +++ b/src/main/java/com/huangge1199/aiagent/Service/InvokeService.java @@ -19,4 +19,6 @@ public interface InvokeService { String getMsgBySpringAi(String question); String getMsgBySpringAiOllam(String question); + + void moreMessages(); } diff --git a/src/main/java/com/huangge1199/aiagent/Service/impl/InvokeServiceImpl.java b/src/main/java/com/huangge1199/aiagent/Service/impl/InvokeServiceImpl.java index b6cf7a1..316be7e 100644 --- a/src/main/java/com/huangge1199/aiagent/Service/impl/InvokeServiceImpl.java +++ b/src/main/java/com/huangge1199/aiagent/Service/impl/InvokeServiceImpl.java @@ -1,6 +1,8 @@ package com.huangge1199.aiagent.Service.impl; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpResponse; @@ -16,6 +18,9 @@ import com.alibaba.dashscope.exception.NoApiKeyException; import com.huangge1199.aiagent.Service.InvokeService; import jakarta.annotation.Resource; import org.springframework.ai.chat.messages.AssistantMessage; +import org.springframework.ai.chat.messages.SystemMessage; +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.ollama.OllamaChatModel; import org.springframework.beans.factory.annotation.Qualifier; @@ -121,4 +126,42 @@ public class InvokeServiceImpl implements InvokeService { .getOutput(); return output.getText(); } + + @Override + public void moreMessages() { + + List messages = new ArrayList<>(); + + //第零轮对话 + messages.add(new SystemMessage("你是一个旅游规划师")); + messages.add(new UserMessage("你是谁?")); + ChatResponse response = ollamaChatModel.call(new Prompt(messages)); + String content = response.getResult().getOutput().getText(); + System.out.printf("第零轮: %s\n", content); + + messages.add(new AssistantMessage(content)); + + //第一轮对话 + messages.add(new UserMessage("我想去新疆")); + response = ollamaChatModel.call(new Prompt(messages)); + content = response.getResult().getOutput().getText(); + System.out.printf("第一轮: %s\n", content); + + messages.add(new AssistantMessage(content)); + + //第二轮对话 + messages.add(new UserMessage("能帮我推荐一些旅游景点吗?")); + response = ollamaChatModel.call(new Prompt(messages)); + content = response.getResult().getOutput().getText(); + System.out.printf("第二轮: %s\n", content); + + messages.add(new AssistantMessage(content)); + + //第三轮对话 + messages.add(new UserMessage("那里这两天的天气如何?")); + response = ollamaChatModel.call(new Prompt(messages)); + content = response.getResult().getOutput().getText(); + + System.out.printf("第三轮: %s\n", content); + } } diff --git a/src/main/java/com/huangge1199/aiagent/controller/InvokeController.java b/src/main/java/com/huangge1199/aiagent/controller/InvokeController.java index 0e114a3..ad07faf 100644 --- a/src/main/java/com/huangge1199/aiagent/controller/InvokeController.java +++ b/src/main/java/com/huangge1199/aiagent/controller/InvokeController.java @@ -71,4 +71,10 @@ public class InvokeController { return R.fail(e.getMessage()); } } + + @PostMapping("/moreMessages") + @Operation(summary = "多轮对话") + public void moreMessages() { + invokeService.moreMessages(); + } } diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index a93c712..3bd909f 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -11,7 +11,7 @@ spring: ollama: base-url: http://192.168.188.2:11435 chat: - model: gemma3:1b + model: DeepSeek-R1-Distill-Qwen-1.5B:latest server: port: 8123 servlet: @@ -32,4 +32,13 @@ springdoc: knife4j: enable: true setting: - language: zh_cn \ No newline at end of file + language: zh_cn + +logging: + level: + org: + springframework: + ai: + chat: + client: + advisor: DEBUG