From e576b91f17644e8fa9ba73ef4a8bc409b99ded44 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Fri, 15 Aug 2025 10:02:43 +0800
Subject: [PATCH] feat(ai): 增加提示模板字段
---
src/main/java/cc/mrbird/febs/ai/service/impl/AiServiceImpl.java | 45 ++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 40 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..9639b0b 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
@@ -3,9 +3,11 @@
import cc.mrbird.febs.ai.entity.AiProductRole;
import cc.mrbird.febs.ai.req.ai.AiRequest;
import cc.mrbird.febs.ai.res.ai.AiResponse;
+import cc.mrbird.febs.ai.res.ai.RadarDataItem;
import cc.mrbird.febs.ai.res.ai.Report;
import cc.mrbird.febs.ai.service.AiProductRoleService;
import cc.mrbird.febs.ai.service.AiService;
+import cn.hutool.json.JSONUtil;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
@@ -112,14 +114,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 +139,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 +157,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(
@@ -182,6 +196,27 @@
}
}
+ public static void main(String[] args) {
+ Report report = new Report();
+ List<RadarDataItem> radarDataItems = new ArrayList<>();
+
+ RadarDataItem item1 = new RadarDataItem();
+ item1.setName("A");
+ item1.setCode("A");
+ item1.setScore("80");
+ radarDataItems.add(item1);
+
+ RadarDataItem item2 = new RadarDataItem();
+ item2.setName("A");
+ item2.setCode("A");
+ item2.setScore("80");
+ radarDataItems.add(item2);
+ report.setRadarDataItems(radarDataItems);
+
+ System.out.println(JSONUtil.parse( report));
+
+ }
+
@Override
public void streamQuestion(AiRequest aiRequest, Consumer<AiResponse> callback) {
--
Gitblit v1.9.1