ЁЯПл The SchoolтА║ЁЯза AIтА║ЁЯУЦ рдзрдбрд╛ 10 тАФ RAG: рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд open-book рдкрд░реАрдХреНрд╖рд╛
ЁЯЦ╝я╕П See the drawing + lab ЁЯПа Course home ЁЯМ┐ Branch on GitHub тЬПя╕П View source
ЁЯЦ╝я╕П рдЖрдХреГрддреА рдЖрдгрд┐ labThe drawing + lab рдкреВрд░реНрдг рдкрд╛рдирд╛рд╡рд░ рдЙрдШрдбрд╛ тЖЧOpen full page тЖЧ

ЁЯУЦ рдзрдбрд╛ 10 тАФ RAG: рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд open-book рдкрд░реАрдХреНрд╖рд╛

ЁЯУН рддреБрдореНрд╣реА рдЗрдереЗ рдЖрд╣рд╛рдд: 12 рдкреИрдХреА рдзрдбрд╛ 10 ┬╖ рдорд╛рдЧреЗ: lesson-09-hallucinations ┬╖ рдкреБрдвреЗ: lesson-11-agents


ЁЯУж рдпрд╛ рдмреНрд░рдБрдЪрдордзреНрдпреЗ рдХрд╛рдп рдЖрд╣реЗ

рдзрдбреЗ 01тАУ09, рдЖрдгрд┐ рдЙрджреНрдпреЛрдЧрд╛рдд рд╕рд░реНрд╡рд╛рдд рдЬрд╛рд╕реНрдд deploy рдЭрд╛рд▓реЗрд▓рд╛ AI рдирдореБрдирд╛: Retrieval-Augmented Generation тАФ рдзрдбрд╛ 04 рдЪрд╛ рдмреИрдардХ-рддрдХреНрддрд╛ рдЖрдгрд┐ рдзрдбрд╛ 08 рдЪреЗ desk, рдПрдХрддреНрд░ рдХрд╛рдо рдХрд░рддрд╛рдирд╛.

ЁЯзТ 5 рд╡рд░реНрд╖рд╛рдВрдЪреНрдпрд╛ рдореБрд▓рд╛рд▓рд╛ рд╕рдордЬрд╛рд╡рд▓реНрдпрд╛рд╕рд╛рд░рдЦреЗ

рдкрд░реАрдХреНрд╖реЗрдЪреНрдпрд╛ рджреЛрди рдкрджреНрдзрддреА:

рдЕрдбрдЪрдг: рддреБрдордЪреНрдпрд╛ рдХрдВрдкрдиреАрдЪреЗ handbook 4,000 рдкрд╛рдирд╛рдВрдЪреЗ рдЖрд╣реЗ; desk (рдзрдбрд╛ 08!) рд╡рд░ рдЪрд╛рд│реАрд╕ рдорд╛рд╡рддрд╛рдд. рд╕рдВрдкреВрд░реНрдг рдкреБрд╕реНрддрдХ desk рд╡рд░ рдареЗрд╡рддрд╛ рдпреЗрдд рдирд╛рд╣реА. рдЖрддрд╛ рдпреЗрддреЛ рдмреИрдардХ-рддрдХреНрддрд╛ рдЕрд╕рд▓реЗрд▓рд╛ рдЧреНрд░рдВрдердкрд╛рд▓ тАФ RAG:

  1. рдкрд░реАрдХреНрд╖реЗрдЪреНрдпрд╛ рд╣рдВрдЧрд╛рдорд╛рдЖрдзреА (рдПрдХрджрд╛рдЪ): рдкреНрд░рддреНрдпреЗрдХ document рдЪреЗ chunks рдХрд░рд╛ рдЖрдгрд┐ рдкреНрд░рддреНрдпреЗрдХрд╛рд▓рд╛ рдЕрд░реНрде-рдЬрд╛рдЧрд╛ рджреНрдпрд╛ тАФ рдПрдХ embedding (рдзрдбрд╛ 04). рддреНрдпрд╛ рдЬрд╛рдЧрд╛ рдПрдХрд╛ vector database рдордзреНрдпреЗ рд╕рд╛рдард╡рд╛.
  2. рдкреНрд░рд╢реНрди рдЖрд▓реНрдпрд╛рд╡рд░: рдкреНрд░рд╢реНрдирд╣реА embed рдХрд░рд╛ тЖТ рддреНрдпрд╛рдЪреНрдпрд╛ рд╕рд░реНрд╡рд╛рдд рдЬрд╡рд│ рдмрд╕рд▓реЗрд▓реЗ chunks рд╢реЛрдзрд╛ (рд╕рд╛рд░рдЦрд╛ рдЕрд░реНрде = рдмрд╣реБрдзрд╛ рд╕рдВрдмрдВрдзрд┐рдд тАФ рд╢реБрджреНрдз рдзрдбрд╛-04 рдЪреА рднреВрдорд┐рддреА, keywords рдЪреА рдЧрд░рдЬ рдирд╛рд╣реА).
  3. рдкреБрд╕реНрддрдХ рддреНрдпрд╛ рдкрд╛рдирд╛рдВрд╡рд░ рдЙрдШрдбрд╛: рд╡рд░рдЪреЗ chunks рдкреНрд░рд╢реНрдирд╛рд╢реЗрдЬрд╛рд░реА desk рд╡рд░ paste рдХрд░рд╛ тАФ "рдлрдХреНрдд рд╣реЗ рдЙрддрд╛рд░реЗ рд╡рд╛рдкрд░реВрди рдЙрддреНрддрд░ рджреНрдпрд╛, рдЖрдгрд┐ рдХреЛрдгрддрд╛ рдЙрддрд╛рд░рд╛ рддреЗ рд╣рд╡рд╛рд▓рд╛ рджреНрдпрд╛."
  4. рдореВрд▓ рдкрд╛рдирд╛рдВрд╡рд░реВрди рдЙрддреНрддрд░ рджреЗрддреЗ, рдкрд╛рд╡рддреНрдпрд╛рдВрд╕рд╣. ЁЯз╛

