package com.superbiz.agent.service.retrieval; /** * Portable search request used by the knowledge pipeline. */ public record KnowledgeSearchRequest( String query, int topK, String categoryFilter, KnowledgeSearchMode mode ) { public KnowledgeSearchRequest { if (topK <= 0) { throw new IllegalArgumentException("topK must be positive"); } mode = mode == null ? KnowledgeSearchMode.DENSE : mode; query = query == null ? "" : query; } public static KnowledgeSearchRequest dense(String query, int topK, String categoryFilter) { return new KnowledgeSearchRequest(query, topK, categoryFilter, KnowledgeSearchMode.DENSE); } }