From 06784fbb980e49df13feda39ec224d6f96641096 Mon Sep 17 00:00:00 2001 From: Gleb Alektorov <56104712+Moonkato@users.noreply.github.com> Date: Thu, 11 Jun 2026 03:37:50 +0300 Subject: [PATCH] Update SUBMISSION.md --- homework/SUBMISSION.md | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/homework/SUBMISSION.md b/homework/SUBMISSION.md index 0f6b274..4fdaca5 100644 --- a/homework/SUBMISSION.md +++ b/homework/SUBMISSION.md @@ -1,15 +1,30 @@ # Submission -Заполните файл перед отправкой PR. - ## Ссылка на репозиторий с заданием -- Repo URL: `<вставьте ссылку на ваш репозиторий>` +- Repo URL: `https://github.com/Moonkato/rag-tutorial` ## Автор -- ФИО / ник: `<укажите>` +- ФИО / ник: `Alektorov Gleb, БАСБ 251` ## Комментарий -- Кратко: что реализовано, какие данные использованы, что улучшено. +Реализован полный учебный RAG-pipeline по образцу MaratNotes/rag-tutorial на своих данных: + +- **Данные:** Kaggle — [Corpus of Russian news articles from Lenta.Ru](https://www.kaggle.com/datasets/yutkin/corpus-of-russian-news-articles-from-lenta). + Скрипт `scripts/prepare_datasets.py` делает детерминированную стратифицированную + выборку: **1200 статей** (8 рубрик × 150, фильтр длины 300–4000 символов) → + `data/raw/datasets.json` (критерий «отлично»: 1000+ записей). +- **Pipeline:** prepare → ingest → chunking (400/50) → TF-IDF индекс → retrieval + (cosine, top-3) → demo-ответ с источниками (`doc_id`, заголовок, score) → Streamlit UI. +- **Demo:** 3 вопроса с ответами (экономика / спорт / космос) + 1 negative с отказом + («Как приготовить тирамису с маскарпоне?»); проверка — `scripts/check_generator.py`. +- **Тесты:** 15 green (`uv run pytest tests/ -v`): chunking (5), retrieval/generator (7), + собственные тесты подготовки корпуса из CSV (3). +- **Улучшения реализованы (4):** (1) Streamlit UI — слайдер порога score и подсветка + совпавших слов запроса; (2) русские стоп-слова в TF-IDF (починили ложный ответ на + negative-вопрос); (3) markdown-aware рекурсивный чанкер; (4) HTML-нормализация через + markdownify на этапе ingest. План следующего шага (embeddings) — в `homework/IMPROVEMENTS.md`. +- **Документация:** `doc/` (5 документов планирования согласованы с кодом) + `doc/DATA.md` + о данных и назначении репозитория.