دليل قاعدة FUZZY_MAP¶
## تنسيق القاعدة
('replacement', r'regex_pattern', threshold, {'command_flags': re.IGNORECASE})
| الموقف | الاسم | الوصف |
|---|---|---|
| 1 | استبدال | النص الناتج بعد القاعدة يطابق |
| 2 | نمط | Regex أو سلسلة غامضة للمطابقة مع |
| 3 | العتبة | بالنسبة لقواعد regex: تم التجاهل. بالنسبة للقواعد الغامضة: الحد الأدنى من نقاط المباراة (0–100) |
| 4 | خيارات | قاموس اختياري (راجع “مرجع الخيارات” أدناه). استخدم 0 أو احذف الإعدادات الافتراضية |
### البدائل القائمة على الملفات
إذا كان “الاستبدال” يبدأ ببادئة تم تكوينها في “FILE4REPLACEMENT_ALLOWED_PREFIXES”
(الافتراضي: - أو .)، تتعامل معه Aura كاسم ملف وتبحث عن محتواه في ملف
دليل البرنامج المساعد بدلا من استخدام السلسلة الحرفية. هذا يحافظ على الأسرار (كلمات المرور،
مفاتيح API) خارج التعليمات البرمجية المصدر.
راجع File_Based_Replacement.md للحصول على التفاصيل.
### البدائل الخام
افتراضيًا (False)، تتم معالجة السلاسل البديلة بواسطة re.sub() في Python، والذي يدعم استخدام المراجع الخلفية للتعبيرات العادية مثل \1 أو \2 لإدراج المجموعات الملتقطة (على سبيل المثال: (r\'\1', r'(\d)\s+(?=\d)', 95)).
إذا كان البديل الخاص بك عبارة عن سلسلة متعددة الأسطر أو يحتوي على خطوط مائلة عكسية غير قابلة للإلغاء (مثل قوالب التعليمات البرمجية أو المسارات) ويجب الحفاظ عليه تمامًا كما هو، فقم بتمكين \'raw_replacement': True في قاموس الخيارات:
(System_Instructions, r'^(system instructions)$', 10, {'command_flags': re.IGNORECASE, 'raw_replacement': True})
الخيارات المتاحة القابلة للتكوين من قبل المستخدم:¶
command_flags(عدد صحيح): إشارات Regex المستخدمة أثناء تجميع الأنماط. مثال:{\'command_flags': re.IGNORECASE}raw_replacement(منطقي): عندما يكونTrue، تتم معاملة النص البديل كسلسلة حرفية خالصة ويتم تجاوزه بواسطة تحليل الشرطة المائلة العكسيةre.subفي بايثون. ضروري للمطالبات متعددة الأسطر أو السلاسل التي تحتوي على خطوط مائلة عكسية غير قابلة للإلغاء (\). مثال:{\'raw_replacement': صحيح}ذاكرة التخزين المؤقت(منطقية): لتبديل ذاكرة التخزين المؤقت لنتائج AURA. اضبط على “False” للقواعد التي تولد مخرجات ديناميكية (على سبيل المثال، الوقت الحالي، النكات العشوائية) لضمان تقييمها حديثًا في كل مباراة. مثال:{\'ذاكرة التخزين المؤقت': خطأ}skip_list(قائمة السلاسل): تحدد وحدات خطوط أنابيب ما بعد المعالجة التي سيتم تخطيها عندما تتطابق هذه القاعدة. مثال:{\'skip_list': ['LanguageTool']}(يتخطى التدقيق النحوي)only_in_windows(قائمة سلاسل التعبير العادي): يقيد القاعدة ليتم تشغيلها فقط إذا كان عنوان النافذة النشطة يتطابق مع أحد الأنماط المحددة. مثال:{\'only_in_windows': [r'^Mozilla Firefox$', r'Chrome']}exclude_windows(قائمة سلاسل التعبير العادي): يمنع تشغيل القاعدة إذا كان عنوان النافذة النشطة يطابق أحد الأنماط المحددة. مثال:{\'exclude_windows': [r'Terminal', r'Claude']}window_ignore_case(منطقي): يتحكم فيما إذا كانت مطابقة النوافذ (فقط_في_النوافذ/استبعاد_النوافذ) يتم تقييمها بشكل غير حساس لحالة الأحرف (True) أو حساس لحالة الأحرف (False). إذا تم حذفه، فسيتم الرجوع إلى الإعداد العامLOWERCASE_WINDOW_TITLESفيconfig/settings.py. مثال:{\'window_ignore_case': False}on_match_exec(قائمة كائنات المسار/السلسلة): المسارات إلى البرامج النصية/المكونات الإضافية التي يجب تنفيذها عندما تتطابق هذه القاعدة (يتم استخدامها بشكل كبير بواسطة قواعد التقاط الكل والقواعد الاحتياطية). مثال:{\'on_match_exec': [SL5NET_AURA_PROJECT_ROOT / 'scripts' / 'custom_action.py']}## منطق خط الأنابيب
تتم معالجة القواعد ** من أعلى إلى أسفل **
## منطق خط الأنابيب
تتم معالجة القواعد ** من أعلى إلى أسفل **
كل ** يتم تطبيق قواعد المطابقة (تراكمية) - fullmatch (
^...$) يوقف التدفق على الفورالقواعد السابقة لها الأولوية على القواعد اللاحقة
## الأنماط الشائعة ### مطابقة كلمة واحدة (حدود الكلمة)
('Python', r'\bpython\b', 0, {'command_flags': re.IGNORECASE})
### مطابقة متغيرات متعددة
('OpenAI', r'\bopen\s*ai\b', 0, {'command_flags': re.IGNORECASE})
### Fullmatch – يوقف خط الأنابيب
('hello koan', r'^.*$', 0, {'command_flags': re.IGNORECASE})
⚠️ هذا يطابق كل شيء. يتوقف خط الأنابيب هنا. القواعد السابقة لا تزال لها الأولوية.
### مطابقة بداية الإدخال
('Note: ', r'^notiz\b', 0, {'command_flags': re.IGNORECASE})
### تطابق العبارة بالضبط
('New York', r'\bnew york\b', 0, {'command_flags': re.IGNORECASE})
## مواقع الملفات
| ملف | المرحلة | الوصف |
|---|---|---|
| FUZZY_MAP_pre.py | أداة ما قبل اللغة | يتم تطبيقه قبل التدقيق الإملائي |
| FUZZY_MAP.py | أداة ما بعد اللغة | يتم تطبيقه بعد التدقيق الإملائي |
| PUNCTUATION_MAP.py | أداة ما قبل اللغة | قواعد الترقيم |
## نصائح
ضع القواعد المحددة قبل القواعد العامة
استخدم
^...$التطابق الكامل فقط عندما تريد إيقاف كافة عمليات المعالجة الإضافيةيعتبر
FUZZY_MAP_pre.pyمثاليًا لإجراء التصحيحات قبل التدقيق الإملائياختبار القواعد باستخدام: هذا هو إدخال الاختبار الخاص بك في وحدة تحكم Aura
يتم إنشاء النسخ الاحتياطية تلقائيًا باسم “.peter_backup”.
## أمثلة
FUZZY_MAP_pre = [
# Correct a common STT mistake
('Raspberry Pi', r'\braspberry\s*pie?\b', 0, {'command_flags': re.IGNORECASE}),
# Expand abbreviation
('zum Beispiel', r'\bzb\b', 0, {'command_flags': re.IGNORECASE}),
# Stop pipeline for testing
# ('test koan', r'^.*$', 0, {'command_flags': re.IGNORECASE}),
]
## قاعدتك الأولى – خطوة بخطوة
1. افتح `config/maps/plugins/sandbox/de-DE/FUZZY_MAP_pre.py`
أضف القاعدة الخاصة بك داخل
FUZZY_MAP_pre = [...]حفظ — يتم إعادة تحميل Aura تلقائيًا، دون الحاجة إلى إعادة التشغيل
قم بإملاء عبارة التشغيل الخاصة بك وشاهدها وهي تنطلق
## هيكل الملف الموصى به ضع قواعدك **قبل** كتل التعليقات الطويلة:
# config/maps/plugins/sandbox/de-DE/FUZZY_MAP_pre.py
import re # noqa: F401
# too<-from
FUZZY_MAP_pre = [
('My Rule', r'my rule', 0, {'command_flags': re.IGNORECASE}),
]
# ============================================================
# Longer explanations, task descriptions, notes...
# can be as long as needed — they go AFTER the rules.
# ============================================================
لماذا؟ يقوم الإصلاح التلقائي لـ Aura بمسح أول ~ 1 كيلو بايت فقط من الملف. إذا ظهرت قواعدك بعد رأسية طويلة، فلن يتمكن الإصلاح التلقائي من العثور عليها أو إصلاحها. يوصى أيضًا بتعليق المسار في السطر 1، فهو يساعد الأشخاص على التعرف على الملف بسرعة.