🔗 LangChain & RAG Frameworks

Master modern AI frameworks for building intelligent applications

🦜 Intermediate Level 💻 Hands-On Code ⏱️ 45 min read 🎯 Interactive Demos

🎯 Why Learn LangChain & RAG?

🏗️ Build AI Applications

LangChain provides the building blocks for creating sophisticated AI applications that connect LLMs with tools, data, and APIs.

📚 Accurate Responses

RAG (Retrieval-Augmented Generation) grounds AI responses in your actual data, reducing hallucinations and improving accuracy.

🚀 Production Ready

These frameworks handle the complexity of building production AI systems with memory, agents, and tool integration.

🔧 Extensible

Modular architecture allows you to swap components, add custom tools, and integrate with any LLM or data source.

Real-World Applications

  • 💬 Intelligent Chatbots - Context-aware assistants with memory
  • 📊 Data Analysis - Query databases with natural language
  • 📝 Document Q&A - Answer questions from your documents
  • 🤖 Autonomous Agents - AI that can use tools and APIs
  • 🔍 Semantic Search - Find information by meaning, not keywords

🦜 Core Frameworks

🦜 LangChain

The most popular LLM framework

  • ✅ Chains & Agents
  • ✅ Memory Systems
  • ✅ Tool Integration
  • ✅ Multiple LLM Support

🦙 LlamaIndex

Specialized for data indexing

  • ✅ Advanced Indexing
  • ✅ Query Engines
  • ✅ Document Processing
  • ✅ Hybrid Search

🌾 Haystack

Production NLP pipelines

  • ✅ Pipeline Architecture
  • ✅ Neural Search
  • ✅ Question Answering
  • ✅ Enterprise Ready

🔧 Framework Selector

Describe your use case and get a framework recommendation:

Your framework recommendation will appear here...

⛓️ Chain Patterns

Sequential Chains

Connect multiple LLM calls in sequence, where each output feeds into the next input.

# Sequential chain example from langchain import LLMChain, PromptTemplate from langchain.chains import SimpleSequentialChain # First chain: Summarize summarize_template = "Summarize this text: {text}" summarize_chain = LLMChain( llm=llm, prompt=PromptTemplate.from_template(summarize_template) ) # Second chain: Translate translate_template = "Translate to Spanish: {text}" translate_chain = LLMChain( llm=llm, prompt=PromptTemplate.from_template(translate_template) ) # Combine chains sequential_chain = SimpleSequentialChain( chains=[summarize_chain, translate_chain] ) result = sequential_chain.run(long_text)

Parallel Chains

Run multiple chains simultaneously for faster processing.

Map-Reduce

Process documents in parallel then combine results.

Router Chains

Route inputs to different chains based on content.

Conditional Chains

Execute chains based on conditions or rules.

📚 RAG Systems

How RAG Works

  1. Document Processing - Split documents into chunks
  2. Embedding Generation - Convert chunks to vectors
  3. Vector Storage - Store in vector database
  4. Query Processing - Convert query to vector
  5. Similarity Search - Find relevant chunks
  6. Context Injection - Add chunks to prompt
  7. Response Generation - LLM generates answer

Implementation Example

# RAG implementation example from langchain.vectorstores import Chroma from langchain.embeddings import OpenAIEmbeddings from langchain.chains import RetrievalQA # Create vector store embeddings = OpenAIEmbeddings() vectorstore = Chroma.from_documents( documents=docs, embedding=embeddings ) # Create retrieval chain qa_chain = RetrievalQA.from_chain_type( llm=llm, retriever=vectorstore.as_retriever(), return_source_documents=True ) # Query the system result = qa_chain({"query": "What is the refund policy?"}) print(result["result"]) print("Sources:", result["source_documents"])

Vector Databases

🔷 Pinecone

Managed vector database with high performance.

🟢 Weaviate

Open-source with hybrid search capabilities.

🎨 ChromaDB

Lightweight, perfect for development.

💻 Hands-On Practice

Build Your First Chain

Create a simple LangChain application:

# Step 1: Install LangChain pip install langchain openai # Step 2: Basic setup from langchain import OpenAI, LLMChain from langchain.prompts import PromptTemplate # Step 3: Create LLM llm = OpenAI(temperature=0.7) # Step 4: Create prompt prompt = PromptTemplate( input_variables=["product"], template="Create a tagline for {product}:" ) # Step 5: Create chain chain = LLMChain(llm=llm, prompt=prompt) # Step 6: Run chain result = chain.run("eco-friendly water bottles") print(result)

Try It Yourself

Enter a product name to generate a tagline:

Your AI-generated tagline will appear here...

📖 Quick Reference

Essential Imports

# LangChain essentials from langchain import OpenAI, LLMChain from langchain.prompts import PromptTemplate from langchain.memory import ConversationBufferMemory from langchain.agents import initialize_agent, Tool from langchain.vectorstores import Chroma from langchain.embeddings import OpenAIEmbeddings

Common Patterns

Memory Chain

memory = ConversationBufferMemory()
chain = ConversationChain(
    llm=llm,
    memory=memory
)

Agent with Tools

tools = [SearchTool(), CalculatorTool()]
agent = initialize_agent(
    tools, llm,
    agent="zero-shot-react"
)

RAG Pipeline

qa = RetrievalQA.from_chain_type(
    llm=llm,
    retriever=vectorstore.as_retriever()
)

Resources