5.0 KiB
Бизнес-требования: Семантический поиск по данным Telegram (Сноубайк Россия)
1. Проблема
У нас есть 155 000 сообщений из Telegram-группы «Сноубайк Россия» (12 топиков). Сейчас поиск работает только по точным словам внутри Telegram — найти нужный ответ среди тысяч сообщений практически невозможно.
Пример: чтобы узнать, какое масло рекомендуют для Polaris 850, нужно:
- Знать точную формулировку
- Листать сотни сообщений вручную
- Объединять ответы из разных обсуждений
2. Что хотим получить
Систему, которая отвечает на вопросы по базе знаний, а не просто ищет сообщения.
Примеры запросов: • «Какое масло рекомендуют для Polaris 850?» • «Где лучше кататься зимой в Подмосковье?» • «Какие гусеницы подходят на Timber S800?» • «Кто продавал запчасти для Lynx в Китае?» • «Какие проблемы бывают с Yamaha Mountain Max?»
3. Как должен работать
- Пользователь задаёт вопрос на русском языке
- Система находит 10–20 самых релевантных сообщений (по смыслу, не по точным словам)
- LLM формирует ответ на основе найденных сообщений
- В ответе указаны источники: дата, автор, топик
- Если информации недостаточно — система честно говорит об этом
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: Множественные источники (другие каналы) — когда понадобится