From 6bb7bc6eb5621b7039e31a9691b40bca827dae5d Mon Sep 17 00:00:00 2001 From: lihao05 Date: Tue, 23 Sep 2025 13:57:18 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E4=BF=AE=E5=A4=8D=E7=BC=BA=E5=B0=91?= =?UTF-8?q?=E7=9A=84=E5=BE=AE=E4=BF=A1=E9=80=BB=E8=BE=91=E9=83=A8=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/ruoyi/handler/MsgHandler.java | 1 + .../org/ruoyi/service/IChatVxService.java | 19 ++++++++++ .../ruoyi/service/impl/ChatVxServiceImpl.java | 38 +++++++++++++++++++ 3 files changed, 58 insertions(+) create mode 100644 ruoyi-modules/ruoyi-wechat/src/main/java/org/ruoyi/service/IChatVxService.java create mode 100644 ruoyi-modules/ruoyi-wechat/src/main/java/org/ruoyi/service/impl/ChatVxServiceImpl.java diff --git a/ruoyi-modules/ruoyi-wechat/src/main/java/org/ruoyi/handler/MsgHandler.java b/ruoyi-modules/ruoyi-wechat/src/main/java/org/ruoyi/handler/MsgHandler.java index 6527371e..39182174 100644 --- a/ruoyi-modules/ruoyi-wechat/src/main/java/org/ruoyi/handler/MsgHandler.java +++ b/ruoyi-modules/ruoyi-wechat/src/main/java/org/ruoyi/handler/MsgHandler.java @@ -8,6 +8,7 @@ import me.chanjar.weixin.cp.bean.message.WxCpXmlMessage; import me.chanjar.weixin.cp.bean.message.WxCpXmlOutMessage; import org.ruoyi.builder.TextBuilder; + import org.ruoyi.service.IChatVxService; import org.springframework.stereotype.Component; diff --git a/ruoyi-modules/ruoyi-wechat/src/main/java/org/ruoyi/service/IChatVxService.java b/ruoyi-modules/ruoyi-wechat/src/main/java/org/ruoyi/service/IChatVxService.java new file mode 100644 index 00000000..60ed4ff4 --- /dev/null +++ b/ruoyi-modules/ruoyi-wechat/src/main/java/org/ruoyi/service/IChatVxService.java @@ -0,0 +1,19 @@ +package org.ruoyi.service; + +/** + * 企业微信聊天管理Service接口 + * + * @author ageerle + * @date 2025-04-08 + */ +public interface IChatVxService { + + + /** + * 企业微信应用回复 + * @param prompt 提示词 + * @return 回复内容 + */ + String chat(String prompt); + +} diff --git a/ruoyi-modules/ruoyi-wechat/src/main/java/org/ruoyi/service/impl/ChatVxServiceImpl.java b/ruoyi-modules/ruoyi-wechat/src/main/java/org/ruoyi/service/impl/ChatVxServiceImpl.java new file mode 100644 index 00000000..4ffe8d0c --- /dev/null +++ b/ruoyi-modules/ruoyi-wechat/src/main/java/org/ruoyi/service/impl/ChatVxServiceImpl.java @@ -0,0 +1,38 @@ +package org.ruoyi.service.impl; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; + +import org.ruoyi.common.chat.entity.chat.ChatCompletion; +import org.ruoyi.common.chat.entity.chat.ChatCompletionResponse; +import org.ruoyi.common.chat.entity.chat.Message; +import org.ruoyi.common.chat.openai.OpenAiStreamClient; +import org.ruoyi.service.IChatVxService; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +@Service +@Slf4j +@RequiredArgsConstructor +public class ChatVxServiceImpl implements IChatVxService { + + private final OpenAiStreamClient openAiStreamClient; + + @Override + public String chat(String prompt) { + List messageList = new ArrayList<>(); + Message message = Message.builder().role(Message.Role.USER).content(prompt).build(); + messageList.add(message); + ChatCompletion chatCompletion = ChatCompletion + .builder() + .messages(messageList) + .model("gpt-4o-mini") + .stream(false) + .build(); + ChatCompletionResponse chatCompletionResponse = openAiStreamClient.chatCompletion(chatCompletion); + return chatCompletionResponse.getChoices().get(0).getMessage().getContent().toString(); + } + +}