Member-only story
Build a Retrieval Augmented Generation (RAG) system from scratch
Large language models (that’s what ChatGPT is), are really useful at finding information, giving us ideas, removing writer’s bloke, and even writing poems, if you want it to. Of course, to do that, you need to do some prompt enginering — which may sound like a complicated big deal, but it is not. You literally just need to explain what you want the AI to do — and he most likely will (but as many people struggle with explaining what they want, that’s why we need prompt engineers).
All in all, ChatGPT and other Large Language models like it are nice — but they suffer from a downside. They do not have up-to-date information or very specific knowledge that we may be interested in (like a specific book, article, paper, etc.).
That’s why Retrieval Augmented Generation was created, to solve all of those problems.
In this article I will explain what Retrieval Augmented Generation is, and how you can build such a RAG system in Python, in my usual simple, easy, step-by-step manner. I will take you from setting up your environment, packages and IDE, to getting your API Key, setting it as an environment variable and the writing the necessary code for a RAG system which will allow your Large Language model to have information from any link or pdf you provide to it.
If you’d rather just get the code, you will find all of it at the end (I know you are lazy, I am too when I am coding). However, if you get stuck, feel free to read through the…

