Добавлено техническое задание для Telegram бота по изучению языков
- Описание основных функций и архитектуры - 5 способов добавления слов в словарь - Структура базы данных - Этапы разработки 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
296
TZ.md
Normal file
296
TZ.md
Normal 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.)
|
||||
- Социальные функции:
|
||||
- Обмен словарными подборками с другими пользователями
|
||||
- Общие челленджи
|
||||
- Рейтинг по регионам
|
||||
Reference in New Issue
Block a user