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>
This commit is contained in:
@@ -156,3 +156,25 @@ class UserService:
|
||||
if user:
|
||||
user.translation_language = language
|
||||
await session.commit()
|
||||
|
||||
@staticmethod
|
||||
async def update_user_tasks_count(session: AsyncSession, user_id: int, count: int):
|
||||
"""
|
||||
Обновить количество заданий пользователя
|
||||
|
||||
Args:
|
||||
session: Сессия базы данных
|
||||
user_id: ID пользователя
|
||||
count: Количество заданий (5-15)
|
||||
"""
|
||||
# Валидация диапазона
|
||||
count = max(5, min(15, count))
|
||||
|
||||
result = await session.execute(
|
||||
select(User).where(User.id == user_id)
|
||||
)
|
||||
user = result.scalar_one_or_none()
|
||||
|
||||
if user:
|
||||
user.tasks_count = count
|
||||
await session.commit()
|
||||
|
||||
Reference in New Issue
Block a user