7 Commits

Author SHA1 Message Date
69c651c031 fix: передача user_id во все вызовы AI сервиса
Исправлено: при выполнении задач использовалась глобальная модель
вместо привязанной к пользователю.

Обновлены все handlers и services для передачи user_id в AI методы.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-08 16:56:31 +03:00
16a7df0343 feat: персональные AI модели, оптимизация задач, фильтрация словаря
- Добавлена поддержка персональных AI моделей для каждого пользователя
- Оптимизация создания заданий: батч-запрос к AI вместо N запросов
- Фильтрация слов по языку изучения (source_lang) в словаре
- Удалены неиспользуемые колонки examples и category из vocabulary
- Миграции для ai_model_id и удаления колонок

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-08 16:43:08 +03:00
eb666ec9bc feat: мульти-провайдер AI, выбор типов заданий, настройка количества
- Добавлена поддержка нескольких AI провайдеров (OpenAI, Google Gemini)
- Добавлена админ-панель (/admin) для переключения AI моделей
- Добавлен AIModelService для управления моделями в БД
- Добавлен выбор типа заданий (микс, перевод слов, подстановка, перевод предложений)
- Добавлена настройка количества заданий (5-15)
- ai_service динамически выбирает провайдера на основе активной модели
- Обработка ограничений моделей (temperature, response_format)
- Очистка markdown обёртки из ответов Gemini

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-08 15:16:24 +03:00
d937b37a3b feat: multiple translations with context, improved task examples
- Add WordTranslation model for storing multiple translations per word
- AI generates translations with example sentences and their translations
- Show example usage after answering tasks (learning + interface language)
- Save translations to word_translations table when adding words from tasks
- Improve word exclusion in new_words mode (stronger prompt + client filtering)
- Add migration for word_translations table

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-06 21:29:41 +03:00
472771229f feat(i18n): localize start/help/menu, practice, words, import, reminder, vocabulary, tasks/stats for RU/EN/JA; add JSON-based i18n helper\n\nfeat(lang): support learning/translation languages across AI flows; hide translations with buttons; store examples per lang\n\nfeat(vocab): add source_lang and translation_lang to Vocabulary, unique constraint (user_id, source_lang, word_original); filter /vocabulary by user.learning_language\n\nchore(migrations): add Alembic setup + migration to add vocab lang columns; env.py reads app settings and supports asyncpg URLs\n\nfix(words/import): pass learning_lang + translation_lang everywhere; fix menu themes generation\n\nfeat(settings): add learning language selector; update main menu on language change 2025-12-04 19:40:01 +03:00
44f4f61fce Реализованы настройки пользователя и новые типы заданий
Создано:
- bot/handlers/settings.py - обработчик команды /settings

Реализовано:
 /settings - настройки пользователя
  - Выбор уровня английского (A1-C2)
  - Выбор языка интерфейса (RU/EN)
  - Интерактивные inline-кнопки

 Новый тип заданий - заполнение пропусков
  - AI генерирует предложение с пропуском
  - Показывает перевод для контекста
  - Проверка ответа через AI

 Смешанные задания
  - Случайное чередование типов (переводы + fill-in)
  - Более разнообразная практика

Изменено:
- services/ai_service.py - метод generate_fill_in_sentence()
- services/task_service.py - метод generate_mixed_tasks()
- services/user_service.py - методы обновления настроек
- bot/handlers/tasks.py - использование смешанных заданий
- main.py - регистрация роутера настроек

Теперь бот предлагает:
- Перевод EN→RU
- Перевод RU→EN
- Заполнение пропусков в предложениях

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04 14:46:30 +03:00
dfbd2f53fd Реализованы задания и статистика (/task, /stats)
Создано:
- services/task_service.py - сервис для работы с заданиями
- bot/handlers/tasks.py - обработчики команд /task и /stats

Реализовано:
 /task - генерация заданий на перевод слов
  - 5 случайных слов из словаря пользователя
  - Два направления: EN→RU и RU→EN
  - Показ транскрипции
  - Проверка ответов через AI
  - Детальная обратная связь
  - Сохранение результатов в БД

 /stats - статистика обучения
  - Количество слов в словаре
  - Количество изученных слов
  - Выполненные задания
  - Процент правильных ответов

Функции:
- Умные повторения (слова с меньшим количеством повторений появляются чаще)
- Обновление статистики слов после каждого задания
- Прогресс-бар выполнения заданий
- Эмодзи-реакции на результат

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04 14:30:06 +03:00