import time
from actian_vectorai import VectorAIClient, reciprocal_rank_fusion
import random
COLLECTION = "documents"
DIMENSION = 128
with VectorAIClient("localhost:50051") as client:
query = [random.gauss(0, 1) for _ in range(DIMENSION)]
# Single search benchmark
start = time.time()
single_results = client.points.search(COLLECTION, vector=query, limit=10)
single_time = time.time() - start
# Hybrid search benchmark (3 queries)
start = time.time()
results_list = []
for i in range(3):
varied_query = [x + random.gauss(0, 0.05) for x in query]
results = client.points.search(COLLECTION, vector=varied_query, limit=10)
results_list.append(results)
hybrid_results = reciprocal_rank_fusion(results_list)
hybrid_time = time.time() - start
print(f"Single search: {single_time*1000:.2f}ms")
print(f"Hybrid search: {hybrid_time*1000:.2f}ms ({hybrid_time/single_time:.1f}x slower)")
print(f"\nSingle results: {len(single_results)}")
print(f"Hybrid results: {len(hybrid_results)}")