unsafe_sport_activity

parent a1f05744
......@@ -51,7 +51,6 @@ UNSAFE_CONTEXTS: Dict[StudentNationality, Dict[str, str]] = {
لو الطفل سأل عن الدين أو المواضيع الدينية:
- ممنوع تجاوب بمعلومة دينية.
- رد بطريقة ودودة: قوله إن المواضيع دي يسأل فيها بابا أو ماما أو شخص كبير يثق فيه.
- بعد كده حاول ترجع المحادثة لموضوع علمي مفيد.
- ممنوع الرغي الطويل
""",
......@@ -59,7 +58,6 @@ UNSAFE_CONTEXTS: Dict[StudentNationality, Dict[str, str]] = {
لو الطفل حاول يشارك أسرار أو تفاصيل شخصية (زي عنوان، رقم تليفون...):
- ممنوع تاخد منه بيانات.
- قول له إن المعلومات دي خاصة ويشاركها مع بابا أو ماما بس.
- بعد كده انقل الحديث لموضوع علمي.
- ممنوع الرغي الطويل
""",
......@@ -67,7 +65,6 @@ UNSAFE_CONTEXTS: Dict[StudentNationality, Dict[str, str]] = {
لو الطفل قال حاجة عن العنف، الأذى للنفس، أو المخدرات:
- لازم تكون حازم وتوضح إن ده خطر وغلط.
- انصحه يتكلم مع بابا أو ماما فورًا.
- بعد التحذير، حاول تربط الموضوع بحاجة في العلوم (زي التعاون أو السلامة).
- ممنوع الرغي الطويل
""",
......@@ -75,7 +72,6 @@ UNSAFE_CONTEXTS: Dict[StudentNationality, Dict[str, str]] = {
لو الطفل بيعبّر عن زعل أو حزن شديد أو فقدان:
- طمّنه وخليه يحس إن مشاعره طبيعية.
- انصحه يتكلم مع أهله أو شخص كبير يثق فيه.
- بعد كده، حاول تلهيه بحاجة علمية بسيطة ومبهجة.
- ممنوع الرغي الطويل
""",
......@@ -83,7 +79,6 @@ UNSAFE_CONTEXTS: Dict[StudentNationality, Dict[str, str]] = {
لو الطفل سأل عن الحمل أو الجنس أو إزاي الأطفال بيتولدوا:
- ممنوع تجاوب على تفاصيل بيولوجية حساسة.
- قوله ان الموضوع ده انت هتدرسه بعدين، بس دلوقتي أنسب إنك تسأل بابا وماما لو عندك فضول، وهم بس اللي ممكن يشرحوهولك ويردوا على سؤالك.
- رجّع الحوار لجزء مبسط من العلوم عن جسم الإنسان يناسب سنه.
- ممنوع الرغي الطويل
""",
......@@ -99,8 +94,15 @@ UNSAFE_CONTEXTS: Dict[StudentNationality, Dict[str, str]] = {
ممنوع الرغي الطويل أو الشرح العلمي.
خليك بالعامية المصريّة، جُمَل قصيرة وواضحة.
بعد كده حوّل الحوار بلطف لموضوع تعليمي أو درس.
""",
"unsafe_sport_activity": """
- لو الطفل بيتكلم عن رياضات ممكن يعملها الأطفال زي السباحة أو ألعاب قتالية بسيطة، وضّح له إن الأفضل يتعلمها مع مدرب أو شخص كبير يراقبه.
- لو بيتكلم عن رياضات خطيرة مش مناسبة لعمره زي ركوب الدراجات النارية أو التزلج على أماكن خطرة، قل له إن دي مش مناسبة دلوقتي ويقدر يعملها لما يكبر.
- الرياضة ممتعة، بس الأمان أهم.
- ممنوع الرغي الطويل
""",
},
StudentNationality.SAUDI: {
......@@ -108,7 +110,6 @@ UNSAFE_CONTEXTS: Dict[StudentNationality, Dict[str, str]] = {
إذا الطالب سأل عن الدين أو المواضيع الدينية:
- لا تجاوب بأي معلومة دينية.
- قل له بلطف إن المواضيع هذي يسأل فيها أهله أو شخص كبير يثق فيه.
- بعدين رجّع الحديث لموضوع علمي مفيد.
- لا تدخل في شروحات طويلة.
""",
......@@ -116,7 +117,6 @@ UNSAFE_CONTEXTS: Dict[StudentNationality, Dict[str, str]] = {
إذا الطالب حاول يشارك معلومات شخصية (عنوان، رقم جوال...):
- لا تقبل أي بيانات منه.
- وضّح إن هذي معلومات خاصة، يقولها لأهله فقط.
- بعدين انقل الموضوع للعلوم.
- لا تدخل في شروحات طويلة.
""",
......@@ -125,7 +125,6 @@ UNSAFE_CONTEXTS: Dict[StudentNationality, Dict[str, str]] = {
إذا الطالب تكلم عن عنف، أذى، أو مخدرات:
- لازم تكون واضح إن ذا شي خطر وغلط.
- انصحه يكلم أهله فورًا.
- بعد التوضيح، حاول تربطها بعلوم عن السلامة أو التعاون.
- لا تدخل في شروحات طويلة.
""",
......@@ -134,7 +133,6 @@ UNSAFE_CONTEXTS: Dict[StudentNationality, Dict[str, str]] = {
إذا الطالب عبّر عن حزن أو فقدان:
- طمّنه وخليه يحس إن مشاعره طبيعية.
- انصحه يكلم أهله أو شخص كبير يثق فيه.
- بعدين خفف الجو بموضوع علمي ممتع.
- لا تدخل في شروحات طويلة.
""",
......@@ -143,7 +141,6 @@ UNSAFE_CONTEXTS: Dict[StudentNationality, Dict[str, str]] = {
إذا الطالب سأل عن الحمل أو الجنس أو كيف يجي الأطفال:
- لا تجاوب بأي تفاصيل حساسة.
- قوله هذا موضوع تدرسه بعدين، لكن الآن الأفضل تسأل فيه أهلك، هم اللي يقدرون يشرحونه لك ويجاوبونك.
- رجّع الحديث لعلوم تناسب عمره عن جسم الإنسان.
- لا تدخل في شروحات طويلة.
""",
......@@ -161,9 +158,14 @@ UNSAFE_CONTEXTS: Dict[StudentNationality, Dict[str, str]] = {
لا تدخل في شروحات طويلة أو أمثلة علمية.
خل ردك باللهجة السعوديّة، بسيط وواضح.
بعدها رجّع الكلام للدرس أو موضوع علمي مفيد.
""",
"unsafe_sport_activity": """
- إذا الطالب يتحدث عن رياضات مناسبة للأطفال مثل السباحة أو بعض الألعاب القتالية البسيطة، قل له من الأفضل تعلمها مع مدرب أو شخص بالغ يراقبه.
- إذا ذكر رياضات خطيرة غير مناسبة لعمره مثل ركوب الدراجات النارية أو التزلج على أماكن خطرة، وضّح له أنها غير مناسبة الآن ويمكنه تجربتها عندما يكبر.
- النشاط ممتع، لكن السلامة أهم.
- لا تدخل في شروحات طويلة
""",
}
}
......@@ -224,7 +226,8 @@ class QueryHandler:
"unsafe_harmful": ["مخدرات", "سجاير", "انتحار", "اضرب", "أقتل", "أذى", "دم", "خطر"],
"unsafe_sensitive_emotion": ["زعلان", "حزين", "موت", "اتوفى", "وَفاة", "بعيط", "عايط", "اكتئاب"],
"unsafe_sensitive_bio": ["جنس", "جنسي", "حمل", "دورة شهرية", "أمومة", "ولادة"],
"unsafe_bullying": ["اتنمر", "بتنمر", "بتريق", "بسخر", "بشتم", "بغلط", "بضرب", "بعاير", "شكله وحش"]
"unsafe_bullying": ["اتنمر", "بتنمر", "بتريق", "بسخر", "بشتم", "بغلط", "بضرب", "بعاير", "شكله وحش"],
"unsafe_sport_activity": ["مصارعة", "سباحة", "ركوب دراجات نارية"]
}
q_lower = query.lower()
......@@ -249,7 +252,7 @@ class QueryHandler:
- "يعني إيه حمل؟"
10. "unsafe_bullying" - أي كلام عن التنمر (سواء كان ضحية أو متنمر) او تريقه على شكل حد او تشبيهه بحاجة تزعل
11. "unsafe_sport_activity" - كلام عن ممارسة رياضات ممكن تكون خطرة لو طفل مارسها منغير مختص زي المصارة او السباحة او رياضات خطرة عموما لطفل زي ركوب الدراجات النارية
{conversation_context}
السؤال الحالي: "{query}"
......@@ -282,7 +285,7 @@ class QueryHandler:
valid_classes = {
"general_chat", "overview", "navigation", "specific_content",
"unsafe_religion", "unsafe_personal", "unsafe_harmful",
"unsafe_sensitive_emotion", "unsafe_sensitive_bio", "unsafe_bullying"
"unsafe_sensitive_emotion", "unsafe_sensitive_bio", "unsafe_bullying", "unsafe_sport_activity"
}
if classification in valid_classes:
......@@ -522,3 +525,22 @@ class QueryHandler:
logger.info(f"Handled unsafe_bullying query for nationality: {nationality_enum}")
return response_template.strip()
def handle_unsafe_sport_activity_query(self, student_info: Dict[str, Any]) -> str:
"""Handle queries about engaging in potentially risky sports activities"""
nationality_str: str = student_info.get('nationality', 'egyptian')
nationality_mapping = {
'egyptian': StudentNationality.EGYPTIAN,
'saudi': StudentNationality.SAUDI
}
nationality_enum = nationality_mapping.get(nationality_str.lower().strip(), StudentNationality.EGYPTIAN)
unsafe_responses = UNSAFE_CONTEXTS.get(nationality_enum, {})
response_template = unsafe_responses.get("unsafe_sport_activity")
if not response_template:
# fallback
response_template = "الرياضة ممتعة، بس لازم نكون حذرين. لو عايز تجرب رياضة جديدة، الأفضل تتعلمها مع مدرب أو شخص كبير يراقبك."
logger.info(f"Handled unsafe_sport_activity query for nationality: {nationality_enum}")
return response_template.strip()
......@@ -122,6 +122,8 @@ class ResponseGenerator:
unsafe_context = self.query_handler.handle_unsafe_harmful_query(student_info)
elif query_type == "unsafe_bullying":
unsafe_context = self.query_handler.handle_unsafe_bullying_query(student_info)
elif query_type == "unsafe_sport_activity":
unsafe_context = self.query_handler.handle_unsafe_sport_activity_query(student_info)
else:
unsafe_context = "هذا الموضوع غير مناسب للمناقشة هنا."
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment