Summary
In this chapter, we looked at what RAG systems are and why we need them. Then, we covered the steps we must follow to create a RAG system in detail. At this point, you should know how to select and pre-process data with chunking, as well as what vectors and embeddings are and how to create them with specialized models so that you can store them with a specific type of database for storing vectors. Finally, we created a RAG system, working through each step with a real-world example before bringing it all together with LangChain.
In the next chapter, we’ll look at a more complex ChatGPT-powered, real-world LangChain application in more detail. We’ll be utilizing some of the core concepts from previous chapters as well as what we’ve learned about how to implement RAG in this chapter. We’ll aim to create a more complex chatbot that supports memory, RAG, and more specific capabilities powered by LangChain tools.