From 7519d2db62b6560243cf95d01b7ec0d2d95d1a03 Mon Sep 17 00:00:00 2001 From: dianamarzz Date: Wed, 10 Jun 2026 23:49:51 +0300 Subject: [PATCH] Update SUBMISSION.md --- homework/SUBMISSION.md | 38 +++++++++++++++++++++++++++++++------- 1 file changed, 31 insertions(+), 7 deletions(-) diff --git a/homework/SUBMISSION.md b/homework/SUBMISSION.md index 0f6b274..641764a 100644 --- a/homework/SUBMISSION.md +++ b/homework/SUBMISSION.md @@ -1,15 +1,39 @@ -# Submission +# SUBMISSION.md -Заполните файл перед отправкой PR. +## Ссылка на репозиторий -## Ссылка на репозиторий с заданием - -- Repo URL: `<вставьте ссылку на ваш репозиторий>` +**Repo URL:** `https://github.com/dianamarzz/rag-stackoverflow` ## Автор -- ФИО / ник: `<укажите>` +**ФИО / ник:** Marzaganova Diana (dianamarzz) ## Комментарий -- Кратко: что реализовано, какие данные использованы, что улучшено. +**Данные:** датасет [stackoverflow/stacksample](https://www.kaggle.com/datasets/stackoverflow/stacksample) (Kaggle, CC BY-SA 3.0) — 1 000 Python-вопросов с принятыми ответами (фильтр: тег `python`, score ≥ 5). Вопрос и принятый ответ объединяются в одно текстовое поле и нарезаются на более 4 000 чанков. + +**Pipeline:** `prepare_datasets.py → ingest.py → build_index.py (chunking + TF-IDF + BM25) → retrieval → generation → Streamlit UI`. + +**Улучшения:** +- **BM25** (реализовано) — заменяет TF-IDF как основной метод retrieval; точнее ранжирует технические термины, учитывает длину документа. По умолчанию включён через `RETRIEVAL_MODE=bm25`. +- **Генерация через Claude API** (реализовано) — при наличии `ANTHROPIC_API_KEY` генератор формирует связный ответ строго по найденному контексту вместо сырой конкатенации чанков. + +## Demo-вопросы + +| № | Вопрос | Результат | +|---|---|---| +| 1 | How do I check if a list is empty in Python? | ✅ Ответ с источниками | +| 2 | How to sort a dictionary by value in Python? | ✅ Ответ с источниками | +| 3 | What is the difference between @classmethod and @staticmethod? | ✅ Ответ с источниками | +| N | What is the best recipe for a chocolate cake? | ❌ Отказ — нет релевантных данных | + +## Запуск + +```bash +git clone https://github.com/dianamarzz/rag-stackoverflow +cd rag-stackoverflow +uv sync +uv run python scripts/build_index.py +uv run streamlit run app/main.py +``` +