Lesson 29 — Beginner

LangChain Fundamentals

Do provider SDK, paanch prompt versions, parsing, retries — code jaldi faila hota hai. LangChain ek orchestration layer hai jo in sabko ek pipeline mein jodta hai. Is lesson mein hum chat models, prompt templates, output parsers, runnables dekhenge aur raw SDK ke saath side-by-side compare karenge.

⏱ 20 min• Beginner• Streaming LLM Responses

LangChain kya hai — layer, model nahi

WHAT

LangChain ek orchestration library hai — tumhare prompts, model calls, parsing aur steps ko jodne wala layer. Model khud provider ka hota hai; LangChain sirf uska use karwata hai.

WHEN

Jab pipeline mein ek se zyada calls, templates, parsers aur tools aane lagen. Ek-do simple calls ke liye raw SDK hi kaafi hai — layer tabhi jabho jab complexity ho.

WHERE

RAG chains, chatbots with memory, agents, summarization pipelines — jahan steps dobara use hone hon aur provider switching chahiye ho.

Mental model: LangChain = waiter, model = kitchen. Waiter order le jaata hai, dish laata hai, plate set karta hai — khaana kitchen banata hai. Waiter badalne se khana nahi badalta, bas service badalti hai.

Yaad rakho: LangChain tumhara LLM nahi hai. Tum kabhi bhi raw API call pe gir sakte ho — actually debug karo toh layer aasan lagti hai. Isliye pehle raw API samjho, phir layer use karo.

Chat models, prompt templates aur output parsers

from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser

llm = ChatOpenAI(model="gpt-4o-mini", temperature=0.2)

prompt = ChatPromptTemplate.from_messages([
    ("system", "Tum ek ticket classifier ho. Sirf ek label do: BILLING ya TECHNICAL."),
    ("user", "Ticket: {ticket}"),
])

parser = StrOutputParser()          # AIMessage se seedha string

chain = prompt | llm | parser
print(chain.invoke({"ticket": "App crash ho raha hai login ke baad"}))
# Model configuration ek jagah set ho jaati hai — har call par nahi
llm = ChatOpenAI(
    model="gpt-4o-mini",
    temperature=0,
    max_tokens=500,
    timeout=20,
    max_retries=2,      # SDK-level retry — app-level retry alag (M2.9)
)
Pro Tip: chain.invoke ke pehle prompt ko alag se .format() karke print karo — model ko exactly kya ja raha hai, yeh dikhna chahiye. Nahi toh debugging andhere mein hoti hai.

Runnable composition — pipe se pipeline

chain = prompt | llm | parser           # | ka matlab: sequence (LCEL)

chain.invoke({"ticket": "..."})                     # ek input -> ek output
list(chain.stream({"ticket": "..."}))               # streaming wahi chain
chain.batch([{"ticket": "A"}, {"ticket": "B"}])     # do inputs ek saath

# Apna Python function bich mein daalo
from langchain_core.runnables import RunnableLambda

def add_tag(text):
    return text.strip().upper()

pipeline = prompt | llm | parser | RunnableLambda(add_tag)
Rule of thumb: Agar tumhe na pata ho ki beech mein kya chal raha hai, debugging mushkil hogi. Har abstraction ke neeche ek plain API call hai — beech mein ek break point laga kar output dekho.

Raw SDK vs LangChain — same kaam, do tareeke

# RAW SDK
resp = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[{"role": "system", "content": SYS}, {"role": "user", "content": ticket}],
    temperature=0,
)
label = resp.choices[0].message.content.strip()

# LANGCHAIN
prompt = ChatPromptTemplate.from_messages([("system", SYS), ("user", "{ticket}")])
label = (prompt | ChatOpenAI(model="gpt-4o-mini", temperature=0) | StrOutputParser()) \
    .invoke({"ticket": ticket})
Decision rule: Do se kam LLM calls + ek hi provider = raw SDK. Multiple steps, switching ya ready integrations chahiye = LangChain. Dono ka mixture bhi valid hai — ek codebase mein dono rakhna normal hai.

Exercise

Question: LangChain mein do runnables ko sequence mein jodne wala operator kaunsa hai?

Question: LangChain khud model nahi hai — woh kis cheez ka layer hai? (ek word)

Question: AIMessage ko plain string mein badalne wala component kya kehlata hai?

Question: Prompt template mein variable ki jagah kaise likhi jaati hai? ({ticket wala format)

Common mistakes

Desi example: Auto stand vs app booking

Seedha auto stand ja kar baat karo toh direct lekin manual hai (raw SDK). App se book karo toh ek hi interface — tracking, receipt, provider switch sab readymade (LangChain). Dono mein auto wahi chal raha hai:

text
Raw SDK   : stand pe khud bolo -> seedha driver, poora control
LangChain : app se book karo   -> uniform interface, swap aasaan
Neeche    : dono mein gaadi wahi engine chal rahi hai (HTTP call)

App band ho toh auto nahi rukta — layer hatane par bhi API zinda hai.
Interview angle — yahan se sawaal aate hain
  • Q: LangChain kya hai aur kya nahi? — Orchestration layer hai; model/provider alag hota hai aur niche wahi API call lagti hai.
  • Q: LCEL pipe (|) se kya milta hai? — Ek uniform Runnable interface: invoke, stream, batch — composition ek line mein.
  • Q: Raw SDK aur LangChain kab choose karein? — Chhota single-provider flow = raw; multi-step, switching, integrations = LangChain.
  • Q: Output parser ka kaam kya hai? — AIMessage jaise object ko desired type mein badalna: string, JSON, pydantic model.
Lesson complete?

LangChain ka layer samajh aa gaya. Agla lesson — Structured Outputs — mein dekhenge model se aisa JSON kaise mangwaate hain jo har baar schema fit ho.

Popular courses: Data Science Course in Lucknow · AI Course in Lucknow · Python Course in Lucknow · Power BI Course · Data Analytics Course