From 69d058922231780927cdec42085f70be363aa88a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=86=B7=E5=86=B7?= <2270033969@qq.com>
Date: Wed, 12 Mar 2025 12:05:58 +0800
Subject: [PATCH 1/2] =?UTF-8?q?feat(ai-chat):=20=E6=B7=BB=E5=8A=A0=20AI=20?=
=?UTF-8?q?=E8=81=8A=E5=A4=A9=E5=8A=9F=E8=83=BD=E5=8F=8A=E7=9B=B8=E5=85=B3?=
=?UTF-8?q?=20DTO=20=E5=92=8C=E6=8E=A7=E5=88=B6=E5=99=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 新增 `AiChatMessageDTO` 用于处理 AI 聊天消息
- 新增 `AiChatController` 提供 AI 聊天接口,支持普通聊天和网络搜索模式
- 在 `pom.xml` 中添加大模型相关依赖
---
.../pigx/admin/api/dto/AiChatMessageDTO.java | 23 +++++++++
pigx-upms/pigx-upms-biz/pom.xml | 9 ++++
.../admin/controller/AiChatController.java | 50 +++++++++++++++++++
3 files changed, 82 insertions(+)
create mode 100644 pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/dto/AiChatMessageDTO.java
create mode 100644 pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/AiChatController.java
diff --git a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/dto/AiChatMessageDTO.java b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/dto/AiChatMessageDTO.java
new file mode 100644
index 000000000..db00bef99
--- /dev/null
+++ b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/dto/AiChatMessageDTO.java
@@ -0,0 +1,23 @@
+package com.pig4cloud.pigx.admin.api.dto;
+
+import lombok.Data;
+
+/**
+ * AI 聊天消息 DTO
+ *
+ * @author lengleng
+ * @date 2025/02/20
+ */
+@Data
+public class AiChatMessageDTO {
+
+ /**
+ * 消息
+ */
+ private String message;
+
+ /**
+ * 网络搜索
+ */
+ private boolean webSearch;
+}
diff --git a/pigx-upms/pigx-upms-biz/pom.xml b/pigx-upms/pigx-upms-biz/pom.xml
index 239b4cb37..19430deae 100644
--- a/pigx-upms/pigx-upms-biz/pom.xml
+++ b/pigx-upms/pigx-upms-biz/pom.xml
@@ -174,6 +174,15 @@
org.dromara.sms4j
sms4j-oa-core
+
+
+ io.github.pig-mesh.ai
+ deepseek-spring-boot-starter
+
+
+ com.pig4cloud
+ pigx-common-sse
+
org.apache.velocity
diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/AiChatController.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/AiChatController.java
new file mode 100644
index 000000000..4902f46f3
--- /dev/null
+++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/AiChatController.java
@@ -0,0 +1,50 @@
+package com.pig4cloud.pigx.admin.controller;
+
+import com.pig4cloud.pigx.admin.api.dto.AiChatMessageDTO;
+import io.github.pigmesh.ai.deepseek.core.DeepSeekClient;
+import io.github.pigmesh.ai.deepseek.core.chat.ChatCompletionResponse;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+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;
+import reactor.core.publisher.Flux;
+
+import java.util.Optional;
+
+/**
+ * AI 聊天控制器
+ *
+ * @author lengleng
+ * @date 2025/02/20
+ */
+@Slf4j
+@RestController
+@RequestMapping("/ai")
+@RequiredArgsConstructor
+public class AiChatController {
+
+ private final Optional deepSeekClientOptional;
+
+
+ /**
+ * 聊天
+ *
+ * @param message 消息
+ * @return {@link Flux }<{@link ChatCompletionResponse }>
+ */
+ @PostMapping("/chat")
+ public Flux chat(@RequestBody AiChatMessageDTO message) {
+
+ if (deepSeekClientOptional.isEmpty()) {
+ log.warn("DeepSeek 大模型聊天未开启,请检查配置");
+ return Flux.empty();
+ }
+
+ if (message.isWebSearch()) {
+ return deepSeekClientOptional.get().chatSearchCompletion(message.getMessage());
+ }
+ return deepSeekClientOptional.get().chatFluxCompletion(message.getMessage());
+ }
+}
From b55f7fbe910a467118a38d8bd379b009821a5bbf Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=86=B7=E5=86=B7?= <2270033969@qq.com>
Date: Wed, 19 Mar 2025 18:14:41 +0800
Subject: [PATCH 2/2] =?UTF-8?q?fix(xxl-job-admin):=20=E4=BF=AE=E5=A4=8DXxl?=
=?UTF-8?q?JobInfoMapper.xml=E4=B8=ADtrigger=5Fstatus=E7=9A=84=E6=9D=A1?=
=?UTF-8?q?=E4=BB=B6=E6=9B=B4=E6=96=B0=E9=80=BB=E8=BE=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
#6315 5.8版本 xxl-job运行一次后自动停止
---
.../main/resources/mybatis-mapper/XxlJobInfoMapper.xml | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/pigx-visual/pigx-xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobInfoMapper.xml b/pigx-visual/pigx-xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobInfoMapper.xml
index 7b3c3a3ed..378e23df9 100644
--- a/pigx-visual/pigx-xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobInfoMapper.xml
+++ b/pigx-visual/pigx-xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobInfoMapper.xml
@@ -232,9 +232,11 @@
UPDATE xxl_job_info
SET
trigger_last_time = #{triggerLastTime},
- trigger_next_time = #{triggerNextTime},
- trigger_status = #{triggerStatus}
+ trigger_next_time = #{triggerNextTime}
+
+ , trigger_status = #{triggerStatus}
+
WHERE id = #{id}
-
\ No newline at end of file
+