Lesson 37 — Beginner

Other Orchestration Frameworks

LangChain ek option hai, standard nahi. LlamaIndex data-centric rakhta hai, graph frameworks state aur branching, DSPy declarative optimization — aur kabhi-kabhi sabse acha option raw SDK + apna chhota layer hi hota hai. Is lesson mein in approaches ko compare karke choose karna seekhenge.

⏱ 20 min• Beginner• Cost, Usage & Observability

Orchestration ke alag-alag approaches

WHAT

Orchestration framework = LLM calls, state, tools aur steps ko manage karne wala layer. Har framework ka apna centre of gravity hai: LangChain general chains, LlamaIndex data/retrieval, graphs control flow, DSPy prompt optimization.

WHEN

Jab workflow chhoti Python functions se nahi sambhali ja rahi — state, branches, loops, retries aur testability chahiye. Pehle khud likho, phir framework uthao.

WHERE

RAG systems, stateful agents, research pipelines, prompt-heavy products — jahan control flow aur state pehle se design karna ho.

Yaad rakho: Koi bhi framework universal standard nahi hai. Ek chhote app ke liye raw SDK + 50 lines ka apna wrapper aksar sabse saaf rehta hai — yeh baat interview mein bhi impress karti hai.

LlamaIndex — data pehle

# LlamaIndex — ingest -> index -> query ka data-first model
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader

docs = SimpleDirectoryReader("./policies").load_data()   # ingest
index = VectorStoreIndex.from_documents(docs)             # index
query_engine = index.as_query_engine()                    # query
print(query_engine.query("Refund policy kya hai?"))
Version dhyan se: Frameworks ke APIs modules ke saath badalte rehte hain (import paths bhi). Concept stable hai — ingest → index → retrieve → generate; syntax hamesha docs se verify karo.

Graph / state-machine orchestration — LangGraph

# Nodes = steps, edges = rules, state = shared memory
from typing import TypedDict
from langgraph.graph import StateGraph, END

class S(TypedDict):
    question: str
    facts: str
    answer: str

def research(state: S):
    return {"facts": gather(state["question"])}

def draft(state: S):
    return {"answer": write(state["facts"])}

def needs_more(state: S):                      # routing node
    return "research" if len(state["facts"]) < 200 else "draft"

g = StateGraph(S)
g.add_node("research", research)
g.add_node("draft", draft)
g.add_conditional_edges("research", needs_more,
                        {"research": "research", "draft": "draft"})  # loop + branch
g.add_edge("draft", END)
g.set_entry_point("research")
app = g.compile()
app.invoke({"question": "...", "facts": "", "answer": ""})
Kab graph: Branches, loops aur restartable state wakai hain — tab. Linear chain ke liye graph framework laana = over-engineering; pipe (|) hi kaafi hai.

DSPy — declarative prompts

# DSPy — prompt manually nahi, behaviour declare karo
import dspy

class Answer(dspy.Signature):
    """Sawaal ka seedha, 2-line jawab do."""
    question = dspy.InputField()
    context = dspy.InputField()
    answer = dspy.OutputField()

lm = dspy.LM("provider/model-name")
dspy.configure(lm=lm)

predict = dspy.Predict(Answer)
print(predict(question="GST kitna hai?", context="...").answer)

# Compile step: examples + metric se prompt optimize hota hai
Decision rule: Prompt iteration chhoti hai toh seedha likho. Scale par prompt quality ka systematic improvement chahiye aur eval set ready hai — tab DSPy jaisa declarative approach socho.

Approach choose karna — comparison

APPROACH        dev speed  debug  state/branch  deps        best for
raw SDK         low-ish    best   manual        minimal     1-3 calls, ek provider
LangChain       fast       mid    chain-level   medium      multi-step, switching
graph (LangGraph) mid     good   excellent      medium-high loops, agents, state
LlamaIndex      fast       mid    basic         medium      RAG / data-heavy
DSPy            mid        good   manual        medium      prompt-heavy, eval set ready
apna wrapper    slow (shuru) best  jitna banao   zero       tight control, chhota scope
Interview line: Framework choose karna skill hai, loyalty nahi. Decision factors: control flow ki complexity, team ki debugging style, dependency budget, aur vendor portability — aur interview mein yahi order se explain karo.

Exercise

Question: Documents ingest karke index banakar query karne par focus karne wala framework kaunsa hai?

Question: Nodes, edges aur shared state se stateful workflow banane wala graph framework kaunsa hai?

Question: DSPy mein manually prompt likhne ki jagah kya define karte hain? (ek word)

Question: Minimal dependencies aur maximum debug control chahiye toh kaunsa approach?

Common mistakes

Desi example: Shift supervisor ka style

Har supervisor ka apna style hai — koi checklist se chalata hai (DSPy), koi flowchart bana ke (graph), koi seedha boli leta hai (raw). Kaam wahi hai, bas control aur flexibility ka balance alag:

text
Checklist supervisor (DSPy)  : standard procedure, kam masla
Flowchart supervisor (graph)  : branch/loop clear, kuch bhi miss nahi
Boli-kar supervisor (LangChain): tez shuruaat, style uska
Khud karo (raw SDK)           : poora control, sab tumhara

Canteen ka kaam simple hai toh flowchart banane ki zarurat nahi.
Interview angle — yahan se sawaal aate hain
  • Q: LangChain aur LlamaIndex ka centre of gravity kya hai? — LangChain general orchestration chains; LlamaIndex data ingestion + retrieval (RAG).
  • Q: Graph-based orchestration kab choose karein? — Jab branches, loops, persistent state aur explicit control flow chahiye (agents, restartable workflows).
  • Q: DSPy ka core idea kya hai? — Manually prompt na likh kar signature se behaviour specify karo, optimizer se prompt compile/optimise hota hai.
  • Q: Framework ka main trade-off kya hai? — Development speed vs debug control, dependencies, portability — chhote scope par raw SDK aksar jeetta hai.
Lesson complete?

Frameworks ka landscape clear. Agla lesson — capstone project — jismein streaming, tools, retries aur tracing sab mila kar ek assistant banayenge.

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