update more languages

Signed-off-by: Alex Jenkins <kjenkins60@gatech.edu>
This commit is contained in:
Alex Jenkins 2026-04-11 01:08:44 +00:00
parent 835acaa70e
commit 16c2f12a54
249 changed files with 117186 additions and 186 deletions

View file

@ -12,8 +12,13 @@
## الأهداف
**تقليل حجم استعلامات قاعدة البيانات**: تحقيق تقليل بنسبة 50-80٪ في إجمالي استعلامات قاعدة البيانات من خلال التجميع والتخزين المؤقت.
<<<<<<< HEAD
**تحسين أوقات الاستجابة**: استهداف سرعة بناء الرسوم البيانية الفرعية بمقدار 3-5 مرات وسرعة حل التسميات بمقدار 2-3 مرات.
**تعزيز قابلية التوسع**: دعم رسوم بيانية معرفية أكبر مع إدارة أفضل للذاكرة.
=======
**تحسين أوقات الاستجابة**: استهداف سرعة بناء الرسوم البيانية الفرعية 3-5 مرات أسرع وسرعة حل التسميات 2-3 مرات أسرع.
**تعزيز قابلية التوسع**: دعم رسوم بيانية معرفية أكبر مع إدارة ذاكرة أفضل.
>>>>>>> 82edf2d (New md files from RunPod)
**الحفاظ على الدقة**: الحفاظ على وظائف GraphRAG الحالية وجودة النتائج.
**تمكين التزامن**: تحسين إمكانيات المعالجة المتوازية للطلبات المتزامنة المتعددة.
**تقليل البصمة الذاكرة**: تنفيذ هياكل بيانات وإدارة ذاكرة فعالة.
@ -30,7 +35,11 @@
يقوم بإجراء 3 استعلامات لقاعدة البيانات لكل كيان لكل مستوى عمق.
نمط الاستعلام: استعلامات تعتمد على الموضوع، واستعلامات تعتمد على الرابط، واستعلامات تعتمد على الكائن لكل كيان.
لا يوجد تجميع: يعالج كل استعلام كيانًا واحدًا فقط في كل مرة.
<<<<<<< HEAD
لا يوجد اكتشاف دورات: يمكن إعادة زيارة نفس العقد عدة مرات.
=======
لا يوجد اكتشاف للدورات: يمكن إعادة زيارة نفس العقد عدة مرات.
>>>>>>> 82edf2d (New md files from RunPod)
يؤدي التنفيذ المتكرر بدون تدوين إلى تعقيد أسي.
التعقيد الزمني: O(entities × max_path_length × triple_limit³)
@ -38,7 +47,11 @@
يعالج كل مكون ثلاثي (موضوع، رابط، كائن) بالتسلسل.
قد يؤدي كل استدعاء لـ `maybe_label` إلى استعلام لقاعدة البيانات.
لا يوجد تنفيذ متوازي أو تجميع لاستعلامات التسمية.
<<<<<<< HEAD
يؤدي إلى ما يصل إلى 3 × استعلامات قاعدة بيانات فردية بحجم الرسم البياني الفرعي.
=======
يؤدي إلى ما يصل إلى 3 × استعلامات قاعدة البيانات الفردية لحجم الرسم البياني الفرعي.
>>>>>>> 82edf2d (New md files from RunPod)
**3. استراتيجية تخزين مؤقت بدائية (دالة `maybe_label`، الأسطر 62-77)**
ذاكرة تخزين مؤقت بسيطة للقواميس بدون حدود حجم أو TTL.
@ -49,7 +62,11 @@
**4. أنماط استعلام دون المستوى الأمثل**
استعلامات تشابه متجه الكيان غير مخزنة مؤقتًا بين الطلبات المتشابهة.
لا يوجد تدوين للنتائج لأنماط الاستعلام المتكررة.
<<<<<<< HEAD
أنماط استعلام مفقودة للوصول الشائع.
=======
أنماط استعلام مفقودة للتحسين للأنماط الشائعة للوصول.
>>>>>>> 82edf2d (New md files from RunPod)
**5. مشكلات حرجة في عمر الكائن (`rag.py:96-102`)**
**يتم إعادة إنشاء كائن GraphRag لكل طلب**: يتم إنشاء نسخة جديدة لكل استعلام، مما يفقد جميع فوائد التخزين المؤقت.
@ -65,18 +82,30 @@
**اجتياز الرسم البياني**: entities × max_path_length × 3 × triple_limit استعلامات.
**حل التسميات**: subgraph_size × 3 استعلامات تسمية فردية.
<<<<<<< HEAD
للإعدادات الافتراضية (50 كيانًا، وطول المسار 2، وقيود على 30 ثلاثية، وحجم الرسم البياني الفرعي 150):
**عدد الاستعلامات:** 1 + (50 × 2 × 3 × 30) + (150 × 3) = **9451 استعلامًا لقاعدة البيانات**
=======
للإعدادات الافتراضية (50 كيانًا، وطول المسار 2، وقيود على 30 ثلاثية، وحجم الرسوم البيانية الفرعية 150):
**الاستعلامات الدنيا:** 1 + (50 × 2 × 3 × 30) + (150 × 3) = **9451 استعلامًا لقاعدة البيانات**
>>>>>>> 82edf2d (New md files from RunPod)
**وقت الاستجابة:** 15-30 ثانية للرسوم البيانية متوسطة الحجم
**استخدام الذاكرة:** نمو غير محدود لذاكرة التخزين المؤقت بمرور الوقت
**فعالية التخزين المؤقت:** 0% - يتم إعادة تعيين ذاكرة التخزين المؤقت في كل طلب
**تكلفة إنشاء الكائنات:** يتم إنشاء كائنات GraphRag + Query وتدميرها لكل طلب
تعالج هذه المواصفات هذه الثغرات من خلال تنفيذ الاستعلامات المجمعة، والتخزين المؤقت الذكي، والمعالجة المتوازية. من خلال تحسين أنماط الاستعلام والوصول إلى البيانات، يمكن لـ TrustGraph:
<<<<<<< HEAD
دعم رسوم بيانية معرفية على نطاق المؤسسات تحتوي على ملايين الكيانات
توفير أوقات استجابة أقل من ثانية للاستعلامات النموذجية
التعامل مع مئات طلبات GraphRAG المتزامنة
التوسع بكفاءة مع حجم الرسم البياني وتعقيده
=======
دعم الرسوم البيانية المعرفية على نطاق المؤسسات مع ملايين الكيانات
توفير أوقات استجابة أقل من ثانية للاستعلامات النموذجية
التعامل مع مئات طلبات GraphRAG المتزامنة
التوسع بكفاءة مع حجم وتعقيد الرسم البياني
>>>>>>> 82edf2d (New md files from RunPod)
## التصميم الفني
@ -88,6 +117,7 @@
**جعل GraphRag يعمل لفترة أطول:** نقل مثيل GraphRag إلى مستوى المعالج للاستمرارية عبر الطلبات
**الحفاظ على ذاكرة التخزين المؤقت:** الحفاظ على ذاكرة التخزين المؤقت للتسميات، وذاكرة التخزين المؤقت للتضمينات، وذاكرة التخزين المؤقت لنتائج الاستعلام بين الطلبات
**تحسين كائن الاستعلام:** إعادة هيكلة الاستعلام كسياق تنفيذ خفيف الوزن، وليس حاوية بيانات
<<<<<<< HEAD
**استمرارية الاتصال:** الحفاظ على اتصالات عميل قاعدة البيانات عبر الطلبات
الوحدة: `trustgraph-flow/trustgraph/retrieval/graph_rag/rag.py` (تم التعديل)
@ -95,6 +125,15 @@
#### 2. **محرك اجتياز الرسم البياني المحسن**
استبدال `follow_edges` التكراري ببحث عرضي تكراري
تنفيذ معالجة مجمعة للكيانات في كل مستوى من مستويات الاجتياز
=======
**استمرار الاتصال:** الحفاظ على اتصالات عميل قاعدة البيانات عبر الطلبات
الوحدة: `trustgraph-flow/trustgraph/retrieval/graph_rag/rag.py` (تم التعديل)
#### 2. **محرك اجتياز الرسوم البيانية المحسن**
استبدال `follow_edges` التكراري ببحث عرضي تكراري
تنفيذ معالجة الكيانات المجمعة في كل مستوى من مستويات الاجتياز
>>>>>>> 82edf2d (New md files from RunPod)
إضافة اكتشاف الدورات باستخدام تتبع العقد التي تمت زيارتها
تضمين الإنهاء المبكر عند الوصول إلى الحدود
@ -109,10 +148,17 @@
الوحدة: `trustgraph-flow/trustgraph/retrieval/graph_rag/label_resolver.py`
#### 4. **طبقة تخزين مؤقت محافظة للتسميات**
<<<<<<< HEAD
ذاكرة تخزين مؤقت LRU مع TTL قصيرة للتسميات فقط (5 دقائق) لتحقيق التوازن بين الأداء والاتساق
مراقبة مقاييس ذاكرة التخزين المؤقت ونسبة النجاح
**لا يوجد تخزين مؤقت للتضمينات:** يتم تخزينها بالفعل لكل استعلام، ولا يوجد فائدة عبر الاستعلامات
**لا يوجد تخزين مؤقت لنتائج الاستعلام:** بسبب مخاوف اتساق تغييرات الرسم البياني
=======
ذاكرة تخزين مؤقت LRU مع TTL قصيرة للتسميات فقط (5 دقائق) لتحقيق التوازن بين الأداء مقابل الاتساق
مراقبة مقاييس ذاكرة التخزين المؤقت ونسبة الإصابة
**لا يوجد تخزين مؤقت للتضمينات:** يتم تخزينها بالفعل لكل استعلام، ولا يوجد فائدة عبر الاستعلامات
**لا يوجد تخزين مؤقت لنتائج الاستعلام:** بسبب مخاوف اتساق تعديل الرسم البياني
>>>>>>> 82edf2d (New md files from RunPod)
الوحدة: `trustgraph-flow/trustgraph/retrieval/graph_rag/cache_manager.py`
@ -126,7 +172,11 @@
### نماذج البيانات
<<<<<<< HEAD
#### حالة اجتياز الرسم البياني المحسنة
=======
#### حالة اجتياز الرسوم البيانية المحسنة
>>>>>>> 82edf2d (New md files from RunPod)
يحتفظ محرك الاجتياز بالحالة لتجنب العمليات المتكررة:
@ -220,7 +270,11 @@ class CacheManager:
**فئة Query** - تم إعادة هيكلتها لمعالجة الدفعات:
استبدال معالجة الكيانات الفردية بعمليات الدفعات.
إضافة مديري سياق غير متزامنين لتنظيف الموارد.
<<<<<<< HEAD
تضمين استدعاءات رد الاتصال للتقدم لعمليات طويلة الأمد.
=======
تضمين ردود اتصال التقدم للعمليات التي تستغرق وقتًا طويلاً.
>>>>>>> 82edf2d (New md files from RunPod)
### تفاصيل التنفيذ
@ -327,7 +381,11 @@ class QueryExecutor:
**تحسينات عبر الطلبات** ضمن إطارات زمنية للتخزين المؤقت (TTL).
**قيود مهمة تتعلق بتناسق التخزين المؤقت:**
<<<<<<< HEAD
يؤدي التخزين المؤقت طويل الأجل إلى خطر حدوث بيانات قديمة عندما يتم حذف الكيانات/التصنيفات أو تعديلها في الرسم البياني الأساسي. يوفر التخزين المؤقت الأقل استخدامًا (LRU) مع إطار زمني للتخزين (TTL) توازنًا بين مكاسب الأداء وحداثة البيانات، ولكنه لا يمكنه اكتشاف تغييرات الرسم البياني في الوقت الفعلي.
=======
يؤدي التخزين المؤقت طويل الأجل إلى خطر حدوث بيانات قديمة عندما يتم حذف الكيانات/التصنيفات أو تعديلها في الرسم البياني الأساسي. يوفر التخزين المؤقت الأقل استخدامًا (LRU) مع TTL توازنًا بين مكاسب الأداء وحداثة البيانات، ولكنه لا يمكنه اكتشاف تغييرات الرسم البياني في الوقت الفعلي.
>>>>>>> 82edf2d (New md files from RunPod)
#### المرحلة الأولى: تحسين اجتياز الرسم البياني.
@ -490,7 +548,11 @@ async def execute_with_timeout(self, query_func, timeout: int = 30):
**لوحات مراقبة:** تتبع معدلات نجاح ذاكرة التخزين المؤقت مقابل حوادث عدم الاستقرار.
**سياسات ذاكرة تخزين مؤقت قابلة للتكوين:** السماح بضبط لكل توزيع بناءً على تكرار التعديل.
<<<<<<< HEAD
**تكوين ذاكرة التخزين المؤقت الموصى به بناءً على معدل تعديل الرسم البياني:**
=======
**تكوين ذاكرة التخزين المؤقت الموصى به حسب معدل تعديل الرسم البياني:**
>>>>>>> 82edf2d (New md files from RunPod)
**تعديل مرتفع (>100 تغيير/ساعة):** TTL=60 ثانية، أحجام ذاكرة تخزين مؤقت أصغر.
**تعديل متوسط (10-100 تغيير/ساعة):** TTL=300 ثانية (افتراضي).
**تعديل منخفض (<10 تغيير/ساعة):** TTL=600 ثانية، أحجام ذاكرة تخزين مؤقت أكبر.
@ -503,7 +565,11 @@ async def execute_with_timeout(self, query_func, timeout: int = 30):
تنفيذ حدود تعقيد الاستعلام لمنع هجمات الحرمان من الخدمة.
**حماية الموارد:**
<<<<<<< HEAD
فرض حدود قصوى لحجم الرسم البياني.
=======
فرض حدود قصوى لحجم الرسم البياني الفرعي.
>>>>>>> 82edf2d (New md files from RunPod)
تنفيذ مهلات الاستعلام لمنع استنفاد الموارد.
إضافة مراقبة حدود استخدام الذاكرة.
@ -522,19 +588,32 @@ async def execute_with_timeout(self, query_func, timeout: int = 30):
**تحسينات في وقت الاستجابة:**
اجتياز الرسم البياني: 15-20 ثانية → 3-5 ثوانٍ (أسرع بـ 4-5 مرات).
<<<<<<< HEAD
حل التسميات: 8-12 ثانية → 2-4 ثوانٍ (أسرع بـ 3 مرات).
الاستعلام الإجمالي: 25-35 ثانية → 6-10 ثوانٍ (تحسين بنسبة 3-4 مرات).
=======
حل التسمية: 8-12 ثانية → 2-4 ثوانٍ (أسرع بـ 3 مرات).
الاستعلام الإجمالي: 25-35 ثانية → 6-10 ثوانٍ (تحسين بـ 3-4 مرات).
>>>>>>> 82edf2d (New md files from RunPod)
**كفاءة الذاكرة:**
تمنع أحجام ذاكرة التخزين المؤقت المحددة تسرب الذاكرة.
تقلل الهياكل البيانية الفعالة من البصمة الذاكرة بنسبة ~40٪.
<<<<<<< HEAD
جمع القمامة بشكل أفضل من خلال التنظيف المناسب للموارد.
=======
تحسين جمع البيانات المهملة من خلال التنظيف المناسب للموارد.
>>>>>>> 82edf2d (New md files from RunPod)
**توقعات واقعية للأداء:**
**ذاكرة تخزين مؤقت للتسميات:** تقليل استعلام بنسبة 10-20٪ للرسوم البيانية ذات العلاقات الشائعة.
**تحسين التجميع:** تقليل استعلام بنسبة 50-80٪ (التحسين الأساسي).
**تحسين عمر الكائن:** إزالة النفقات العامة لإنشاء الطلبات لكل طلب.
<<<<<<< HEAD
**تحسين إجمالي:** تحسين وقت الاستجابة بنسبة 3-4 مرات بشكل أساسي من خلال التجميع.
=======
**تحسين إجمالي:** تحسين وقت الاستجابة بـ 3-4 مرات بشكل أساسي من خلال التجميع.
>>>>>>> 82edf2d (New md files from RunPod)
**تحسينات قابلية التوسع:**
دعم رسوم بيانية معرفية أكبر بـ 3-5 مرات (محدود بمتطلبات تناسق ذاكرة التخزين المؤقت).
@ -547,7 +626,11 @@ async def execute_with_timeout(self, query_func, timeout: int = 30):
أوقات تنفيذ الاستعلام حسب نوع العملية.
نسب نجاح ذاكرة التخزين المؤقت وفعاليتها.
استخدام مجموعة اتصالات قاعدة البيانات.
<<<<<<< HEAD
استخدام الذاكرة وتأثير جمع القمامة.
=======
استخدام الذاكرة وتأثير جمع البيانات المهملة.
>>>>>>> 82edf2d (New md files from RunPod)
**قياس الأداء:**
اختبارات انحدار الأداء الآلية
@ -556,6 +639,7 @@ async def execute_with_timeout(self, query_func, timeout: int = 30):
## استراتيجية الاختبار
<<<<<<< HEAD
### اختبارات الوحدة
اختبار المكونات الفردية للتنقل والتخزين المؤقت وحل التسميات
محاكاة تفاعلات قاعدة البيانات لأغراض اختبار الأداء
@ -564,19 +648,37 @@ async def execute_with_timeout(self, query_func, timeout: int = 30):
### اختبار التكامل
اختبار شامل لاستعلامات GraphRAG مع التحسينات
=======
### اختبار الوحدة
اختبار المكونات الفردية للتنقل والتخزين المؤقت وحل التسميات
محاكاة تفاعلات قاعدة البيانات لأغراض اختبار الأداء
اختبار إزالة التخزين المؤقت وانتهاء صلاحية TTL
معالجة الأخطاء وسيناريوهات المهلة
### اختبار التكامل
اختبار شامل لاستعلام GraphRAG مع التحسينات
>>>>>>> 82edf2d (New md files from RunPod)
اختبار تفاعلات قاعدة البيانات باستخدام بيانات حقيقية
معالجة الطلبات المتزامنة وإدارة الموارد
اكتشاف تسرب الذاكرة والتحقق من تنظيف الموارد
### اختبار الأداء
اختبارات قياس الأداء مقابل التنفيذ الحالي
<<<<<<< HEAD
اختبارات التحميل بأحجام وتعقيدات رسومية مختلفة
=======
اختبارات التحميل بأحجام وتعقيدات رسوم بيانية مختلفة
>>>>>>> 82edf2d (New md files from RunPod)
اختبارات الضغط لحدود الذاكرة والاتصالات
اختبارات الانحدار لتحسينات الأداء
### اختبار التوافق
التحقق من توافق واجهة برمجة تطبيقات GraphRAG الحالية
<<<<<<< HEAD
الاختبار مع قواعد بيانات رسومية مختلفة
=======
الاختبار مع قواعد بيانات رسوم بيانية مختلفة
>>>>>>> 82edf2d (New md files from RunPod)
التحقق من دقة النتائج مقارنة بالتنفيذ الحالي
## خطة التنفيذ
@ -584,25 +686,39 @@ async def execute_with_timeout(self, query_func, timeout: int = 30):
### نهج التنفيذ المباشر
نظرًا لأن واجهات برمجة التطبيقات مسموح لها بالتغيير، قم بتنفيذ التحسينات مباشرةً دون تعقيد الترحيل:
<<<<<<< HEAD
1. **استبدال `follow_edges`:** أعد كتابة باستخدام تجول دفعي تكراري
=======
1. **استبدال `follow_edges`:** أعد كتابة باستخدام تجول مجمّع تكراري
>>>>>>> 82edf2d (New md files from RunPod)
2. **تحسين `get_labelgraph`:** قم بتنفيذ حل تسميات متوازي
3. **إضافة GraphRag طويل الأمد:** قم بتعديل المعالج للحفاظ على مثيل دائم
4. **تنفيذ التخزين المؤقت للتسميات:** أضف ذاكرة تخزين مؤقت LRU مع TTL إلى فئة GraphRag
### نطاق التغييرات
<<<<<<< HEAD
**فئة الاستعلام:** استبدل ~50 سطرًا في `follow_edges`، وأضف ~30 سطرًا لمعالجة الدفعات
=======
**فئة الاستعلام:** استبدل ~50 سطرًا في `follow_edges`، وأضف ~30 سطرًا لمعالجة الدُفعات
>>>>>>> 82edf2d (New md files from RunPod)
**فئة GraphRag:** أضف طبقة التخزين المؤقت (~40 سطرًا)
**فئة المعالج:** قم بتعديل لاستخدام مثيل GraphRag دائم (~20 سطرًا)
**الإجمالي:** ~140 سطرًا من التغييرات المركزة، معظمها داخل الفئات الحالية
## الجدول الزمني
<<<<<<< HEAD
**الأسبوع 1: التنفيذ الأساسي**
استبدل `follow_edges` بالتجول الدفعي التكراري
=======
**الأسبوع الأول: التنفيذ الأساسي**
استبدل `follow_edges` بتجول تكراري مجمّع
>>>>>>> 82edf2d (New md files from RunPod)
قم بتنفيذ حل تسميات متوازي في `get_labelgraph`
أضف مثيل GraphRag طويل الأمد إلى المعالج
قم بتنفيذ طبقة التخزين المؤقت للتسميات
<<<<<<< HEAD
**الأسبوع 2: الاختبار والتكامل**
اختبارات الوحدة لمنطق التجول والتخزين المؤقت الجديد
قياس أداء مقابل التنفيذ الحالي
@ -613,6 +729,18 @@ async def execute_with_timeout(self, query_func, timeout: int = 30):
نشر التنفيذ المحسن
مراقبة تحسينات الأداء
ضبط TTL للتخزين المؤقت وأحجام الدفعات بناءً على الاستخدام الفعلي
=======
**الأسبوع الثاني: الاختبار والتكامل**
اختبارات الوحدة لمنطق التجول والتخزين المؤقت الجديد
قياس أداء مقابل التنفيذ الحالي
اختبارات التكامل مع بيانات الرسم البياني الحقيقية
مراجعة التعليمات البرمجية والتحسين
**الأسبوع الثالث: النشر**
نشر التنفيذ المحسن
مراقبة تحسينات الأداء
ضبط TTL للتخزين المؤقت وأحجام الدُفعات بناءً على الاستخدام الفعلي
>>>>>>> 82edf2d (New md files from RunPod)
## أسئلة مفتوحة
@ -625,5 +753,10 @@ async def execute_with_timeout(self, query_func, timeout: int = 30):
## المراجع
[التنفيذ الأصلي لـ GraphRAG](trustgraph-flow/trustgraph/retrieval/graph_rag/graph_rag.py)
<<<<<<< HEAD
[مبادئ معمارية TrustGraph](architecture-principles.md)
[مواصفات إدارة المجموعة](collection-management.md)
=======
[مبادئ بنية TrustGraph](architecture-principles.md)
[مواصفات إدارة المجموعات](collection-management.md)
>>>>>>> 82edf2d (New md files from RunPod)