Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 20 additions & 5 deletions homework/SUBMISSION.md
Original file line number Diff line number Diff line change
@@ -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`
о данных и назначении репозитория.