|  | @@ -283,6 +283,7 @@ class OrchestratorRuleParser:
 | 
	
		
			
				|  |  |      def _dynamic_calc_retrieve_k(cls, dataset: Dataset, rest_tokens: int) -> int:
 | 
	
		
			
				|  |  |          DEFAULT_K = 2
 | 
	
		
			
				|  |  |          CONTEXT_TOKENS_PERCENT = 0.3
 | 
	
		
			
				|  |  | +        MAX_K = 10
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          if rest_tokens == -1:
 | 
	
		
			
				|  |  |              return DEFAULT_K
 | 
	
	
		
			
				|  | @@ -311,5 +312,5 @@ class OrchestratorRuleParser:
 | 
	
		
			
				|  |  |          if context_limit_tokens <= segment_max_tokens * DEFAULT_K:
 | 
	
		
			
				|  |  |              return DEFAULT_K
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        # Expand the k value when there's still some room left in the 30% rest tokens space
 | 
	
		
			
				|  |  | -        return context_limit_tokens // segment_max_tokens
 | 
	
		
			
				|  |  | +        # Expand the k value when there's still some room left in the 30% rest tokens space, but less than the MAX_K
 | 
	
		
			
				|  |  | +        return min(context_limit_tokens // segment_max_tokens, MAX_K)
 |