zhou zhou
15 小时以前 80a6d9236ade191a5de0975abe4de5a6e7e63915
rsf-server/src/main/java/com/vincent/rsf/server/ai/service/impl/AiConfigResolverServiceImpl.java
@@ -6,6 +6,7 @@
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;
@@ -18,14 +19,22 @@
    private final AiPromptService aiPromptService;
    private final AiMcpMountService aiMcpMountService;
    /**
     * 按租户解析一次完整的 AI 运行配置。
     * 该方法是对话入口、运行态摘要和配置中心共用的统一解析点,
     * 负责把当前生效的参数、Prompt 和 MCP 挂载聚合成一个不可再拆分的配置对象。
     */
    @Override
    public AiResolvedConfig resolve(String promptCode) {
    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())
                .prompt(aiPromptService.getActivePrompt(finalPromptCode))
                .mcpMounts(aiMcpMountService.listActiveMounts())
                .aiParam(aiParamService.getActiveParam(tenantId))
                .prompt(aiPromptService.getActivePrompt(finalPromptCode, tenantId))
                .mcpMounts(aiMcpMountService.listActiveMounts(tenantId))
                .build();
    }
}