Part 2: From plain retrieval to text generation