Добавлено техническое задание для Telegram бота по изучению языков

- Описание основных функций и архитектуры
- 5 способов добавления слов в словарь
- Структура базы данных
- Этапы разработки

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-12-04 10:51:15 +03:00
parent bda8d5edf4
commit df9f9f3d4d

296
TZ.md Normal file
View File

@@ -0,0 +1,296 @@
# Техническое задание: Telegram бот для изучения языков
## 1. Общее описание проекта
Telegram бот для изучения иностранных языков с использованием ИИ, персонализированным подходом и ежедневными заданиями.
**Версия 1.0**: Поддержка английского языка
**Будущие версии**: Расширение на другие языки
---
## 2. Основные функции
### 2.1 Управление словарным запасом
#### Способы добавления слов:
**1. Ручное добавление (по инициативе пользователя)**
- Команда `/add [слово]` или `/add [фраза]`
- Отправка слова в свободной форме (бот распознает и предложит добавить)
- Пользователь может добавить собственный перевод и заметки
**2. Автоматические предложения от бота**
- Бот ежедневно предлагает N новых слов на основе уровня пользователя
- Тематические подборки по запросу (команда `/words [тема]`)
- Пример: `/words travel` → 10 слов про путешествия
- Популярные темы: работа, еда, спорт, технологии, эмоции и т.д.
- Слова из частотных списков по уровням (A1-C2)
- "Слово дня" с интересными фактами
**3. Из контекста общения с ИИ**
- Во время диалоговой практики ИИ автоматически определяет сложные слова
- Бот предлагает: "В этом сообщении встретилось слово 'resilient' - хотите добавить в словарь?"
- Пользователь может одним кликом добавить слово
**4. Импорт из текста**
- Пользователь отправляет текст, статью или ссылку
- ИИ анализирует текст и выделяет полезные слова по уровню пользователя
- Показывает список слов с переводами
- Пользователь выбирает, какие добавить (через inline-кнопки)
**5. Из ошибок и сложных заданий**
- Если пользователь ошибается в задании, слово автоматически помечается для повторения
- Бот предлагает добавить синонимы/антонимы к уже изученным словам
- Слова, которые вызывают трудности, автоматически появляются чаще в заданиях
#### Функции управления словарем:
- Автоматическое сохранение слов с переводом, транскрипцией и примерами
- Категоризация слов по темам (автоматическая и ручная)
- Отметка уровня сложности слов (A1-C2)
- История изучения каждого слова (дата добавления, количество повторений, процент правильных ответов)
- Удаление и редактирование слов
- Поиск по словарю
- Экспорт словаря (CSV, Anki формат)
### 2.2 Ежедневные задания
- Автоматическая генерация заданий каждый день
- Типы заданий:
- Перевод слов (EN→RU и RU→EN)
- Составление предложений с новыми словами
- Заполнение пропусков в предложениях
- Аудирование (опционально для будущих версий)
- Множественный выбор
- Адаптивная сложность на основе прогресса пользователя
- Настройка времени отправки заданий
### 2.3 Проверка заданий с использованием ИИ
- Автоматическая проверка ответов через ИИ (GPT/Claude/другие)
- Оценка правильности с объяснением ошибок
- Учет контекста и вариативности ответов
- Рекомендации по улучшению
### 2.4 Интеграция с ИИ
- Перевод слов и фраз
- Генерация примеров использования
- Создание персонализированных заданий
- Объяснение грамматических правил
- Диалоговый режим для практики общения
### 2.5 Статистика и прогресс
- Количество изученных слов
- Процент правильных ответов
- График прогресса
- Streak (дни подряд выполнения заданий)
- Уровень владения языком
---
## 3. Пользовательские сценарии
### 3.1 Первый запуск
1. Пользователь запускает бота командой `/start`
2. Бот приветствует и предлагает выбрать язык интерфейса
3. Бот проводит короткий тест для определения уровня
4. Пользователь настраивает время ежедневных заданий
5. Бот предлагает добавить первые слова
### 3.2 Добавление слов (ручное)
1. Пользователь отправляет `/add elephant` или просто `elephant`
2. Бот через ИИ получает перевод, транскрипцию, примеры использования
3. Показывает карточку слова с кнопками "Добавить" / "Редактировать" / "Отмена"
4. Пользователь подтверждает или редактирует информацию
5. Слово сохраняется в персональный словарь
### 3.2.1 Тематическая подборка
1. Пользователь отправляет `/words travel`
2. Бот генерирует 10 релевантных слов по теме с учетом уровня пользователя
3. Показывает список слов с переводами
4. Пользователь выбирает слова через inline-кнопки (✅/❌)
5. Выбранные слова добавляются в словарь
### 3.2.2 Импорт из текста
1. Пользователь отправляет текст или статью боту
2. Бот анализирует текст и находит 5-15 новых слов подходящего уровня
3. Показывает слова с переводами и контекстом из текста
4. Пользователь выбирает слова для добавления
5. Слова сохраняются с примерами из исходного текста
### 3.2.3 Добавление из диалога
1. Пользователь общается с ботом на английском (`/practice`)
2. Использует незнакомое слово или ИИ использует сложное слово
3. Бот предлагает: "💡 Слово 'resilient' - добавить в словарь?"
4. Пользователь нажимает кнопку "Добавить"
5. Слово сохраняется с контекстом из диалога
### 3.3 Выполнение ежедневного задания
1. Бот отправляет задание в настроенное время
2. Пользователь выполняет задания (5-10 вопросов)
3. ИИ проверяет ответы и дает обратную связь
4. Результаты сохраняются в статистику
### 3.4 Свободная практика
1. Пользователь инициирует диалог с ботом
2. Общение на английском языке с ИИ
3. ИИ исправляет ошибки и дает советы
4. Новые слова могут автоматически добавляться в словарь
---
## 4. Команды бота
| Команда | Описание |
|---------|----------|
| `/start` | Запуск/перезапуск бота |
| `/add [слово]` | Добавить слово в словарь |
| `/words [тема]` | Получить подборку слов по теме |
| `/vocabulary` | Просмотр словаря |
| `/task` | Получить задание сейчас |
| `/stats` | Статистика и прогресс |
| `/settings` | Настройки (время заданий, уровень сложности) |
| `/help` | Справка по командам |
| `/practice` | Свободная практика с ИИ |
| `/import` | Импортировать слова из текста |
---
## 5. Технические требования
### 5.1 Архитектура
- **Фреймворк**: python-telegram-bot или aiogram
- **База данных**: PostgreSQL или MongoDB для хранения:
- Пользователи
- Словари пользователей
- История заданий и ответов
- Статистика
- **ИИ API**: OpenAI GPT-4, Claude, или Google Gemini
- **Кэширование**: Redis для сессий и временных данных
- **Планировщик**: Celery или APScheduler для ежедневных заданий
### 5.2 Структура базы данных
#### Таблица: Users
```
- id (PK)
- telegram_id (unique)
- username
- language_interface (ru/en)
- learning_language (en)
- level (A1/A2/B1/B2/C1/C2)
- timezone
- daily_task_time
- streak_days
- created_at
- last_active
```
#### Таблица: Vocabulary
```
- id (PK)
- user_id (FK)
- word_original
- word_translation
- transcription
- examples (JSON)
- category
- difficulty_level
- source (manual/suggested/context/import/error)
- times_reviewed
- correct_answers
- last_reviewed
- created_at
- notes (user custom notes)
```
#### Таблица: Tasks
```
- id (PK)
- user_id (FK)
- task_type
- content (JSON)
- correct_answer
- user_answer
- is_correct
- ai_feedback
- completed_at
- created_at
```
### 5.3 API интеграция
- **Telegram Bot API**: Основное взаимодействие с пользователем
- **OpenAI/Claude API**: Генерация и проверка заданий
- **Dictionary API** (опционально): Дополнительные данные о словах
### 5.4 Безопасность
- Шифрование API ключей
- Валидация пользовательского ввода
- Rate limiting для защиты от спама
- Резервное копирование базы данных
---
## 6. Этапы разработки
### Этап 1: MVP (Минимально жизнеспособный продукт)
- [ ] Настройка Telegram бота
- [ ] Подключение базы данных
- [ ] Базовые команды (/start, /add, /vocabulary)
- [ ] Интеграция с ИИ для перевода слов
- [ ] Простое ежедневное задание (перевод 5 слов)
- [ ] Автоматическая проверка ответов
### Этап 2: Расширенный функционал
- [ ] Различные типы заданий
- [ ] Тематические подборки слов (`/words [тема]`)
- [ ] Импорт слов из текста (`/import`)
- [ ] Автоматические предложения слов от бота
- [ ] Добавление слов из контекста диалога
- [ ] Статистика и прогресс
- [ ] Адаптивная сложность
- [ ] Диалоговый режим практики
- [ ] Настройки пользователя
### Этап 3: Оптимизация и масштабирование
- [ ] Улучшение алгоритмов повторения (spaced repetition)
- [ ] "Слово дня" с интересными фактами
- [ ] Экспорт словаря в форматы CSV и Anki
- [ ] Геймификация (достижения, лидерборд)
- [ ] Аудио произношение слов
- [ ] Поддержка других языков
- [ ] Мобильное веб-приложение (Telegram Mini App)
---
## 7. Метрики успеха
- **Вовлеченность**: DAU (Daily Active Users), streak пользователей
- **Эффективность**: Процент правильных ответов, рост словарного запаса
- **Удержание**: Retention rate на 7, 30, 90 дней
- **Удовлетворенность**: NPS, обратная связь пользователей
---
## 8. Риски и ограничения
- **Стоимость ИИ API**: Необходимо оптимизировать количество запросов
- **Зависимость от внешних сервисов**: Telegram API, ИИ API
- **Качество проверки**: ИИ может ошибаться в оценке сложных ответов
- **Мотивация пользователей**: Требуется геймификация для удержания
---
## 9. Будущие возможности
- Поддержка других языков (испанский, немецкий, французский, китайский)
- Групповые задания и соревнования
- Интеграция с внешними ресурсами:
- Импорт слов из YouTube субтитров по ссылке
- Анализ статей и веб-страниц
- Подкасты и аудиокниги
- Голосовые сообщения для практики произношения
- Персональный AI-преподаватель с долгосрочной памятью о прогрессе
- Подготовка к экзаменам (IELTS, TOEFL, etc.)
- Социальные функции:
- Обмен словарными подборками с другими пользователями
- Общие челленджи
- Рейтинг по регионам