@@ -105,9 +105,10 @@ def post_retrieve(
105105 top_k : int ,
106106 user_name : str | None = None ,
107107 info = None ,
108+ plugin = False ,
108109 ):
109110 deduped = self ._deduplicate_results (retrieved_results )
110- final_results = self ._sort_and_trim (deduped , top_k )
111+ final_results = self ._sort_and_trim (deduped , top_k , plugin )
111112 self ._update_usage_history (final_results , info , user_name )
112113 return final_results
113114
@@ -170,6 +171,7 @@ def search(
170171 top_k = top_k ,
171172 user_name = user_name ,
172173 info = None ,
174+ plugin = kwargs .get ("plugin" , False ),
173175 )
174176
175177 logger .info (f"[SEARCH] Done. Total { len (final_results )} results." )
@@ -281,6 +283,9 @@ def _retrieve_simple(
281283 similarity_matrix = cosine_similarity_matrix (documents_embeddings )
282284 selected_indices , _ = find_best_unrelated_subgroup (documents , similarity_matrix )
283285 selected_items = [items [i ] for i in selected_indices ]
286+ logger .info (
287+ f"[SIMPLESEARCH] after unrelated subgroup selection items count: { len (selected_items )} "
288+ )
284289 return self .reranker .rerank (
285290 query = query ,
286291 query_embedding = query_embeddings [0 ],
@@ -540,12 +545,14 @@ def _deduplicate_results(self, results):
540545 return list (deduped .values ())
541546
542547 @timed
543- def _sort_and_trim (self , results , top_k ):
548+ def _sort_and_trim (self , results , top_k , plugin = False ):
544549 """Sort results by score and trim to top_k"""
545550
546551 sorted_results = sorted (results , key = lambda pair : pair [1 ], reverse = True )[:top_k ]
547552 final_items = []
548553 for item , score in sorted_results :
554+ if plugin and round (score , 2 ) == 0.00 :
555+ continue
549556 meta_data = item .metadata .model_dump ()
550557 meta_data ["relativity" ] = score
551558 final_items .append (
0 commit comments