O'QITUVCHI REJASI
Bu bob talabalar uchun emas — siz uchun. Har bir bobni qanday o'tish, nimani jonli ko'rsatish, qayerda to'xtash.
Umumiy tuzilish
| Blok | Boblar | Soat | Yakuniy natija |
|---|---|---|---|
| 1. Poydevor | 0–6 | ~4 | Baza va jadvallar TAYYOR |
| 2. Ma'lumot | 7–10 | ~4 | Bazada VEKTORLAR bor |
| 3. RAG yadrosi | 11–14 | ~5 | Quvur ISHLAYDI |
| 4. Ilova | 15–18 | ~4 | Brauzerda CHAT |
| 5. Sifat | 19–21 | ~3 | O'lchash va yaxshilash |
Jami ~20 soat. Har dars 2 soat bo'lsa — 10 dars.
Uchta G'ALABA — darsni shu nuqtalarga quring
Talaba uzoq vaqt natija ko'rmasa — qiziqishini yo'qotadi. Kitobda ataylab uchta "ishladi!" lahzasi bor:
| Bob | Nima ko'rinadi | Talaba nima his qiladi |
|---|---|---|
| 5 | \dt rag.* — jadvallar paydo bo'ldi |
"Men baza qurdim" |
| 9 | SELECT embedding_local — SONLAR |
"Ma'no — bu raqamlar ekan" |
| 14 | 5 bosqich, vaqt taqsimoti | "RAG sehr emas ekan" |
Bu uchta darsni O'TKAZIB YUBORMANG. Ular kursning ustunlari.
Bob-bob reja
0-bob — Tayyorgarlik (darsdan OLDIN)
Bu bobni darsda o'tmang. Talabalarga oldindan yuboring.
Sinfda hamma o'rnatishga urinsa — 2 soat yo'qoladi va yarmi baribir ishlamaydi.
Siz qiladigan ish: dars boshida bitta buyruq bilan tekshiring:
python --version && psql -U postgres -c "SELECT version();" && curl -s http://localhost:11434/api/tags
Ishlamaganlar Docker (0-bobdagi D yo'li) bilan davom etsin.
1–4-boblar — Skelet (2 soat)
Ko'p gapirmang, ko'p yozdiring. Bu boblar mexanik.
Asosiy savol: "nega app/ va scraper/ alohida?"
Javob: ular TURLI VAQTDA ishlaydi. Buni ayting, keyin
1-bobdagi diagrammani chizing.
4-bobda to'xtang: Vector(1024) — bu 1024 qayerdan keldi?
Modeldan. Modelni almashtirsangiz — o'zgaradi. Shuni tushunmasa,
9-bobda "expected 768 dimensions" xatosida qotib qoladi.
5–6-boblar — BIRINCHI G'ALABA (2 soat)
python bootstrap.py
Keyin darhol psql ochib ko'rsating:
\c rag_demo \dt rag.* SELECT title, source_type FROM rag.documents;
Bu lahzani cho'zing. Talaba o'zi qurgan bazani ko'rsin.
6-bobda SQL faylni ochib, bootstrap.py bilan solishtiring.
"ORM orqasida shu turadi" deb ayting.
7–8-boblar — Chunking (2 soat)
Eng ko'p vaqt shu yerga ketsin. Chunking — RAG ning eng noto'g'ri tushuniladigan qismi.
Overlap ni jonli ko'rsating:
for ov in (0, 50, 200): c = chunk_text(matn, title="Sinov", max_tokens=400, overlap=ov) print(ov, len(c))
Keyin so'rang: "nega overlap=50 da chunk KO'PROQ?" Javobni ular topsin — takrorlanish joy egallaydi.
9–10-boblar — IKKINCHI G'ALABA (2 soat)
Embedding yaratilgach:
SELECT left(embedding_local::text, 80) FROM rag.chunks LIMIT 1;
Ekranda 1024 ta son. "Mana ma'no shunday ko'rinadi."
Keyin cosine matematikasi:
SELECT 1 - ('[1,0,0]'::vector <=> '[1,0,0]'::vector), 1 - ('[1,0,0]'::vector <=> '[0,1,0]'::vector);
1 va 0. Butun RAG shu ikki raqamda.
11–12-boblar — Qidiruv va reranking (2 soat)
12-bob IXTIYORIY ekanini ayting. Ishlab turgan WDE Nihol botida reranker YO'Q.
Bu muhim saboq: har bir texnologiya kerak emas. Avval o'lchang, keyin qo'shing.
Vaqt kam bo'lsa — 12-bobni tashlab, 13-bobga o'ting.
13–14-boblar — UCHINCHI G'ALABA (2 soat)
python demo_pipeline.py "Nihol tarifi qancha turadi?"
4-bosqichda to'xtang. Promptni to'liq o'qing.
"RAG shu — kontekst + savol. Boshqa hech narsa yo'q."
Vaqt taqsimotini ko'rsating: qidiruv 9 ms, LLM 6 sekund. So'rang: "tezlashtirish uchun qayerga qaraysiz?"
15–18-boblar — Web ilova (4 soat)
Bu boblar tayyor kod. Yozdirmang — o'qing va tushuntiring.
Eng muhim joy — 16-bobdagi shablon/route kelishuvi. Uchta 500 xato aynan shundan chiqqan edi. Talabaga ayting: "kod to'g'ri ko'rinadi, lekin sahifani OCHMASANGIZ bilmaysiz."
python tekshir_sahifalar.py
19–21-boblar — Sifat (3 soat)
19-bob: tarix XOTIRADA — server o'chsa yo'qoladi. "Demo vs production" farqi.
20-bob eng qimmatli. Gold set tayyorlang (30 savol) va o'lchang. Busiz hamma narsa taxmin.
21-bob: keyingi qadamlar.
Har darsda takrorlanadigan uchta savol
Talabalarni shu savollarga o'rgating:
- "Bu raqam qayerdan keldi?" (1024, 2000, 0.3, 50)
- "Buni qanday TEKSHIRAMAN?" (SQL, print, tekshir_*.py)
- "Ishlamasa qanday BILAMAN?" (xato xabari, bo'sh natija)
Tekshiruv skriptlari — darsda ishlating
python kitob/build.py # kitob kodlari toza python kitob/tekshir_nomlar.py # kitob kod bilan mos python tekshir_sahifalar.py # 9 sahifa ochiladi python tekshir_prompt.py 5 # javob to'g'ri tilda
Bu skriptlarni talabaga ko'rsating. Ular "men tekshirdim" degan gapning ma'nosini o'rgatadi.
Eng ko'p beriladigan savollar
"Nega Django emas, FastAPI?"
Bu loyihada async va avtomatik API hujjat kerak. Django ham
bo'ladi — mantiq (services/) o'zgarmaydi, faqat routes/.
"GPU yo'q, nima qilaman?"
10-bob: BACKEND_MODE=cloud. Kod bir xil.
"Javob noto'g'ri chiqdi, nima qilay?" 20-bobdagi tartib: avval retrieval o'lchang (Recall/MRR), keyingina promptga teging.
"Nechta chunk kerak?" Bu savolga javob yo'q — O'LCHANADI. Gold set tayyorlang.
Bu bobni bepul o'qidingiz.
Kitob o'rgatadi, lekin sizning kodingiz nega ishlamaganini ayta olmaydi. Kursda uy vazifangiz tekshiriladi.