handbook рдордзреНрдпреЗ рдирд╡реЗ рдкрд╛рди? рдЖрдЬ рд░рд╛рддреНрд░реА re-index рдХрд░рд╛ тАФ рдЙрджреНрдпрд╛ рдореБрд▓рд╛рд▓рд╛ рддреЗ "рдорд╛рд╣реАрдд" рдЕрд╕рддреЗ. fine-tuning рд╢реА рддреБрд▓рдирд╛ рдХрд░рд╛ (рдзрдбрд╛ 07): рд╢рд┐рд╖реНрдЯрд╛рдЪрд╛рд░ рд╡рд░реНрдЧрд╛рдЪреЗ рдорд╣рд┐рдиреЗ FACTS рд╡рд┐рд╢реНрд╡рд╛рд╕рд╛рд░реНрд╣рдкрдгреЗ рдЬреЛрдбреВ рд╢рдХрдд рдирд╛рд╣реАрдд. рдмрджрд▓рдгрд╛рд░реЗ рдХрд┐рдВрд╡рд╛ рдмрд╛рд╣реЗрд░рдЪреЗ facts тЖТ RAG; рд╕реНрдерд┐рд░ рд╡рд╛рдЧрдгреВрдХ рдХрд┐рдВрд╡рд╛ style тЖТ fine-tuning. рд╣рд╛ рдвреЛрдмрд│ рдирд┐рдпрдо рдЖрд╣реЗ тАФ рдХрд╛рдпрджрд╛ рдирд╛рд╣реА.

ЁЯЧ║я╕П рдЖрдХреГрддреА

flowchart LR
    subgraph prep["1 before exam season - indexing, once"]
        docs["ЁЯУЪ 4,000-page handbook"]
        chunks["тЬВя╕П chunks"]
        vdb["ЁЯЧ║я╕П vector DB<br/>every chunk gets a meaning-seat"]
        docs --> chunks --> vdb
    end
    q["тЭУ question"]
    near["ЁЯУН nearest seats =<br/>most relevant chunks"]
    desk["ЁЯкС the desk:<br/>question + those chunks +<br/>'answer ONLY from these, cite'"]
    a["тЬЕ grounded answer<br/>with receipts ЁЯз╛"]
    q -->|"2 embed the question"| vdb
    vdb -->|"3"| near --> desk -->|"4"| a

тЭУ рдХрд╛рдп

ЁЯдФ рдХрд╛

"рддреБрдордЪреНрдпрд╛ docs рд╢реА chat рдХрд░рд╛ / рдЖрдордЪреНрдпрд╛ policies рдорд╛рд╣реАрдд рдЕрд╕рд▓реЗрд▓рд╛ support bot / рдЦрд░реЛрдЦрд░ рд╕рдордЬрдгрд╛рд░рд╛ search" тАФ рд╣реЗ RAG рдЖрд╣реЗ, рдЖрдгрд┐ рдмрд╣реБрддреЗрдХ рдХрдВрдкрдиреНрдпрд╛рдВрдЪреА рдкрд╣рд┐рд▓реА рдЦрд░реА AI рдирд┐рд░реНрдорд┐рддреА рд╣реАрдЪ рдЕрд╕рддреЗ. рдкреНрд░рддреНрдпреЗрдХ рдЯрдкреНрдкрд╛ рдЖрддрд╛ рддреБрдореНрд╣рд╛рд▓рд╛ рдореВрд▓рддрддреНрддреНрд╡рд╛рдВрдкрд╛рд╕реВрди рд╕рдордЬрддреЛ: рдЬрд╛рдЧрд╛ рдореНрд╣рдгрдЬреЗ рдзрдбрд╛ 04, desk рдореНрд╣рдгрдЬреЗ рдзрдбрд╛ 08, рдХрд╛ рдореНрд╣рдгрдЬреЗ рдзрдбрд╛ 09. stack рдордзреАрд▓ рдХрд╛рд╣реАрд╣реА рдЖрддрд╛ рдЬрд╛рджреВ рдирд╛рд╣реА.

