Spaces:
Sleeping
Sleeping
| """ | |
| الوحدة: التحقق من صلاحية الاستعلام (Query Validation) | |
| الدور: رفض الاستعلامات غير الصالحة (قصيرة جداً، بلا حروف عربية، أو | |
| نسبة حروف عربية منخفضة) قبل أي معالجة لاحقة. | |
| يُستدعى فقط عبر app/orchestrator.py | |
| """ | |
| from __future__ import annotations | |
| def validate_query(query: str) -> tuple[bool, str]: | |
| """ | |
| يتحقق من صلاحية الاستعلام قبل معالجته. | |
| المخرجات: | |
| (True, "") ← الاستعلام صالح، أكمل المعالجة | |
| (False, "رسالة خطأ") ← الاستعلام غير صالح، أوقف وأظهر الرسالة | |
| """ | |
| if len(query.strip()) < 2: | |
| return False, "الاستعلام قصير جداً، يرجى كتابة كلمة أو تعريف" | |
| arabic_count = sum(1 for c in query if 0x0600 <= ord(c) <= 0x06FF) | |
| if arabic_count == 0: | |
| return False, "يرجى الكتابة باللغة العربية" | |
| arabic_letters = sum( | |
| 1 for c in query if ("ء" <= c <= "ي") or ("ً" <= c <= "ٟ") | |
| ) | |
| non_space = [c for c in query if not c.isspace()] | |
| if non_space and arabic_letters / len(non_space) < 0.50: | |
| return False, "يرجى كتابة كلمة أو تعريف عربي واضح" | |
| return True, "" | |