package com.vincent.rsf.server.ai.service; import com.vincent.rsf.server.ai.model.AiPromptContext; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; @Service public class AiPromptContextService { private final List providers; public AiPromptContextService(List providers) { this.providers = providers == null ? new ArrayList<>() : providers; } public String buildSystemPrompt(String basePrompt, AiPromptContext context) { List promptParts = new ArrayList<>(); if (basePrompt != null && !basePrompt.trim().isEmpty()) { promptParts.add(basePrompt.trim()); } for (AiPromptContextProvider provider : providers) { if (!provider.supports(context)) { continue; } String providerPrompt = provider.buildContext(context); if (providerPrompt != null && !providerPrompt.trim().isEmpty()) { promptParts.add(providerPrompt.trim()); } } if (promptParts.isEmpty()) { return null; } return String.join("\n\n", promptParts); } }