ЁЯзк рдХрд░реВрди рдкрд╛рд╣рд╛ (рд╣рд╛рддрд╛рдиреЗ RAG тАФ retriever рддреБрдореНрд╣реА рдЖрд╣рд╛рдд)

1) Pick a long doc the model can't know (your team wiki, a recent PDF).
2) Ask about it WITHOUT pasting тЖТ watch closed-book guessing (L09).
3) Now find the 2 relevant paragraphs yourself, paste them + "answer
   ONLY from these excerpts, cite which one" тЖТ night and day.

рддреБрдореНрд╣реА рдЖрддреНрддрд╛рдЪ pipeline рд╣рд╛рддрд╛рдиреЗ рдЪрд╛рд▓рд╡рд▓реА тАФ step 3 embeddings рдиреЗ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдХрд░рдгреЗ рдореНрд╣рдгрдЬреЗрдЪ product. (рдЦрд░реЗ рдмрд╛рдВрдзрд╛: pgvector рдХрд┐рдВрд╡рд╛ Chroma рд╕рд╣ ~30 рдУрд│реА.)

тПня╕П рдкреБрдвреЗ

рд╡рд╛рдЪрдгреЗ рдореНрд╣рдгрдЬреЗ рдХрд░рдгреЗ рдирд╡реНрд╣реЗ. рд╡рд┐рджреНрдпрд╛рд░реНрдереНрдпрд╛рд▓рд╛ to-do рдпрд╛рджреА, hall pass рдЖрдгрд┐ рдЦрд░реА tools рджреНрдпрд╛ тАФ agents: рдХреГрддреА рдХрд░рдгрд╛рд░рд╛ loop.

git checkout lesson-11-agents

ЁЯУЦ Lesson 10 тАФ RAG: the open-book exam, automated

ЁЯУН You are here: Lesson 10 of 12 ┬╖ Previous: lesson-09-hallucinations ┬╖ Next: lesson-11-agents


ЁЯУж What's in this branch

Lessons 01тАУ09, plus the most-deployed AI pattern in industry: Retrieval-Augmented Generation тАФ lesson 04's seating chart and lesson 08's desk, working together.

ЁЯзТ Explain like I'm 5

Two exam styles:

Problem: your company's handbook is 4,000 pages; the desk (lesson 08!) holds forty. You can't put the whole book on the desk. Enter the librarian with the seating chart тАФ RAG:

  1. Before exam season (once): cut every document into chunks and give each a meaning-seat тАФ an embedding (lesson 04). Store the seats in a vector database.
  2. When a question arrives: embed the QUESTION too тЖТ find the chunks seated nearest to it (similar meaning = probably relevant тАФ pure lesson-04 geometry, no keywords needed).
  3. Open the book to those pages: paste the top chunks onto the desk next to the question тАФ "Using ONLY these excerpts, answer, and cite which excerpt."
  4. The kid answers from the pages, with receipts. ЁЯз╛

New handbook page? Re-index tonight тАФ the kid "knows" it tomorrow. Compare fine-tuning (lesson 07): months of etiquette classes can't reliably add FACTS. Changing or external facts тЖТ RAG; stable behaviour or style тЖТ fine-tuning. The rule of thumb тАФ not a law.

ЁЯЧ║я╕П Diagram

flowchart LR
    subgraph prep["1 before exam season - indexing, once"]
        docs["ЁЯУЪ 4,000-page handbook"]
        chunks["тЬВя╕П chunks"]
        vdb["ЁЯЧ║я╕П vector DB<br/>every chunk gets a meaning-seat"]
        docs --> chunks --> vdb
    end
    q["тЭУ question"]
    near["ЁЯУН nearest seats =<br/>most relevant chunks"]
    desk["ЁЯкС the desk:<br/>question + those chunks +<br/>'answer ONLY from these, cite'"]
    a["тЬЕ grounded answer<br/>with receipts ЁЯз╛"]
    q -->|"2 embed the question"| vdb
    vdb -->|"3"| near --> desk -->|"4"| a

тЭУ What

ЁЯдФ Why

"Chat with your docs / support bot that knows OUR policies / search that actually understands" тАФ that's RAG, and it's most companies' first real AI build. You now understand every stage from first principles: the seats are lesson 04, the desk is lesson 08, the why is lesson 09. Nothing in the stack is magic anymore.

ЁЯзк Try it (manual RAG тАФ you are the retriever)

1) Pick a long doc the model can't know (your team wiki, a recent PDF).
2) Ask about it WITHOUT pasting тЖТ watch closed-book guessing (L09).
3) Now find the 2 relevant paragraphs yourself, paste them + "answer
   ONLY from these excerpts, cite which one" тЖТ night and day.

You just ran the pipeline by hand тАФ automating step 3 with embeddings IS the product. (Build it for real: ~30 lines with pgvector or Chroma.)

тПня╕П Next

Reading is not doing. Give the student a to-do list, a hall pass and real tools тАФ agents: the loop that acts.

git checkout lesson-11-agents
тЖР PrevioushallucinationsNext тЖТagents

This page is the lesson's README from the lesson-10-rag branch, shown here so the whole School stays on one site. Code files open on GitHub at the same branch.