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
12 changes: 9 additions & 3 deletions homework/SUBMISSION.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,18 @@

## Ссылка на репозиторий с заданием

- Repo URL: `<вставьте ссылку на ваш репозиторий>`
- Repo URL: `(https://github.com/ggiiiooooo/rag-newsgroups.git)`

## Автор

- ФИО / ник: `<укажите>`
- ФИО / ник: `Кинцурашвили Георгий Теймуразович`

## Комментарий

- Кратко: что реализовано, какие данные использованы, что улучшено.
Что делает: система отвечает на вопросы по корпусу тематических текстов. Пользователь вводит запрос — RAG находит наиболее релевантные фрагменты в базе по семантической близости слов (TF-IDF + cosine), показывает их с источниками и собирает ответ только из найденного. Если в базе нет ничего подходящего — отвечает отказом, а не выдумывает. Главная идея — ответ всегда подкреплён источниками (doc_id, score), видно, откуда взята каждая часть.

Реализовано: полный RAG-pipeline без внешней LLM — prepare_datasets → ingest → chunking → index → retrieval (cosine top-k) → demo-answer → Streamlit UI. Ответ строится только из найденных фрагментов; при score ниже порога 0.22 — честный отказ. 17 тестов зелёные.

Данные: 20 Newsgroups (через scikit-learn) — 1200 постов (60 × 20 тематических групп), после нарезки 3879 чанков. Индексируется текст постов; группа/doc_id/name — метаданные. Оба объёма превышают 1000.

Улучшено: (1) оценка качества — scripts/eval_retrieval.py, hit@5 = 1.00, MRR = 0.95; (2) UI — ползунок порога min_score, выбор top-k, подсветка слов запроса; (3) TF-IDF tuning — english stop-words, биграммы, sublinear_tf.