Fix result structure for reranker integration

This commit is contained in:
Steve White 2025-02-27 17:01:57 -06:00
parent c40483f593
commit 59bf4a22ee
2 changed files with 23 additions and 4 deletions

View File

@ -57,14 +57,26 @@ def test_reranker():
enhanced_query = processed_query.get("enhanced_query", processed_query.get("original_query", query)) enhanced_query = processed_query.get("enhanced_query", processed_query.get("original_query", query))
print(f"Enhanced query for reranking: {enhanced_query}") print(f"Enhanced query for reranking: {enhanced_query}")
# Print the structure of the first result from each engine
print("\nResult structure examples:")
for engine, results in search_results.items():
if results:
print(f"\n{engine} result example:")
print(json.dumps(results[0], indent=2, default=str))
# Flatten results for easier manipulation
flattened_results = []
for engine, results in search_results.items(): for engine, results in search_results.items():
for result in results: for result in results:
# Add the query and engine to each result
result["query"] = enhanced_query result["query"] = enhanced_query
result["engine"] = engine
flattened_results.append(result)
# Process results without reranking # Process results without reranking
print("\nProcessing results without reranking...") print("\nProcessing results without reranking...")
basic_results = result_collector.process_results( basic_results = result_collector.process_results(
search_results, dedup=True, max_results=None, use_reranker=False {"combined": flattened_results}, dedup=True, max_results=None, use_reranker=False
) )
print(f"Processed {len(basic_results)} results with basic scoring") print(f"Processed {len(basic_results)} results with basic scoring")
@ -83,7 +95,7 @@ def test_reranker():
if reranker_available: if reranker_available:
print("\nProcessing results with reranking...") print("\nProcessing results with reranking...")
reranked_results = result_collector.process_results( reranked_results = result_collector.process_results(
search_results, dedup=True, max_results=None, use_reranker=True {"combined": flattened_results}, dedup=True, max_results=None, use_reranker=True
) )
print(f"Processed {len(reranked_results)} results with reranking") print(f"Processed {len(reranked_results)} results with reranking")

View File

@ -74,14 +74,21 @@ class GradioInterface:
print(f"Engine {engine} returned {len(results)} results") print(f"Engine {engine} returned {len(results)} results")
# Add the query to each result for reranking # Add the query to each result for reranking
enhanced_query = processed_query.get("enhanced_query", processed_query.get("original_query", query))
# Flatten results for easier manipulation
flattened_results = []
for engine, results in search_results.items(): for engine, results in search_results.items():
for result in results: for result in results:
result["query"] = processed_query.get("enhanced_query", processed_query.get("original_query", query)) # Add the query and engine to each result
result["query"] = enhanced_query
result["engine"] = engine
flattened_results.append(result)
# Process the results - don't limit the number of results # Process the results - don't limit the number of results
print(f"Processing results...") print(f"Processing results...")
processed_results = self.result_collector.process_results( processed_results = self.result_collector.process_results(
search_results, dedup=True, max_results=None, use_reranker=use_reranker {"combined": flattened_results}, dedup=True, max_results=None, use_reranker=use_reranker
) )
print(f"Processed {len(processed_results)} results") print(f"Processed {len(processed_results)} results")