Spaces:
Running
Running
File size: 1,278 Bytes
b77332f | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | """Command-line entry: `photon-route "<query>" [--top-k N]`."""
from __future__ import annotations
import argparse
import json
import sys
from photon_route.corpus import load_fixture
from photon_route.encode import encode_corpus
from photon_route.retrieve import rank_against
def main() -> int:
p = argparse.ArgumentParser(prog="photon-route")
p.add_argument("query", help="text to rank fixture documents against")
p.add_argument("--top-k", type=int, default=5)
p.add_argument("--json", action="store_true", help="emit JSON")
args = p.parse_args()
corpus = encode_corpus(load_fixture())
results = rank_against(corpus, args.query, top_k=args.top_k)
if args.json:
print(
json.dumps(
[
{
"rank": i + 1,
"score": r.score,
"text": r.doc.doc.text,
"meta": r.doc.doc.meta,
}
for i, r in enumerate(results)
],
indent=2,
)
)
else:
for i, r in enumerate(results, 1):
print(f"{i:>2}. {r.score:.4f} {r.doc.doc.text}")
return 0
if __name__ == "__main__":
sys.exit(main())
|