from __future__ import annotations
import numpy as np
from pyvicinity.ann_benchmarks import VicinityHNSW
def main() -> None:
rng = np.random.default_rng(0)
train = rng.standard_normal((5_000, 32), dtype=np.float32)
test = rng.standard_normal((50, 32), dtype=np.float32)
algo = VicinityHNSW("cosine", {"M": 16, "efConstruction": 100})
algo.fit(train)
print(f"fit ok: {algo}")
algo.set_query_arguments(50)
ids = algo.query(test[0], 10)
print(f"single-query ids[:10]: {ids.tolist()}")
algo.batch_query(test, 10)
batch = algo.get_batch_results()
print(f"batch_query shape: {batch.shape}")
algo.done()
if __name__ == "__main__":
main()