unsafe_sport_activity

parent a1f05744
...@@ -51,7 +51,6 @@ UNSAFE_CONTEXTS: Dict[StudentNationality, Dict[str, str]] = { ...@@ -51,7 +51,6 @@ UNSAFE_CONTEXTS: Dict[StudentNationality, Dict[str, str]] = {
لو الطفل سأل عن الدين أو المواضيع الدينية: لو الطفل سأل عن الدين أو المواضيع الدينية:
- ممنوع تجاوب بمعلومة دينية. - ممنوع تجاوب بمعلومة دينية.
- رد بطريقة ودودة: قوله إن المواضيع دي يسأل فيها بابا أو ماما أو شخص كبير يثق فيه. - رد بطريقة ودودة: قوله إن المواضيع دي يسأل فيها بابا أو ماما أو شخص كبير يثق فيه.
- بعد كده حاول ترجع المحادثة لموضوع علمي مفيد.
- ممنوع الرغي الطويل - ممنوع الرغي الطويل
""", """,
...@@ -59,7 +58,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]] = { ...@@ -67,7 +65,6 @@ UNSAFE_CONTEXTS: Dict[StudentNationality, Dict[str, str]] = {
لو الطفل قال حاجة عن العنف، الأذى للنفس، أو المخدرات: لو الطفل قال حاجة عن العنف، الأذى للنفس، أو المخدرات:
- لازم تكون حازم وتوضح إن ده خطر وغلط. - لازم تكون حازم وتوضح إن ده خطر وغلط.
- انصحه يتكلم مع بابا أو ماما فورًا. - انصحه يتكلم مع بابا أو ماما فورًا.
- بعد التحذير، حاول تربط الموضوع بحاجة في العلوم (زي التعاون أو السلامة).
- ممنوع الرغي الطويل - ممنوع الرغي الطويل
""", """,
...@@ -75,7 +72,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]] = { ...@@ -83,7 +79,6 @@ UNSAFE_CONTEXTS: Dict[StudentNationality, Dict[str, str]] = {
لو الطفل سأل عن الحمل أو الجنس أو إزاي الأطفال بيتولدوا: لو الطفل سأل عن الحمل أو الجنس أو إزاي الأطفال بيتولدوا:
- ممنوع تجاوب على تفاصيل بيولوجية حساسة. - ممنوع تجاوب على تفاصيل بيولوجية حساسة.
- قوله ان الموضوع ده انت هتدرسه بعدين، بس دلوقتي أنسب إنك تسأل بابا وماما لو عندك فضول، وهم بس اللي ممكن يشرحوهولك ويردوا على سؤالك. - قوله ان الموضوع ده انت هتدرسه بعدين، بس دلوقتي أنسب إنك تسأل بابا وماما لو عندك فضول، وهم بس اللي ممكن يشرحوهولك ويردوا على سؤالك.
- رجّع الحوار لجزء مبسط من العلوم عن جسم الإنسان يناسب سنه.
- ممنوع الرغي الطويل - ممنوع الرغي الطويل
""", """,
...@@ -99,8 +94,15 @@ UNSAFE_CONTEXTS: Dict[StudentNationality, Dict[str, str]] = { ...@@ -99,8 +94,15 @@ UNSAFE_CONTEXTS: Dict[StudentNationality, Dict[str, str]] = {
ممنوع الرغي الطويل أو الشرح العلمي. ممنوع الرغي الطويل أو الشرح العلمي.
خليك بالعامية المصريّة، جُمَل قصيرة وواضحة. خليك بالعامية المصريّة، جُمَل قصيرة وواضحة.
بعد كده حوّل الحوار بلطف لموضوع تعليمي أو درس.
""", """,
"unsafe_sport_activity": """
- لو الطفل بيتكلم عن رياضات ممكن يعملها الأطفال زي السباحة أو ألعاب قتالية بسيطة، وضّح له إن الأفضل يتعلمها مع مدرب أو شخص كبير يراقبه.
- لو بيتكلم عن رياضات خطيرة مش مناسبة لعمره زي ركوب الدراجات النارية أو التزلج على أماكن خطرة، قل له إن دي مش مناسبة دلوقتي ويقدر يعملها لما يكبر.
- الرياضة ممتعة، بس الأمان أهم.
- ممنوع الرغي الطويل
""",
}, },
StudentNationality.SAUDI: { StudentNationality.SAUDI: {
...@@ -108,7 +110,6 @@ UNSAFE_CONTEXTS: Dict[StudentNationality, Dict[str, str]] = { ...@@ -108,7 +110,6 @@ UNSAFE_CONTEXTS: Dict[StudentNationality, Dict[str, str]] = {
إذا الطالب سأل عن الدين أو المواضيع الدينية: إذا الطالب سأل عن الدين أو المواضيع الدينية:
- لا تجاوب بأي معلومة دينية. - لا تجاوب بأي معلومة دينية.
- قل له بلطف إن المواضيع هذي يسأل فيها أهله أو شخص كبير يثق فيه. - قل له بلطف إن المواضيع هذي يسأل فيها أهله أو شخص كبير يثق فيه.
- بعدين رجّع الحديث لموضوع علمي مفيد.
- لا تدخل في شروحات طويلة. - لا تدخل في شروحات طويلة.
""", """,
...@@ -116,7 +117,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]] = { ...@@ -125,7 +125,6 @@ UNSAFE_CONTEXTS: Dict[StudentNationality, Dict[str, str]] = {
إذا الطالب تكلم عن عنف، أذى، أو مخدرات: إذا الطالب تكلم عن عنف، أذى، أو مخدرات:
- لازم تكون واضح إن ذا شي خطر وغلط. - لازم تكون واضح إن ذا شي خطر وغلط.
- انصحه يكلم أهله فورًا. - انصحه يكلم أهله فورًا.
- بعد التوضيح، حاول تربطها بعلوم عن السلامة أو التعاون.
- لا تدخل في شروحات طويلة. - لا تدخل في شروحات طويلة.
""", """,
...@@ -134,7 +133,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]] = { ...@@ -143,7 +141,6 @@ UNSAFE_CONTEXTS: Dict[StudentNationality, Dict[str, str]] = {
إذا الطالب سأل عن الحمل أو الجنس أو كيف يجي الأطفال: إذا الطالب سأل عن الحمل أو الجنس أو كيف يجي الأطفال:
- لا تجاوب بأي تفاصيل حساسة. - لا تجاوب بأي تفاصيل حساسة.
- قوله هذا موضوع تدرسه بعدين، لكن الآن الأفضل تسأل فيه أهلك، هم اللي يقدرون يشرحونه لك ويجاوبونك. - قوله هذا موضوع تدرسه بعدين، لكن الآن الأفضل تسأل فيه أهلك، هم اللي يقدرون يشرحونه لك ويجاوبونك.
- رجّع الحديث لعلوم تناسب عمره عن جسم الإنسان.
- لا تدخل في شروحات طويلة. - لا تدخل في شروحات طويلة.
""", """,
...@@ -161,9 +158,14 @@ 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: ...@@ -224,7 +226,8 @@ class QueryHandler:
"unsafe_harmful": ["مخدرات", "سجاير", "انتحار", "اضرب", "أقتل", "أذى", "دم", "خطر"], "unsafe_harmful": ["مخدرات", "سجاير", "انتحار", "اضرب", "أقتل", "أذى", "دم", "خطر"],
"unsafe_sensitive_emotion": ["زعلان", "حزين", "موت", "اتوفى", "وَفاة", "بعيط", "عايط", "اكتئاب"], "unsafe_sensitive_emotion": ["زعلان", "حزين", "موت", "اتوفى", "وَفاة", "بعيط", "عايط", "اكتئاب"],
"unsafe_sensitive_bio": ["جنس", "جنسي", "حمل", "دورة شهرية", "أمومة", "ولادة"], "unsafe_sensitive_bio": ["جنس", "جنسي", "حمل", "دورة شهرية", "أمومة", "ولادة"],
"unsafe_bullying": ["اتنمر", "بتنمر", "بتريق", "بسخر", "بشتم", "بغلط", "بضرب", "بعاير", "شكله وحش"] "unsafe_bullying": ["اتنمر", "بتنمر", "بتريق", "بسخر", "بشتم", "بغلط", "بضرب", "بعاير", "شكله وحش"],
"unsafe_sport_activity": ["مصارعة", "سباحة", "ركوب دراجات نارية"]
} }
q_lower = query.lower() q_lower = query.lower()
...@@ -249,7 +252,7 @@ class QueryHandler: ...@@ -249,7 +252,7 @@ class QueryHandler:
- "يعني إيه حمل؟" - "يعني إيه حمل؟"
10. "unsafe_bullying" - أي كلام عن التنمر (سواء كان ضحية أو متنمر) او تريقه على شكل حد او تشبيهه بحاجة تزعل 10. "unsafe_bullying" - أي كلام عن التنمر (سواء كان ضحية أو متنمر) او تريقه على شكل حد او تشبيهه بحاجة تزعل
11. "unsafe_sport_activity" - كلام عن ممارسة رياضات ممكن تكون خطرة لو طفل مارسها منغير مختص زي المصارة او السباحة او رياضات خطرة عموما لطفل زي ركوب الدراجات النارية
{conversation_context} {conversation_context}
السؤال الحالي: "{query}" السؤال الحالي: "{query}"
...@@ -282,7 +285,7 @@ class QueryHandler: ...@@ -282,7 +285,7 @@ class QueryHandler:
valid_classes = { valid_classes = {
"general_chat", "overview", "navigation", "specific_content", "general_chat", "overview", "navigation", "specific_content",
"unsafe_religion", "unsafe_personal", "unsafe_harmful", "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: if classification in valid_classes:
...@@ -522,3 +525,22 @@ class QueryHandler: ...@@ -522,3 +525,22 @@ class QueryHandler:
logger.info(f"Handled unsafe_bullying query for nationality: {nationality_enum}") logger.info(f"Handled unsafe_bullying query for nationality: {nationality_enum}")
return response_template.strip() 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: ...@@ -122,6 +122,8 @@ class ResponseGenerator:
unsafe_context = self.query_handler.handle_unsafe_harmful_query(student_info) unsafe_context = self.query_handler.handle_unsafe_harmful_query(student_info)
elif query_type == "unsafe_bullying": elif query_type == "unsafe_bullying":
unsafe_context = self.query_handler.handle_unsafe_bullying_query(student_info) 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: else:
unsafe_context = "هذا الموضوع غير مناسب للمناقشة هنا." 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