chore(ai): clarify prompts to request furigana only for kanji (exclude kana/latin) for JA; include annotated fields for messages/suggestions

This commit is contained in:
2025-12-04 21:37:21 +03:00
parent e05e1930d8
commit a360121902

View File

@@ -342,7 +342,9 @@ class AIService:
extra_fields = '' extra_fields = ''
if learning_lang.lower() == 'ja': if learning_lang.lower() == 'ja':
extra_fields = ",\n \"furigana\": \"фуригана (кана над/после иероглифов для поля message)\"" # Для японского просим версию с фуриганой в скобках ТОЛЬКО для кандзи
# Не добавляй фуригану к кана или латинским буквам
extra_fields = ",\n \"message_annotated\": \"фраза на {learning_lang} с фуриганой в скобках ТОЛЬКО к кандзи (Так правильно: いらっしゃいませ!今日は何を注文(ちゅうもん)しますか?, Так неправильно: こんにちは(こんにちは)!今日ははどうですか?); к こんにちは не добовляй фурагану; не добавляй фуригану к катакане, фуригане, хирагане, частице и латинице\""
prompt = f"""Ты - собеседник для практики языка {learning_lang} уровня {level}. prompt = f"""Ты - собеседник для практики языка {learning_lang} уровня {level}.
Начни диалог в сценарии: {scenario_desc} на {learning_lang}. Начни диалог в сценарии: {scenario_desc} на {learning_lang}.
@@ -352,7 +354,11 @@ class AIService:
"message": "твоя первая реплика на {learning_lang}", "message": "твоя первая реплика на {learning_lang}",
"translation": "перевод на {translation_lang}", "translation": "перевод на {translation_lang}",
"context": "краткое описание ситуации на {translation_lang}", "context": "краткое описание ситуации на {translation_lang}",
"suggestions": ["подсказка 1", "подсказка 2", "подсказка 3"]{extra_fields} "suggestions": [
{{"learn": "подсказка на {learning_lang}", "learn_annotated": "подсказка с фуриганой в скобках ТОЛЬКО к кандзи (Так правильно: いらっしゃいませ!今日は何を注文(ちゅうもん)しますか?, Так неправильно: こんにちは(こんにちは)!今日ははどうですか?); к こんにちは не добовляй фурагану; не добавляй фуригану к катакане, фуригане, хирагане, частице и латинице; {learning_lang})", "trans": "перевод подсказки на {translation_lang}"}},
{{"learn": "...", "learn_annotated": "...", "trans": "..."}},
{{"learn": "...", "learn_annotated": "...", "trans": "..."}}
]{extra_fields}
}} }}
Требования: Требования:
@@ -414,7 +420,9 @@ class AIService:
extra_fields_resp = '' extra_fields_resp = ''
if learning_lang.lower() == 'ja': if learning_lang.lower() == 'ja':
extra_fields_resp = ",\n \"furigana\": \"фуригана (кана над/после иероглифов для поля response)\"" # Для японского просим версию ответа с фуриганой ТОЛЬКО для кандзи
# Не добавляй фуригану к кана или латинским буквам
extra_fields_resp = ",\n \"response_annotated\": \"ответ на {learning_lang} с фуриганой ТОЛЬКО для кандзи (напр.: 今日(きょう)); не добавляй фуригану к кана или латинице\""
prompt = f"""Ты ведешь диалог на языке {learning_lang} уровня {level} в сценарии "{scenario}". prompt = f"""Ты ведешь диалог на языке {learning_lang} уровня {level} в сценарии "{scenario}".
@@ -431,7 +439,10 @@ User: {user_message}
"corrections": "исправления ошибок пользователя (если есть)", "corrections": "исправления ошибок пользователя (если есть)",
"comment": "краткий комментарий об ответе пользователя" "comment": "краткий комментарий об ответе пользователя"
}}, }},
"suggestions": ["подсказка 1 для следующего ответа", "подсказка 2"]{extra_fields_resp} "suggestions": [
{{"learn": "подсказка на {learning_lang}", "learn_annotated": "подсказка с фуриганой (ТОЛЬКО для кандзи; {learning_lang})", "trans": "перевод подсказки на {translation_lang}"}},
{{"learn": "...", "learn_annotated": "...", "trans": "..."}}
]{extra_fields_resp}
}} }}
Требования: Требования: