""" Инициализация данных для чат-учителя: 1. wrong_because_explanations — объяснения ошибок 2. teacher_reactions — банк реакций (Марек) Запуск: python3 init_teacher_data.py """ import asyncio import asyncpg from config import DB_CONFIG # ============ Объяснения ошибок ============ WRONG_BECAUSE_EXPLANATIONS = [ { "wrong_because": "wrong_word", "pl": "To nie jest właściwe słowo w tym kontekście.", "ru": "Это не подходящее слово в данном контексте.", "uk": "Це не відповідне слово в даному контексті.", "en": "This is not the right word in this context." }, { "wrong_because": "wrong_gender", "pl": "Uwaga na rodzaj gramatyczny! W języku polskim rzeczowniki mają rodzaje: męski, żeński i nijaki.", "ru": "Обрати внимание на грамматический род! В польском языке существительные бывают мужского, женского и среднего рода.", "uk": "Зверни увагу на граматичний рід! У польській мові іменники бувають чоловічого, жіночого та середнього роду.", "en": "Pay attention to grammatical gender! Polish nouns have masculine, feminine and neuter genders." }, { "wrong_because": "wrong_case", "pl": "Sprawdź przypadek gramatyczny. W języku polskim jest 7 przypadków!", "ru": "Проверь грамматический падеж. В польском языке 7 падежей!", "uk": "Перевір граматичний відмінок. У польській мові 7 відмінків!", "en": "Check the grammatical case. Polish has 7 cases!" }, { "wrong_because": "wrong_number", "pl": "Uwaga na liczbę! Pojedyncza czy mnoga?", "ru": "Обрати внимание на число! Единственное или множественное?", "uk": "Зверни увагу на число! Однина чи множина?", "en": "Pay attention to number! Singular or plural?" }, { "wrong_because": "wrong_sentence_type", "pl": "To nie jest właściwy typ zdania (oznajmujące, pytające, rozkazujące).", "ru": "Это не правильный тип предложения (повествовательное, вопросительное, повелительное).", "uk": "Це не правильний тип речення (розповідне, питальне, наказове).", "en": "This is not the right sentence type (declarative, interrogative, imperative)." }, { "wrong_because": "wrong_translation", "pl": "Tłumaczenie nie jest dokładne. Spróbuj jeszcze raz.", "ru": "Перевод не точный. Попробуй ещё раз.", "uk": "Переклад не точний. Спробуй ще раз.", "en": "The translation is not accurate. Try again." }, { "wrong_because": "wrong_context", "pl": "To słowo nie pasuje do kontekstu zdania.", "ru": "Это слово не подходит к контексту предложения.", "uk": "Це слово не підходить до контексту речення.", "en": "This word doesn't fit the sentence context." }, ] # ============ Реакции учителя Марека (нейтральные, без гендерной привязки) ============ # 30 на "correct", 20 на "almost", 20 на "wrong" TEACHER_REACTIONS = [ # ===== ПРАВИЛЬНЫЕ ОТВЕТЫ (30) ===== {"type": "correct", "pl": "Świetnie! Dokładnie tak!", "ru": "Отлично! Именно так!", "uk": "Чудово! Саме так!", "en": "Great! Exactly right!"}, {"type": "correct", "pl": "Brawo! Świetna robota!", "ru": "Браво! Отличная работа!", "uk": "Браво! Чудова робота!", "en": "Bravo! Great job!"}, {"type": "correct", "pl": "Doskonale! Tak trzymaj!", "ru": "Превосходно! Так держать!", "uk": "Чудово! Так тримати!", "en": "Excellent! Keep it up!"}, {"type": "correct", "pl": "Zgadza się! Widzę ogromny postęp!", "ru": "Верно! Вижу огромный прогресс!", "uk": "Вірно! Бачу величезний прогрес!", "en": "Correct! I see huge progress!"}, {"type": "correct", "pl": "Perfekcyjnie! Zasługujesz na pochwałę!", "ru": "Идеально! Это заслуживает похвалы!", "uk": "Ідеально! Це заслуговує на похвалу!", "en": "Perfect! This deserves praise!"}, {"type": "correct", "pl": "Tak jest! Bez żadnych błędów!", "ru": "Так точно! Без единой ошибки!", "uk": "Так точно! Без жодної помилки!", "en": "That's it! No mistakes at all!"}, {"type": "correct", "pl": "Pięknie! Od razu widać postępy!", "ru": "Красиво! Сразу виден прогресс!", "uk": "Гарно! Одразу видно прогрес!", "en": "Beautiful! Progress is visible!"}, {"type": "correct", "pl": "O tak! To jest poprawna odpowiedź!", "ru": "О да! Это правильный ответ!", "uk": "О так! Це правильна відповідь!", "en": "Oh yes! That's the correct answer!"}, {"type": "correct", "pl": "Wspaniale! Z każdym razem lepiej!", "ru": "Замечательно! С каждым разом лучше!", "uk": "Чудово! З кожним разом краще!", "en": "Wonderful! Better every time!"}, {"type": "correct", "pl": "Dokładnie o to chodziło!", "ru": "Именно это и имелось в виду!", "uk": "Саме це і малося на увазі!", "en": "That's exactly what I meant!"}, {"type": "correct", "pl": "Super! To naprawdę imponujące!", "ru": "Супер! Это впечатляет!", "uk": "Супер! Це вражає!", "en": "Super! That's impressive!"}, {"type": "correct", "pl": "Zgadza się! Polskie słowa nie są ci straszne!", "ru": "Верно! Польские слова не страшны!", "uk": "Вірно! Польські слова не страшні!", "en": "Right! Polish words don't scare you!"}, {"type": "correct", "pl": "Idealnie! Jak rodowity Polak!", "ru": "Идеально! Как у носителя языка!", "uk": "Ідеально! Як у носія мови!", "en": "Perfect! Like a native speaker!"}, {"type": "correct", "pl": "Masz rację! Pamięć działa świetnie!", "ru": "Верно! Память работает отлично!", "uk": "Вірно! Пам'ять працює чудово!", "en": "Right! Memory works great!"}, {"type": "correct", "pl": "Świetna odpowiedź! Tak trzymaj dalej!", "ru": "Отличный ответ! Продолжай в том же духе!", "uk": "Чудова відповідь! Продовжуй у тому ж дусі!", "en": "Great answer! Keep it up!"}, {"type": "correct", "pl": "Brawo! Widzę, że naprawdę się uczysz!", "ru": "Браво! Видно, что идёт настоящая учёба!", "uk": "Браво! Видно, що йде справжнє навчання!", "en": "Bravo! Real learning is happening!"}, {"type": "correct", "pl": "Oczywiście! Dokładnie tak!", "ru": "Конечно! Именно так!", "uk": "Звісно! Саме так!", "en": "Of course! Exactly like that!"}, {"type": "correct", "pl": "Znakomicie! Nie mogę się doczekać następnego pytania!", "ru": "Великолепно! Жду следующего вопроса!", "uk": "Чудово! Чекаю наступного питання!", "en": "Excellent! Can't wait for the next question!"}, {"type": "correct", "pl": "Tak! To poprawna forma!", "ru": "Да! Это правильная форма!", "uk": "Так! Це правильна форма!", "en": "Yes! That's the correct form!"}, {"type": "correct", "pl": "Prawidłowo! Jestem dumny z twoich postępów!", "ru": "Правильно! Я горжусь твоими успехами!", "uk": "Правильно! Я пишаюся твоїми успіхами!", "en": "Correct! I'm proud of your progress!"}, {"type": "correct", "pl": "Dobrze! Nawet nie musiałeś się zastanawiać!", "ru": "Хорошо! Даже не пришлось задумываться!", "uk": "Добре! Навіть не довелося задумуватися!", "en": "Good! Didn't even hesitate!"}, {"type": "correct", "pl": "Dokładnie! Język polski nie ma przed tobą tajemnic!", "ru": "Точно! У польского языка нет секретов!", "uk": "Точно! У польської мови немає секретів!", "en": "Exactly! Polish has no secrets!"}, {"type": "correct", "pl": "Tak jest! Ciężka praca się opłaca!", "ru": "Так! Усердная работа окупается!", "uk": "Так! Наполеглива праця окупається!", "en": "That's it! Hard work pays off!"}, {"type": "correct", "pl": "Doskonale! Zasługujesz na przerwę, ale najpierw kolejne pytanie!", "ru": "Отлично! Заслужил(а) перерыв, но сначала следующий вопрос!", "uk": "Чудово! Заслужив(ла) перерву, але спочатку наступне питання!", "en": "Excellent! You deserve a break, but first the next question!"}, {"type": "correct", "pl": "Fantastycznie! Twoja wiedza rośnie!", "ru": "Фантастика! Знания растут!", "uk": "Фантастика! Знання ростуть!", "en": "Fantastic! Knowledge is growing!"}, {"type": "correct", "pl": "Świetny wynik! Jestem pod wrażeniem!", "ru": "Отличный результат! Я впечатлён!", "uk": "Чудовий результат! Я вражений!", "en": "Great result! I'm impressed!"}, {"type": "correct", "pl": "Brawo! Tak trzymaj!", "ru": "Браво! Так держать!", "uk": "Браво! Так тримати!", "en": "Bravo! Keep it up!"}, {"type": "correct", "pl": "Zgadza się! Coraz lepiej ci idzie!", "ru": "Верно! Всё лучше и лучше получается!", "uk": "Вірно! Все краще і краще виходить!", "en": "Right! Getting better and better!"}, {"type": "correct", "pl": "Dokładnie! Nic dodać, nic ująć!", "ru": "Точно! Ни добавить, ни убавить!", "uk": "Точно! Ні додати, ні відняти!", "en": "Exactly! Nothing to add, nothing to subtract!"}, {"type": "correct", "pl": "Wspaniała robota! Jestem naprawdę dumny!", "ru": "Отличная работа! Я правда горжусь!", "uk": "Чудова робота! Я справді пишаюся!", "en": "Wonderful work! Truly proud!"}, # ===== ПОЧТИ ПРАВИЛЬНО (20) ===== {"type": "almost", "pl": "Prawie! Jeszcze chwila...", "ru": "Почти! Ещё чуть-чуть...", "uk": "Майже! Ще трохи...", "en": "Almost! Just a little more..."}, {"type": "almost", "pl": "Blisko! Spróbuj jeszcze raz.", "ru": "Близко! Попробуй ещё раз.", "uk": "Близько! Спробуй ще раз.", "en": "Close! Try again."}, {"type": "almost", "pl": "Niewiele brakowało!", "ru": "Чуть-чуть не хватило!", "uk": "Трішки не вистачило!", "en": "So close!"}, {"type": "almost", "pl": "Jesteś na dobrej drodze!", "ru": "Ты на правильном пути!", "uk": "Ти на правильному шляху!", "en": "You're on the right track!"}, {"type": "almost", "pl": "Prawie dobrze! Jeszcze raz!", "ru": "Почти хорошо! Ещё раз!", "uk": "Майже добре! Ще раз!", "en": "Almost right! One more time!"}, {"type": "almost", "pl": "Jeszcze troszeczkę...", "ru": "Ещё чуточку...", "uk": "Ще трішечки...", "en": "Just a tiny bit more..."}, {"type": "almost", "pl": "Blisko, ale nie dokładnie. Pomyśl jeszcze chwilę.", "ru": "Близко, но не точно. Подумай ещё немного.", "uk": "Близько, але не точно. Подумай ще трохи.", "en": "Close, but not quite. Think a bit more."}, {"type": "almost", "pl": "Dobra intuicja! Ale spróbuj poprawić.", "ru": "Хорошая интуиция! Но попробуй исправить.", "uk": "Гарна інтуїція! Але спробуй виправити.", "en": "Good intuition! But try to correct it."}, {"type": "almost", "pl": "To nie jest złe, ale nie do końca to, o co pytam.", "ru": "Это неплохо, но не совсем то, о чём я спрашиваю.", "uk": "Це непогано, але не зовсім те, про що я питаю.", "en": "Not bad, but not quite what I'm asking."}, {"type": "almost", "pl": "Jesteś bardzo blisko! Mała poprawka i będzie idealnie.", "ru": "Очень близко! Маленькая поправка и будет идеально.", "uk": "Дуже близько! Маленьке виправлення і буде ідеально.", "en": "Very close! Small correction and it'll be perfect."}, {"type": "almost", "pl": "Prawie! Sprawdź jeszcze raz pisownię.", "ru": "Почти! Проверь ещё раз написание.", "uk": "Майже! Перевір ще раз написання.", "en": "Almost! Check the spelling again."}, {"type": "almost", "pl": "Niewielka pomyłka! Skup się na szczegółach.", "ru": "Небольшая ошибка! Сосредоточься на деталях.", "uk": "Невелика помилка! Зосередься на деталях.", "en": "Small mistake! Focus on the details."}, {"type": "almost", "pl": "Blisko! Jeden mały krok do sukcesu.", "ru": "Близко! Один маленький шаг до успеха.", "uk": "Близько! Один маленький крок до успіху.", "en": "Close! One small step to success."}, {"type": "almost", "pl": "Jesteś blisko! Ale nie tym razem.", "ru": "Близко! Но не в этот раз.", "uk": "Близько! Але не цього разу.", "en": "Close! But not this time."}, {"type": "almost", "pl": "Prawie! Nie zatrzymuj się teraz.", "ru": "Почти! Не останавливайся сейчас.", "uk": "Майже! Не зупиняйся зараз.", "en": "Almost! Don't stop now."}, {"type": "almost", "pl": "Jeszcze jeden krok! Spróbuj ponownie.", "ru": "Ещё один шаг! Попробуй снова.", "uk": "Ще один крок! Спробуй знову.", "en": "One more step! Try again."}, {"type": "almost", "pl": "Niewiele brakuje do perfekcji!", "ru": "Немного не хватает до совершенства!", "uk": "Трішки не вистачає до досконалості!", "en": "Just a bit short of perfection!"}, {"type": "almost", "pl": "Bardzo blisko! Jeszcze jedna próba.", "ru": "Очень близко! Ещё одна попытка.", "uk": "Дуже близько! Ще одна спроба.", "en": "Very close! One more attempt."}, {"type": "almost", "pl": "Prawie udało się! Nie poddawaj się.", "ru": "Почти получилось! Не сдавайся.", "uk": "Майже вийшло! Не здавайся.", "en": "Almost got it! Don't give up."}, {"type": "almost", "pl": "Mała poprawka i będzie idealnie!", "ru": "Маленькая поправка и будет идеально!", "uk": "Маленьке виправлення і буде ідеально!", "en": "Small correction and it'll be perfect!"}, # ===== НЕПРАВИЛЬНЫЕ ОТВЕТЫ (20) ===== {"type": "wrong", "pl": "Nie tym razem. Nie poddawaj się!", "ru": "Не в этот раз. Не сдавайся!", "uk": "Не цього разу. Не здавайся!", "en": "Not this time. Don't give up!"}, {"type": "wrong", "pl": "To nie to. Spróbuj jeszcze raz!", "ru": "Это не то. Попробуй ещё раз!", "uk": "Це не те. Спробуй ще раз!", "en": "That's not it. Try again!"}, {"type": "wrong", "pl": "Zdarza się! Ważne, że próbujesz.", "ru": "Бывает! Главное, что ты пытаешься.", "uk": "Буває! Головне, що ти намагаєшся.", "en": "It happens! What matters is that you try."}, {"type": "wrong", "pl": "Błąd to część nauki!", "ru": "Ошибка — часть обучения!", "uk": "Помилка — частина навчання!", "en": "Mistakes are part of learning!"}, {"type": "wrong", "pl": "Nie szkodzi! Uczymy się na błędach.", "ru": "Ничего страшного! Мы учимся на ошибках.", "uk": "Нічого страшного! Ми вчимося на помилках.", "en": "No worries! We learn from mistakes."}, {"type": "wrong", "pl": "Nie martw się! Każdy mistrz kiedyś zaczynał od zera.", "ru": "Не переживай! Каждый мастер когда-то начинал с нуля.", "uk": "Не хвилюйся! Кожен майстер колись починав з нуля.", "en": "Don't worry! Every master started from zero."}, {"type": "wrong", "pl": "Pomyłka to dobry znak — znaczy, że próbujesz!", "ru": "Ошибка — хороший знак, значит есть попытка!", "uk": "Помилка — гарний знак, значить є спроба!", "en": "A mistake is a good sign — it means you're trying!"}, {"type": "wrong", "pl": "Nie udało się, ale nie przestawaj!", "ru": "Не получилось, но не останавливайся!", "uk": "Не вийшло, але не зупиняйся!", "en": "Didn't work, but don't stop!"}, {"type": "wrong", "pl": "Sprawdź dokładnie i spróbuj ponownie.", "ru": "Проверь внимательно и попробуй снова.", "uk": "Перевір уважно і спробуй знову.", "en": "Check carefully and try again."}, {"type": "wrong", "pl": "Nie tym razem, ale doceniam twoje zaangażowanie!", "ru": "Не в этот раз, но я ценю усердие!", "uk": "Не цього разу, але я ціную старанність!", "en": "Not this time, but I appreciate the effort!"}, {"type": "wrong", "pl": "Spokojnie! Nawet najlepsi popełniają błędy.", "ru": "Спокойно! Даже лучшие ошибаются.", "uk": "Спокійно! Навіть найкращі помиляються.", "en": "Relax! Even the best make mistakes."}, {"type": "wrong", "pl": "Nie poddawaj się! Jesteś bliżej niż myślisz.", "ru": "Не сдавайся! Ты ближе, чем думаешь.", "uk": "Не здавайся! Ти ближче, ніж думаєш.", "en": "Don't give up! You're closer than you think."}, {"type": "wrong", "pl": "Spróbuj inaczej! Może pomoże inne podejście.", "ru": "Попробуй иначе! Может, поможет другой подход.", "uk": "Спробуй інакше! Може, допоможе інший підхід.", "en": "Try differently! Maybe another approach will help."}, {"type": "wrong", "pl": "Nie zniechęcaj się! To normalny etap nauki.", "ru": "Не расстраивайся! Это нормальный этап обучения.", "uk": "Не засмучуйся! Це нормальний етап навчання.", "en": "Don't be discouraged! It's a normal stage of learning."}, {"type": "wrong", "pl": "Każdy błąd to lekcja na przyszłość!", "ru": "Каждая ошибка — урок на будущее!", "uk": "Кожна помилка — урок на майбутнє!", "en": "Every mistake is a lesson for the future!"}, {"type": "wrong", "pl": "Nie martw się! Mózg najlepiej uczy się na błędach.", "ru": "Не переживай! Мозг лучше всего учится на ошибках.", "uk": "Не хвилюйся! Мозок найкраще вчиться на помилках.", "en": "Don't worry! The brain learns best from mistakes."}, {"type": "wrong", "pl": "To normalne! Nawet ja czasem się mylę.", "ru": "Это нормально! Даже я иногда ошибаюсь.", "uk": "Це нормально! Навіть я іноді помиляюся.", "en": "That's normal! Even I make mistakes sometimes."}, {"type": "wrong", "pl": "Ważne, że się uczysz! Błędy to część drogi.", "ru": "Важно, что ты учишься! Ошибки — часть пути.", "uk": "Важливо, що ти вчишся! Помилки — частина шляху.", "en": "What matters is that you're learning! Mistakes are part of the journey."}, {"type": "wrong", "pl": "Nie przejmuj się! Następnym razem się uda.", "ru": "Не переживай! В следующий раз получится.", "uk": "Не хвилюйся! Наступного разу вийде.", "en": "Don't worry! Next time it'll work."}, {"type": "wrong", "pl": "Uczymy się razem! To dopiero początek.", "ru": "Мы учимся вместе! Это только начало.", "uk": "Ми вчимося разом! Це тільки початок.", "en": "We're learning together! This is just the beginning."}, ] async def main(): pool = await asyncpg.create_pool(**DB_CONFIG) async with pool.acquire() as conn: # ============ Очищаем старые реакции ============ await conn.execute("DELETE FROM teacher_reactions") print("🗑️ Старые реакции удалены") # ============ Заполняем wrong_because_explanations ============ for item in WRONG_BECAUSE_EXPLANATIONS: await conn.execute(""" INSERT INTO wrong_because_explanations (wrong_because, explanation_pl, explanation_ru, explanation_uk, explanation_en) VALUES ($1, $2, $3, $4, $5) ON CONFLICT (wrong_because) DO UPDATE SET explanation_pl = $2, explanation_ru = $3, explanation_uk = $4, explanation_en = $5 """, item["wrong_because"], item["pl"], item["ru"], item["uk"], item["en"]) print(f"✅ Добавлено {len(WRONG_BECAUSE_EXPLANATIONS)} объяснений ошибок") # ============ Заполняем teacher_reactions ============ correct_count = 0 almost_count = 0 wrong_count = 0 for item in TEACHER_REACTIONS: await conn.execute(""" INSERT INTO teacher_reactions (reaction_type, text_pl, text_ru, text_uk, text_en) VALUES ($1, $2, $3, $4, $5) """, item["type"], item["pl"], item["ru"], item["uk"], item["en"]) if item["type"] == "correct": correct_count += 1 elif item["type"] == "almost": almost_count += 1 else: wrong_count += 1 print(f"✅ Добавлено реакций: correct={correct_count}, almost={almost_count}, wrong={wrong_count}") print(f" Всего: {len(TEACHER_REACTIONS)}") await pool.close() print("\n🎉 Готово! Марек готов к работе!") if __name__ == "__main__": asyncio.run(main())