Retrieval / portfolio case study

Chemister

A search service for chemistry literature. Ask a question in plain language or draw a molecule, and get the relevant papers and a cited answer.

200K+papers in the searchable corpus
bge-m3multilingual embedding model
Hybridkeyword plus vector ranking
Citedevery answer links its sources
The problem

Keyword search misses the paper you need

Two papers can describe the same reaction with different vocabulary. Researchers end up running many searches and reading abstracts by hand.

Structure is the real query

Chemists often know the molecule, not the words. A text box alone is the wrong interface.

What I built
01 / INGEST

Batch ingestion

Papers are parsed, cleaned, split into passages, and stored with their metadata. New papers are added in batches without rebuilding the query path.

02 / RETRIEVE

Hybrid retrieval

bge-m3 embeddings in a FAISS index, combined with keyword matching and a reranking step, served through FastAPI.

03 / ANSWER

Cited answers

A language model writes a short answer from the retrieved passages. Each claim links back to the paper it came from.

Details that mattered

No copying of source text

Answers are checked for long verbatim overlap with the source passages and rewritten if they copy too much, so the tool summarises rather than republishes.

Structure search

A molecule editor in the browser lets you draw a structure and search for papers that mention it.

Evaluation

A small evaluation harness checks retrieval quality and whether answers stay faithful to the cited passages.

Code is private

Chemister is not open source. I'm happy to walk through the design and a live demo.