From 2be073dedb043f63700484fab18e4a0ffe1d5e09 Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Wed, 13 Aug 2025 10:12:49 +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