diff --git a/pom.xml b/pom.xml
index f37f53f..c178eb9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -18,6 +18,18 @@
3.2.2
+
+
+
+ org.springframework.ai
+ spring-ai-bom
+ 1.0.3
+ pom
+ import
+
+
+
+
org.springframework.boot
@@ -26,8 +38,7 @@
org.springframework.ai
- spring-ai-client-chat
- 1.0.3
+ spring-ai-starter-model-openai
@@ -36,6 +47,11 @@
4.4.0
+
+ org.projectlombok
+ lombok
+
+
org.springframework.boot
spring-boot-starter-test
diff --git a/src/main/java/com/wonderland/stardewvalley/ai/ChatUtil.java b/src/main/java/com/wonderland/stardewvalley/ai/ChatUtil.java
new file mode 100644
index 0000000..3c3a748
--- /dev/null
+++ b/src/main/java/com/wonderland/stardewvalley/ai/ChatUtil.java
@@ -0,0 +1,25 @@
+package com.wonderland.stardewvalley.ai;
+
+import jakarta.annotation.Resource;
+import org.springframework.ai.chat.client.ChatClient;
+import org.springframework.stereotype.Service;
+
+@Service
+public class ChatUtil {
+
+ private final ChatClient chatClient;
+
+ public ChatUtil(ChatClient.Builder chatClientBuilder) {
+ this.chatClient = chatClientBuilder.build();
+ }
+
+ public String doChat(String background, String input) {
+ String content = chatClient
+ .prompt()
+ .system("你是一个AI助手,请根据背景和输入生成回复")
+ .user("[BackGround]: " + background + "\n[Input]: " + input)
+ .call()
+ .content();
+ return content;
+ }
+}
diff --git a/src/main/java/com/wonderland/stardewvalley/constant/BackGroundConstant.java b/src/main/java/com/wonderland/stardewvalley/constant/BackGroundConstant.java
new file mode 100644
index 0000000..4f864c4
--- /dev/null
+++ b/src/main/java/com/wonderland/stardewvalley/constant/BackGroundConstant.java
@@ -0,0 +1,12 @@
+package com.wonderland.stardewvalley.constant;
+
+import lombok.Getter;
+
+@Getter
+public class BackGroundConstant {
+
+ private static final String BACKGROUND_SPRING = "春天";
+ private static final String BACKGROUND_SUMMER = "夏天";
+ private static final String BACKGROUND_AUTUMN = "秋天";
+ private static final String BACKGROUND_WINTER = "冬天";
+}
diff --git a/src/main/java/com/wonderland/stardewvalley/controller/ChatController.java b/src/main/java/com/wonderland/stardewvalley/controller/ChatController.java
new file mode 100644
index 0000000..e35c333
--- /dev/null
+++ b/src/main/java/com/wonderland/stardewvalley/controller/ChatController.java
@@ -0,0 +1,22 @@
+package com.wonderland.stardewvalley.controller;
+
+import com.wonderland.stardewvalley.ai.ChatUtil;
+import com.wonderland.stardewvalley.entity.AIChatRequest;
+import jakarta.annotation.Resource;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("chat")
+public class ChatController {
+
+ @Resource
+ private ChatUtil chatUtil;
+
+ @PostMapping
+ public String chat(@RequestBody AIChatRequest aiChatRequest) {
+ return chatUtil.doChat(aiChatRequest.getBackGround(), aiChatRequest.getContent());
+ }
+}
diff --git a/src/main/java/com/wonderland/stardewvalley/entity/AIChatRequest.java b/src/main/java/com/wonderland/stardewvalley/entity/AIChatRequest.java
new file mode 100644
index 0000000..0178a61
--- /dev/null
+++ b/src/main/java/com/wonderland/stardewvalley/entity/AIChatRequest.java
@@ -0,0 +1,9 @@
+package com.wonderland.stardewvalley.entity;
+
+import lombok.Data;
+
+@Data
+public class AIChatRequest {
+ private String backGround;
+ private String content;
+}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 6a1c068..b1eea33 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -16,8 +16,15 @@ knife4j:
setting:
language: zh_cn
-
spring:
mvc:
servlet:
- path: /api
\ No newline at end of file
+ path: /api
+ ai:
+ openai:
+ api-key: sk-ciqpxjuhasowxqpmlqizsfoioyhllcscbtjfczmoeddcbdxy
+ base-url: https://api.siliconflow.cn
+ chat:
+ options:
+ model: Pro/Qwen/Qwen2.5-7B-Instruct
+ temperature: 0.7
\ No newline at end of file