Lesson 56 — Intermediate

Baseline RAG from Scratch

Framework se pehle pipeline apne haath se likhna zaroori hai — tabhi andar kya chalta hai dikhta hai. Is lesson mein hum retrieve → assemble → generate ka poora loop, grounded answers ke liye prompt design, weak/missing context handle, aur k/ordering/total context ke effects dekhenge.

⏱ 20 min• Intermediate• RAG Architecture & When to Use It

Pipeline by hand

Kya hai?

Baseline RAG: apne hybrid search engine se top-k chunks nikaalo, unhe numbered blocks mein prompt mein daalo, LLM se grounded jawab bulwalo. Bina framework, sab kuch apne functions mein.

Kab kaam aata hai?

Har naye RAG project ki pehli build. Baseline ke bina improvements (rerank, fusion, CRAG) ka koi anchor nahi — pehle ek chhota working system chahiye.

Kahan milta hai?

Tumhare capstone search engine ke upar ek aur layer: retrieve(), assemble(), rag() — 3 functions aur done. Aage framework (M4.14) isi ko replace karega.

def retrieve(query, k=5, where=None):
    hits = hybrid_search(query, dense, sparse, k=k, where=where)
    return hits

def assemble(hits):
    blocks = []
    for i, h in enumerate(hits, start=1):
        blocks.append("[{}] {}\n{}".format(i, h["meta"].get("heading", ""),
                                            h["text"]))
    return "\n\n".join(blocks)

def rag(query, k=5):
    hits = retrieve(query, k)
    context = assemble(hits)
    prompt = GROUNDED.format(context=context, question=query)
    return chat(prompt), hits          # hits hamesha log ke saath
Hits ko mat phenko: LLM call ke saath retrieved hits wapas rakho — citation, debugging aur eval teeno isi se hote hain. Sirf answer string return karna sabse common design mistake hai.

Grounded answers ka prompt

Tum ek assistant ho. Sirf neeche diye gaye CONTEXT se jawaab do.

Rules:
- Har claim ke saath [n] citation do, jahan n context block ka number hai.
- Context mein jawab na ho toh likho: "Insufficient information".
- Guess, extrapolation aur bahar ki knowledge mat jodo.
- User ki bhasha (Hindi/Hinglish) mein hi jawab do.

CONTEXT:
{context}

QUESTION: {question}
Prompt chhota rakho: System prompt mein RAG ke rules likho, har request ke saath nahi. Context blocks apne aane do — instruction aur data ka proportion har baar alag, rules fix.

Weak ya missing context handle karna

MIN_SCORE = 0.35     # apne eval se tune karo, kisi aur ka nahi

def safe_rag(query, k=5):
    hits = retrieve(query, k)
    if not hits or hits[0]["score"] < MIN_SCORE:
        return {"answer": "Insufficient information",
                "citations": [], "abstained": True}
    prompt = GROUNDED.format(context=assemble(hits), question=query)
    return {"answer": chat(prompt), "hits": hits, "abstained": False}
Threshold tumhara hai: 0.35 ek example hai, magic nahi. Har model/corpus ka score range alag hota hai — apne labeled queries se tune karo aur us number ko config mein rakho, code mein hardcode nahi.

k, chunk ordering aur total context ka asar

# k sweep: har k pe apne set pe answer quality dekho
for k in [1, 3, 5, 10, 20]:
    acc = run_eval(lambda q: rag(q, k=k))
    print("k =", k, "score =", acc)
# aksar curve: 1 se 5 tez sudhar, 5-10 dheere, uske baad distract/flatten
Curve banao, guess mat karo: k ki sweep apne eval set pe chalao — score vs latency vs tokens ek table mein. Production ka k us curve se aayega, default se nahi. Har naye corpus pe ye dobara chalana padta hai.

Exercise

Question: Retrieved chunks ko numbered blocks banake prompt mein jodne ka step kya kehlata hai?

Question: Context mein jawab na ho toh grounded prompt mein model ko kya likhne ko bolte hain? (2 shabd)

Question: Weak retrieval pe model ko answer dene se pehle kya check hota hai? (score threshold / temperature)

Question: k badhane se context ke saath extra jo irrelevant content aata hai use kya kehte hain?

Common mistakes

Desi example: Tiffin service ka order note

Tum order dete ho (query), kitchen se sahi saman uthte hain (retrieve), phir recipe ke hisaab se banate hain (generate). Agar saman hi galat laya ya missing tha, toh chef kitna bhi expert ho dish kharab — aur tumhe pata bhi nahi chalega:

text
order note (query)
  -> saman uthao (retrieve top-k)
  -> recipe ke saath plate karo (assemble)
  -> chef banaye (generate)
saman missing? -> "aaj ye dish nahi ban sakti" (abstain) - better than guess
Interview angle — yahan se sawaal aate hain
  • Q: Baseline RAG ke 3 functions? — retrieve (search engine), assemble (numbered context), rag (prompt + LLM + hits).
  • Q: Grounded prompt mein kya likhte hain? — Sirf context se jawab, [n] citation contract, abstain option, no extrapolation.
  • Q: k badhane ke do side effects? — Zyada coverage par distractors + tokens/latency badhte hain; curve se choose karo.
  • Q: Retrieval ka score weak ho toh? — Threshold se abstain/rewrite, model ko guess karne mat do; log mein abstain rate track.
Lesson complete?

Baseline RAG chal raha hai — pipeline, prompt, threshold aur k-sweep sab aata hai. Agla lesson — Reranking — mein dekhenge same context ko bina k badhaye kaise behtar banate hain.

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