pythonadvanced

Build a RAG Pipeline with LangChain

Implement retrieval-augmented generation using LangChain, embeddings, and a vector store.

python
from langchain.document_loaders import TextLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.embeddings import OpenAIEmbeddings
from langchain.vectorstores import FAISS
from langchain.chat_models import ChatOpenAI
from langchain.chains import RetrievalQA

# 1. Load and split documents
loader = TextLoader("knowledge_base.txt")
docs = loader.load()

splitter = RecursiveCharacterTextSplitter(
    chunk_size=500,
    chunk_overlap=50
)
chunks = splitter.split_documents(docs)

# 2. Create vector store
embeddings = OpenAIEmbeddings()
vectorstore = FAISS.from_documents(chunks, embeddings)

# 3. Build retrieval chain
llm = ChatOpenAI(model="gpt-4o", temperature=0)
qa_chain = RetrievalQA.from_chain_type(
    llm=llm,
    chain_type="stuff",
    retriever=vectorstore.as_retriever(search_kwargs={"k": 3}),
    return_source_documents=True
)

# 4. Query
result = qa_chain.invoke({"query": "How do I configure the API?"})
print(result["result"])
for doc in result["source_documents"]:
    print(f"  Source: {doc.metadata}")

Use Cases

  • Knowledge base Q&A
  • Document search
  • Customer support bots

Tags

Related Snippets

Similar patterns you can reuse in the same workflow.