zhou zhou
17 小时以前 5d16d9a0e7240ff4e6346bfee4890159da5a764e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package com.vincent.rsf.server.ai.service.impl;
 
import com.vincent.rsf.server.ai.config.AiDefaults;
import com.vincent.rsf.server.ai.dto.AiResolvedConfig;
import com.vincent.rsf.server.ai.service.AiConfigResolverService;
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 com.vincent.rsf.framework.exception.CoolException;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
 
@Service
@RequiredArgsConstructor
public class AiConfigResolverServiceImpl implements AiConfigResolverService {
 
    private final AiParamService aiParamService;
    private final AiPromptService aiPromptService;
    private final AiMcpMountService aiMcpMountService;
 
    @Override
    public AiResolvedConfig resolve(String promptCode, Long tenantId) {
        if (tenantId == null) {
            throw new CoolException("当前租户不存在");
        }
        String finalPromptCode = StringUtils.hasText(promptCode) ? promptCode : AiDefaults.DEFAULT_PROMPT_CODE;
        return AiResolvedConfig.builder()
                .promptCode(finalPromptCode)
                .aiParam(aiParamService.getActiveParam(tenantId))
                .prompt(aiPromptService.getActivePrompt(finalPromptCode, tenantId))
                .mcpMounts(aiMcpMountService.listActiveMounts(tenantId))
                .build();
    }
}