diff --git a/pom.xml b/pom.xml
index 023b8cd..52a79b4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -87,7 +87,12 @@
spring-ai-alibaba-starter
1.0.0-M6.1
-
+
+
+ org.springframework.ai
+ spring-ai-ollama-spring-boot-starter
+ 1.0.0-M6
+
diff --git a/src/main/java/com/huangge1199/aiagent/Service/InvokeService.java b/src/main/java/com/huangge1199/aiagent/Service/InvokeService.java
index a6fa4ea..4a6790e 100644
--- a/src/main/java/com/huangge1199/aiagent/Service/InvokeService.java
+++ b/src/main/java/com/huangge1199/aiagent/Service/InvokeService.java
@@ -17,4 +17,6 @@ public interface InvokeService {
JSONObject getMsgByHttp(String question);
String getMsgBySpringAi(String question);
+
+ String getMsgBySpringAiOllam(String question);
}
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 d759586..8929e36 100644
--- a/src/main/java/com/huangge1199/aiagent/Service/impl/InvokeServiceImpl.java
+++ b/src/main/java/com/huangge1199/aiagent/Service/impl/InvokeServiceImpl.java
@@ -6,6 +6,7 @@ import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
+import com.alibaba.cloud.ai.dashscope.chat.DashScopeChatModel;
import com.alibaba.dashscope.aigc.generation.Generation;
import com.alibaba.dashscope.aigc.generation.GenerationParam;
import com.alibaba.dashscope.common.Message;
@@ -15,8 +16,8 @@ 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.model.ChatModel;
import org.springframework.ai.chat.prompt.Prompt;
+import org.springframework.ai.ollama.OllamaChatModel;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
@@ -33,7 +34,10 @@ public class InvokeServiceImpl implements InvokeService {
private String baiLianKey;
@Resource
- private ChatModel dashscopeChatModel;
+ private DashScopeChatModel dashscopeChatModel;
+
+ @Resource
+ private OllamaChatModel ollamaChatModel;
@Override
public JSONObject callWithMessage(String question) throws NoApiKeyException, InputRequiredException {
@@ -106,4 +110,12 @@ public class InvokeServiceImpl implements InvokeService {
.getOutput();
return output.getText();
}
+
+ @Override
+ public String getMsgBySpringAiOllam(String question) {
+ AssistantMessage output = ollamaChatModel.call(new Prompt(question))
+ .getResult()
+ .getOutput();
+ return output.getText();
+ }
}
diff --git a/src/main/java/com/huangge1199/aiagent/controller/invoke/InvokeController.java b/src/main/java/com/huangge1199/aiagent/controller/invoke/InvokeController.java
index 7ebbd96..9e7b99f 100644
--- a/src/main/java/com/huangge1199/aiagent/controller/invoke/InvokeController.java
+++ b/src/main/java/com/huangge1199/aiagent/controller/invoke/InvokeController.java
@@ -62,4 +62,15 @@ public class InvokeController {
return R.fail(e.getMessage());
}
}
+
+ @PostMapping("/ollama")
+ @Operation(summary = "spring ai 引入 ollama")
+ public R ollamaInvoke(@RequestBody String question) {
+ try {
+ String result = invokeService.getMsgBySpringAiOllam(question);
+ return R.ok(result);
+ } catch (ApiException e) {
+ return R.fail(e.getMessage());
+ }
+ }
}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index af5a5b7..dc45b7f 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -3,6 +3,15 @@ spring:
name: long-ai-agent
profiles:
active: dev
+ ai:
+ dashscope:
+ chat:
+ options:
+ model: qwen-plus
+ ollama:
+ base-url: http://192.168.188.2:11435
+ chat:
+ model: gemma3:1b
server:
port: 8123
servlet:
@@ -23,4 +32,9 @@ 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.SimpleLoggerAdvisor = debug
\ No newline at end of file