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:
@@ -115,6 +115,11 @@
|
||||
"choose_mode": "🧠 <b>Choose task mode:</b>",
|
||||
"mode_vocabulary": "📚 Words from vocabulary",
|
||||
"mode_new_words": "✨ New words",
|
||||
"choose_type": "📋 <b>Choose task type:</b>",
|
||||
"type_mix": "🎲 Mix (all types)",
|
||||
"type_word_translate": "📝 Word translation",
|
||||
"type_fill_blank": "✏️ Fill in the blank",
|
||||
"type_sentence_translate": "📖 Sentence translation",
|
||||
"generating_new": "🔄 Generating new words...",
|
||||
"generate_failed": "❌ Failed to generate words. Try again later.",
|
||||
"translate_to": "Translate to {lang_name}",
|
||||
@@ -236,6 +241,10 @@
|
||||
"translation_title": "💬 <b>Select translation language:</b>\n\n",
|
||||
"translation_desc": "Words will be translated to this language.\nThis can differ from interface language.",
|
||||
"translation_changed": "✅ Translation language: <b>{lang_name}</b>",
|
||||
"tasks_count_prefix": "🔢 Tasks: ",
|
||||
"tasks_count_title": "🔢 <b>Number of tasks:</b>\n\n",
|
||||
"tasks_count_desc": "How many tasks to generate at once.\nMinimum 5, maximum 15.",
|
||||
"tasks_count_changed": "✅ Number of tasks: <b>{count}</b>",
|
||||
"menu_updated": "Main menu updated ⤵️",
|
||||
"lang_name": {
|
||||
"ru": "🇷🇺 Русский",
|
||||
|
||||
@@ -107,6 +107,11 @@
|
||||
"choose_mode": "🧠 <b>課題モードを選択:</b>",
|
||||
"mode_vocabulary": "📚 単語帳から",
|
||||
"mode_new_words": "✨ 新しい単語",
|
||||
"choose_type": "📋 <b>課題の種類を選択:</b>",
|
||||
"type_mix": "🎲 ミックス(全種類)",
|
||||
"type_word_translate": "📝 単語翻訳",
|
||||
"type_fill_blank": "✏️ 穴埋め",
|
||||
"type_sentence_translate": "📖 文翻訳",
|
||||
"generating_new": "🔄 新しい単語を生成中...",
|
||||
"generate_failed": "❌ 単語の生成に失敗しました。後でもう一度お試しください。",
|
||||
"translate_to": "{lang_name}に翻訳",
|
||||
@@ -228,6 +233,10 @@
|
||||
"translation_title": "💬 <b>翻訳言語を選択:</b>\n\n",
|
||||
"translation_desc": "単語はこの言語に翻訳されます。\nインターフェース言語と異なる設定が可能です。",
|
||||
"translation_changed": "✅ 翻訳言語: <b>{lang_name}</b>",
|
||||
"tasks_count_prefix": "🔢 課題数: ",
|
||||
"tasks_count_title": "🔢 <b>課題数:</b>\n\n",
|
||||
"tasks_count_desc": "一度に生成する課題数。\n最小5、最大15。",
|
||||
"tasks_count_changed": "✅ 課題数: <b>{count}</b>",
|
||||
"menu_updated": "メインメニューを更新しました ⤵️",
|
||||
"lang_name": {
|
||||
"ru": "🇷🇺 Русский",
|
||||
|
||||
@@ -115,6 +115,11 @@
|
||||
"choose_mode": "🧠 <b>Выбери режим заданий:</b>",
|
||||
"mode_vocabulary": "📚 Слова из словаря",
|
||||
"mode_new_words": "✨ Новые слова",
|
||||
"choose_type": "📋 <b>Выбери тип заданий:</b>",
|
||||
"type_mix": "🎲 Микс (все типы)",
|
||||
"type_word_translate": "📝 Перевод слов",
|
||||
"type_fill_blank": "✏️ Подстановка слова",
|
||||
"type_sentence_translate": "📖 Перевод предложений",
|
||||
"generating_new": "🔄 Генерирую новые слова...",
|
||||
"generate_failed": "❌ Не удалось сгенерировать слова. Попробуй позже.",
|
||||
"translate_to": "Переведи на {lang_name}",
|
||||
@@ -236,6 +241,10 @@
|
||||
"translation_title": "💬 <b>Выбери язык перевода:</b>\n\n",
|
||||
"translation_desc": "На этот язык будут переводиться слова.\nЭто может отличаться от языка интерфейса.",
|
||||
"translation_changed": "✅ Язык перевода: <b>{lang_name}</b>",
|
||||
"tasks_count_prefix": "🔢 Заданий: ",
|
||||
"tasks_count_title": "🔢 <b>Количество заданий:</b>\n\n",
|
||||
"tasks_count_desc": "Сколько заданий генерировать за один раз.\nМинимум 5, максимум 15.",
|
||||
"tasks_count_changed": "✅ Количество заданий: <b>{count}</b>",
|
||||
"menu_updated": "Клавиатура обновлена ⤵️",
|
||||
"lang_name": {
|
||||
"ru": "🇷🇺 Русский",
|
||||
|
||||
Reference in New Issue
Block a user