# Бизнес-требования: Семантический поиск по данным Telegram (Сноубайк Россия)

## 1. Проблема

У нас есть 155 000 сообщений из Telegram-группы «Сноубайк Россия» (12 топиков). Сейчас поиск работает только по точным словам внутри Telegram — найти нужный ответ среди тысяч сообщений практически невозможно.

**Пример:** чтобы узнать, какое масло рекомендуют для Polaris 850, нужно:
- Знать точную формулировку
- Листать сотни сообщений вручную
- Объединять ответы из разных обсуждений

---

## 2. Что хотим получить

Систему, которая **отвечает на вопросы** по базе знаний, а не просто ищет сообщения.

**Примеры запросов:**
• «Какое масло рекомендуют для Polaris 850?»
• «Где лучше кататься зимой в Подмосковье?»
• «Какие гусеницы подходят на Timber S800?»
• «Кто продавал запчасти для Lynx в Китае?»
• «Какие проблемы бывают с Yamaha Mountain Max?»

---

## 3. Как должен работать

1. Пользователь задаёт вопрос на русском языке
2. Система находит 10–20 самых релевантных сообщений (по смыслу, не по точным словам)
3. LLM формирует ответ на основе найденных сообщений
4. В ответе указаны источники: дата, автор, топик
5. Если информации недостаточно — система честно говорит об этом

---

## 4. Ключевые требования

### 4.1 Поиск
• Понимать смысл запроса (не только точные слова)
• Допускать опечатки и синонимы
• Искать по всем 12 топикам одновременно
• Фильтровать по конкретному топику (опционально)
• Сортировать по релевантности или дате

### 4.2 Ответы
• На русском языке
• Краткие и по существу
• С указанием источников (кто, когда, в каком топике)
• Агрегированные (если 5 человек рекомендуют одно масло — обобщить)

### 4.3 Данные
• Работать с сырыми данными Telegram Collector
• Обновляться ежедневно после загрузки новых сообщений
• Не ломать существующую систему сбора данных

### 4.4 Скорость
• Ответ на запрос: до 3 секунд
• Индексация новых сообщений: до 1 минуты в день

### 4.5 Стоимость
• LLM: ~$0.005 за запрос (приемлемо)
• Embeddings: бесплатно (локальная модель)
• Хранение: ~1.5 ГБ дополнительно (приемлемо)

---

## 5. Что НЕ входит в эту задачу

• Голосовой интерфейс (добавим позже)
• Поиск по медиа-файлам (фото, видео)
• Учёт пользователей и авторизация
• Мобильное приложение
• Перевод на другие языки

---

## 6. Пользователи

• **Слава** — основной пользователь
• Потенциально: друзья, участники группы (позже, через веб-интерфейс)

---

## 7. Критерии приёмки

✅ Ответ на вопрос «какое масло для Polaris 850» — содержит конкретные рекомендации с источниками
✅ Ответ на вопрос «где кататься в Подмосковье» — содержит локации из чата
✅ Система честно говорит «не знаю», когда информации нет
✅ Ежедневно обновляется после cron-загрузки
✅ Работает без интернета (embeddings), кроме LLM

---

## 8. Приоритет и этапы

**Этап 1 (MVP):** Индексация + поиск + LLM ответ — **сейчас**
**Этап 2:** Веб-интерфейс (Flask UI) — **позже**
**Этап 3:** Голосовой запрос — **позже**
**Этап 4:** Множественные источники (другие каналы) — **когда понадобится**
