acl anthology search

Keyword search can miss related papers simply because their authors use different words for the same idea. I built a search over ACL Anthology abstracts to get beyond that exact wording.

You can ask a question in plain language, but you can also give it a paper ID. It uses that paper's abstract as the query, so a paper you already have becomes a way to find related work.

The work is split into two parts. Before anyone searches, I generate embeddings for the abstracts and index them in Qdrant. At search time, an LLM reformulates the query in several ways. I combine the resulting rankings with reciprocal rank fusion, which improved recall without adding a heavy re-ranker.

I used Fireworks for embeddings and Groq for query reformulation. That kept cost and latency manageable, though it meant working with two providers and keeping a clear boundary between the offline indexing work and online searches.

The React interface connects to a FastAPI backend, with LangChain coordinating retrieval. Answers stream back with inline citations, so you can follow the response back to the papers.

The project is open source. You can try the live demo (opens in a new tab) or explore the full pipeline on GitHub (opens in a new tab).