package com.vincent.rsf.server.ai.service.impl;
|
|
import com.vincent.rsf.server.ai.config.AiDefaults;
|
import com.vincent.rsf.server.ai.dto.AiConfigSummaryDto;
|
import com.vincent.rsf.server.ai.dto.AiPromptPreviewDto;
|
import com.vincent.rsf.server.ai.dto.AiPromptPreviewRequest;
|
import com.vincent.rsf.server.ai.entity.AiMcpMount;
|
import com.vincent.rsf.server.ai.entity.AiParam;
|
import com.vincent.rsf.server.ai.entity.AiPrompt;
|
import com.vincent.rsf.server.ai.service.AiConfigOpsService;
|
import com.vincent.rsf.server.ai.service.AiMcpMountService;
|
import com.vincent.rsf.server.ai.service.AiParamService;
|
import com.vincent.rsf.server.ai.service.AiPromptService;
|
import lombok.RequiredArgsConstructor;
|
import org.springframework.stereotype.Service;
|
import org.springframework.util.StringUtils;
|
|
import java.util.List;
|
|
@Service
|
@RequiredArgsConstructor
|
public class AiConfigOpsServiceImpl implements AiConfigOpsService {
|
|
private final AiParamService aiParamService;
|
private final AiPromptService aiPromptService;
|
private final AiMcpMountService aiMcpMountService;
|
private final AiPromptRenderSupport aiPromptRenderSupport;
|
|
@Override
|
public AiConfigSummaryDto getSummary(String promptCode, Long tenantId) {
|
String finalPromptCode = StringUtils.hasText(promptCode) ? promptCode : AiDefaults.DEFAULT_PROMPT_CODE;
|
AiParam activeParam = aiParamService.getActiveParam(tenantId);
|
AiPrompt activePrompt = aiPromptService.getActivePrompt(finalPromptCode, tenantId);
|
List<AiMcpMount> mounts = aiMcpMountService.listActiveMounts(tenantId);
|
return AiConfigSummaryDto.builder()
|
.promptCode(activePrompt.getCode())
|
.promptName(activePrompt.getName())
|
.promptScene(activePrompt.getScene())
|
.activeParamName(activeParam.getName())
|
.activeModel(activeParam.getModel())
|
.activeParamUpdatedAt(activeParam.getUpdateTime$())
|
.activeParamUpdatedBy(activeParam.getUpdateBy())
|
.activeParamValidateStatus(activeParam.getValidateStatus())
|
.activeParamValidateMessage(activeParam.getLastValidateMessage())
|
.activeParamValidatedAt(activeParam.getLastValidateTime$())
|
.enabledMcpCount(mounts.size())
|
.enabledMcpNames(mounts.stream().map(AiMcpMount::getName).toList())
|
.activePromptUpdatedAt(activePrompt.getUpdateTime$())
|
.activePromptUpdatedBy(activePrompt.getUpdateBy())
|
.build();
|
}
|
|
@Override
|
public AiPromptPreviewDto renderPromptPreview(AiPromptPreviewRequest request, Long tenantId) {
|
return aiPromptService.renderPreview(request, tenantId);
|
}
|
}
|