How it works
- Parse PDF, Word, Excel, Markdown and HTML; scanned pages go through Tesseract OCR.
- Chunk by section and spreadsheet row, so each result cites a page, article or row.
- Retrieve with BM25 over Snowball stems and with multilingual-e5 embeddings in FAISS.
- Fuse both rankings with reciprocal rank fusion; optionally rerank with a cross-encoder.
This is the static demo on GitHub Pages: the same BM25, embeddings and
fusion run in your browser over an exported index. The full service (FastAPI, FAISS, Redis, OCR on upload,
reranking) runs with Docker — see the README.