From 0d408d66c3e79cb65b5f29a7235fa8fe7c4ab587 Mon Sep 17 00:00:00 2001 From: van Date: Sun, 5 Apr 2026 21:35:06 +0800 Subject: [PATCH] 1 --- .../controller/SocialMediaController.java | 29 +++++++++++++++++++ .../business/service/SocialMediaService.java | 22 ++++++++++++++ 2 files changed, 51 insertions(+) diff --git a/src/main/java/cn/van/business/controller/SocialMediaController.java b/src/main/java/cn/van/business/controller/SocialMediaController.java index 7a5a869..278b00a 100644 --- a/src/main/java/cn/van/business/controller/SocialMediaController.java +++ b/src/main/java/cn/van/business/controller/SocialMediaController.java @@ -153,6 +153,35 @@ public class SocialMediaController { return response; } + /** + * 调试:测试大模型连通性。 + * POST /jarvis/social-media/llm/test + * body: { "profileId": "可选,不传则用当前激活或 yml 默认", "message": "可选,默认问 1+1" } + */ + @PostMapping("/llm/test") + public JSONObject testLlm(@RequestBody(required = false) Map request) { + JSONObject response = new JSONObject(); + try { + Map req = request != null ? request : new HashMap<>(); + Object pid = req.get("profileId"); + String profileId = pid == null ? null : pid.toString().trim(); + if (profileId != null && profileId.isEmpty()) { + profileId = null; + } + Object msg = req.get("message"); + String message = msg == null ? null : msg.toString(); + Map data = socialMediaService.testLlmChat(profileId, message); + response.put("code", 200); + response.put("msg", "操作成功"); + response.put("data", data); + } catch (Exception e) { + log.error("LLM 测试接口异常", e); + response.put("code", 500); + response.put("msg", "测试失败: " + e.getMessage()); + } + return response; + } + /** * 解析Double值 */ diff --git a/src/main/java/cn/van/business/service/SocialMediaService.java b/src/main/java/cn/van/business/service/SocialMediaService.java index a685a3f..dcdbee2 100644 --- a/src/main/java/cn/van/business/service/SocialMediaService.java +++ b/src/main/java/cn/van/business/service/SocialMediaService.java @@ -343,5 +343,27 @@ public class SocialMediaService { return content.toString(); } + + /** + * 调试:向大模型发一条短问题(默认 1+1)。profileId 为空时使用当前激活配置(或 yml 默认)。 + */ + public Map testLlmChat(String profileId, String message) { + Map result = new HashMap<>(); + try { + String prompt = StrUtil.isBlank(message) + ? "1+1等于几?请只回答一个数字或最简结果,不要多余解释。" + : message.trim(); + String reply = StrUtil.isBlank(profileId) + ? socialMediaLlmClient.getResponse(prompt) + : socialMediaLlmClient.getResponse(prompt, profileId); + result.put("success", true); + result.put("reply", reply); + } catch (Exception e) { + log.error("LLM 连通性测试失败", e); + result.put("success", false); + result.put("error", e.getMessage() != null ? e.getMessage() : e.getClass().getSimpleName()); + } + return result; + } }