1 essay on this topic.
Build retrieval-augmented generation step by step in Python: chunking, local embeddings, search, hybrid BM25, re-ranking, cited prompts and evals.