Metadata-Version: 2.4
Name: routir
Version: 0.0.1b10
Summary: A simple and fast search service for hosting state-of-the-art retrieval models.
Author-email: Eugene Yang <eugene.yang@jhu.edu>
Maintainer-email: Eugene Yang <eugene.yang@jhu.edu>
License: MIT
Keywords: search,retrieval,service
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: lark
Requires-Dist: quart
Requires-Dist: trecrun
Requires-Dist: hypercorn
Requires-Dist: openai
Requires-Dist: aiohttp
Requires-Dist: tqdm
Requires-Dist: pydantic
Requires-Dist: huggingface_hub
Requires-Dist: hf_xet
Provides-Extra: dense
Requires-Dist: numpy; extra == "dense"
Requires-Dist: faiss-cpu; extra == "dense"
Provides-Extra: gpu
Requires-Dist: faiss-gpu; extra == "gpu"
Requires-Dist: torch; extra == "gpu"
Provides-Extra: plaidx
Requires-Dist: plaid-x; extra == "plaidx"
Provides-Extra: sparse
Requires-Dist: pyjnius==1.6.1; extra == "sparse"
Requires-Dist: bsparse; extra == "sparse"
Provides-Extra: docs
Requires-Dist: sphinx>=4.0; extra == "docs"
Requires-Dist: sphinx-rtd-theme>=0.5; extra == "docs"
Requires-Dist: myst-parser>=0.18; extra == "docs"

# routir: A Simple and Fast Search Service for Hosting State-of-the-Art Retrieval Models.

```bash
routir config.json
# or using uvx
uvx routir config
```

## Faiss Indexing 
```bash
python -m routir.utils.faiss_indexing \
./encoded_vectors/ ./faiss_index.PQ2048x4fs.IP/ \
--index_string "PQ2048x4fs" --use_gpu --sampling_rate 0.25
```

## Extension Examples

### PyTerrier
```bash
python ./examples/pyterrier_extension.py # to build the index
uvx --with python-terrier routir ./examples/pyterrier_example_config.json --port 8000 # serve it at port 8000
```

```python
import requests
requests.post("http://localhost:8000/search", json={"service": "pyterrier-cord", "query": "my test query", "limit": 15}).json()
```

### Pyserini
```bash
uvx --with pyserini routir ./examples/pyserini_example_config.json --port 8000 # serve it at port 8000
```

```python
import requests
requests.post("http://localhost:8000/search", json={"service": "pyserinibm25-neuclir-zho-dt", "query": "my test query", "limit": 15}).json()
```

