initial commit (backend)
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
"""
|
||||
Заполняет поле options_language в learning_questions.
|
||||
Определяет, на каком языке показывать варианты ответов:
|
||||
- 'user' — для вопросов "Что означает...?" (варианты на языке пользователя)
|
||||
- 'pl' — для остальных (варианты на польском)
|
||||
|
||||
Запуск: python3 init_options_language.py
|
||||
"""
|
||||
import asyncio
|
||||
import asyncpg
|
||||
from config import DB_CONFIG
|
||||
|
||||
|
||||
# Ключевые фразы, которые означают "вопрос на понимание смысла"
|
||||
USER_LANG_PATTERNS = [
|
||||
'co oznacza',
|
||||
'co znaczy',
|
||||
'что означает',
|
||||
'що означає',
|
||||
'what does',
|
||||
'what means',
|
||||
'переведи',
|
||||
'переклади',
|
||||
'przetłumacz',
|
||||
'translate',
|
||||
]
|
||||
|
||||
|
||||
async def main():
|
||||
pool = await asyncpg.create_pool(**DB_CONFIG)
|
||||
|
||||
async with pool.acquire() as conn:
|
||||
# Получаем все вопросы
|
||||
questions = await conn.fetch("""
|
||||
SELECT question_id, prompt_pl, prompt_ru, prompt_uk, prompt_en
|
||||
FROM learning_questions
|
||||
""")
|
||||
|
||||
user_lang_count = 0
|
||||
pl_lang_count = 0
|
||||
|
||||
for q in questions:
|
||||
# Собираем все промпты в один текст для проверки
|
||||
all_prompts = ' '.join([
|
||||
q['prompt_pl'] or '',
|
||||
q['prompt_ru'] or '',
|
||||
q['prompt_uk'] or '',
|
||||
q['prompt_en'] or '',
|
||||
]).lower()
|
||||
|
||||
# Определяем язык вариантов
|
||||
is_user_lang = any(pattern in all_prompts for pattern in USER_LANG_PATTERNS)
|
||||
options_language = 'user' if is_user_lang else 'pl'
|
||||
|
||||
await conn.execute("""
|
||||
UPDATE learning_questions
|
||||
SET options_language = $2
|
||||
WHERE question_id = $1
|
||||
""", q['question_id'], options_language)
|
||||
|
||||
if is_user_lang:
|
||||
user_lang_count += 1
|
||||
else:
|
||||
pl_lang_count += 1
|
||||
|
||||
print(f"✅ options_language = 'user': {user_lang_count} вопросов")
|
||||
print(f"✅ options_language = 'pl': {pl_lang_count} вопросов")
|
||||
print(f" Всего: {user_lang_count + pl_lang_count}")
|
||||
|
||||
await pool.close()
|
||||
print("\n🎉 Готово!")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
asyncio.run(main())
|
||||
Reference in New Issue
Block a user