From f477fdd6d71426ff84f4ae9abb15d87636acf165 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Mon, 11 Aug 2025 14:09:14 +0800
Subject: [PATCH] feat(ai): 添加 jsonTemplate 字段并更新相关逻辑

---
 src/main/java/cc/mrbird/febs/ai/service/impl/AiServiceImpl.java |   22 +++++++++++++++++-----
 1 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/ai/service/impl/AiServiceImpl.java b/src/main/java/cc/mrbird/febs/ai/service/impl/AiServiceImpl.java
index fca39c3..4c84874 100644
--- a/src/main/java/cc/mrbird/febs/ai/service/impl/AiServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/ai/service/impl/AiServiceImpl.java
@@ -112,14 +112,20 @@
 
         String promptTemplate = aiProductRole.getPromptTemplate();
         String linkId = aiProductRole.getLinkId();
+        String jsonTemplate = aiProductRole.getJsonTemplate();
 
-        if (!StringUtils.hasText(promptTemplate) || !StringUtils.hasText(linkId)) {
-            log.warn("角色配置不完整,promptTemplate 或 linkId 为空,productRoleId: {}", productRoleId);
+        if (
+                !StringUtils.hasText(promptTemplate)
+                || !StringUtils.hasText(linkId)
+                || !StringUtils.hasText(jsonTemplate)
+        ) {
+            log.warn("角色配置不完整,promptTemplate 或 linkId 或 jsonTemplate为空,productRoleId: {}", productRoleId);
             return buildErrorResponse(CODE_ERROR, "角色配置不完整");
         }
 
         AiRequest aiRequest = new AiRequest();
         aiRequest.setPromptTemplate(promptTemplate);
+        aiRequest.setJsonTemplate(jsonTemplate);
         aiRequest.setLinkId(linkId);
         aiRequest.setContent(content);
 
@@ -131,8 +137,14 @@
         String promptTemplate = aiRequest.getPromptTemplate();
         String linkId = aiRequest.getLinkId();
         String content = aiRequest.getContent();
-        if (!StringUtils.hasText(promptTemplate) || !StringUtils.hasText(linkId) || !StringUtils.hasText(content)) {
-            log.warn("请求参数不完整,promptTemplate: {}, linkId: {}, content: {}", promptTemplate, linkId, content);
+        String jsonTemplate = aiRequest.getJsonTemplate();
+        if (
+                !StringUtils.hasText(promptTemplate)
+                        || !StringUtils.hasText(linkId)
+                        || !StringUtils.hasText(content)
+                        || !StringUtils.hasText(jsonTemplate)
+        ) {
+            log.warn("请求参数不完整,promptTemplate: {}, linkId: {}, content: {}, jsonTemplate: {}", promptTemplate, linkId, content, jsonTemplate);
             return buildErrorResponse(CODE_ERROR, "请求参数不完整");
         }
 
@@ -143,7 +155,7 @@
         messages.add(userMessage);
 
         try {
-            JsonNode schemaNode = objectMapper.readTree(SCHEMA_JSON);
+            JsonNode schemaNode = objectMapper.readTree(jsonTemplate);
             ChatCompletionRequest.ChatCompletionRequestResponseFormat responseFormat = new ChatCompletionRequest.ChatCompletionRequestResponseFormat(
                     "json_schema",
                     new ResponseFormatJSONSchemaJSONSchemaParam(

--
Gitblit v1.9.1