اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

تقصد مجال GraphRAG وللتوضيح هو مجال حديث ظهر بقوة في أخر عام، ولذلك المصادر التعليمية الممنهجة له قليلة، ومعظمها عبارة عن أوراق بحثية أو مقالات تقنية متناثرة.

في البداية تحتاج إلى استيعاب أساسيات Graph Database وهي فهم يتم تخزين البيانات في الـ Graph أصلاً، وهو يتكون من شيئين فقط:

  1. Nodes العقد، وهي الكيانات مثل يزيد، شركة جوجل، كتاب.
  2. Relationships و Edges أي العلاقات وهي الروابط بين العقد مثل يزيد يعمل في جوجل.

ويوجد Properties وهي خصائص داخل العقدة أو العلاقة.

ومثلما يوجد SQL لقواعد البيانات العادية، فيوجد لغة تسمى Cypher لقواعد بيانات الـ Graph وتحديداً Neo4j، وهي لغة سهلة  تشبه الرسم.

أنصحك بالتعلم من خلال المصدر الرسمي المجاني وهو:

ثم الإنتقال للمستوى المتوسط لتتعلم  كيف تعمل على نص غير مهيكل وتحوله إلى Nodes و Relationships وذلك من خلال بايثون:

ثم الإنتقال للمستوى المتقدم:

  • 0
نشر

وعليكم السلام ورحمة الله وبركاته،

أولا ال Graph هو هيكل بيانات يستخدم لتمثيل العلاقات والارتباطات بين الأشياء أو الكيانات المختلفة على شكل عقد (Nodes) وروابط (Edges) ويستخدم في مجالات متعددة مثل شبكات التواصل الاجتماعي، تحليل البيانات، الذكاء الاصطناعي وغيرها أما ال ragGraph فهو تقنية متقدمة تستخدم الرسوم البيانية (Graphs) لتحسين استرجاع المعلومات عن طريق ربط بيانات مترابطة في knowledge graphs ومن ثم استخدام هذه المعرفة الموسعة لتعزيز نتائج البحث أو التحليل.

ما أنصحك به هو تعلم التقنية من مصادرها الرسمية من هنا:

  • 0
نشر
بتاريخ 2 ساعة قال يزيد بن شيحه:

ولكن كيف طريقة ربط LLMs  مع قاعدة البيانات 

إن ربط LLMs مع قواعد البيانات يتم عبر عدة طرق ويعتمد على ما تريد فعله:

  • فمثلا هل تريد أن يقرأ الـ LLM البيانات من قاعدة البيانات.
  • أو هل تريد أن يولد استعلامات SQL.
  • أو هل تريد RAG (استرجاع معلومات).
  • أو هل تريد ذكاء اصطناعي فوق قاعدة البيانات مثل natural language queries .

وبما أن سؤالك عن ال RAG سأوضح لك كيف ذلك .

إن ربط LLM مع قاعدة البيانات عبر RAG مناسب لو لديك بيانات غير مهيكلة مثل النصوص أو وصف منتجات أو  ملفات PDF  أو وثائق.

والربط بين نماذج اللغة الكبيرة (LLMs) وقواعد البيانات باستخدام تقنية التوليد المعزز بالاسترجاع (RAG) يتم عبر عمليتين رئيسيتين: أولا تحويل البيانات الخارجية الموجودة في قاعدة البيانات إلى تمثيلات عددية (vectors or embeddings) وتخزن في قاعدة بيانات متجهية ثم عند استلام سؤال أو استعلام من المستخدم يتم تحويله أيضا إلى تمثيلات عددية تستخدم للبحث في قاعدة البيانات لإيجاد المعلومات الأكثر صلة.

وبعد إيجاد النتائج ذات الصلة يتم دمج هذه البيانات المسترجعة مع الاستعلام الأصلي وإعطائها لنموذج اللغة الكبير مما يزيد دقة وصحة الإجابات ويقلل من الأخطاء الناتجة عن الهلوسة اللغوية. 

ولتنفيذ ذلك يجب إتباع الخطوات التالية :

  1. أولا نأخذ النصوص من قاعدة البيانات.
  2. ثم نقوم بتحويلها إلى embeddings (متجهات).
  3. نقوم بحفظ المتجهات في Vector DB مثل:
    • Pinecone
    • Weaviate
    • Chroma
    • MongoDB Atlas Vector Search
  4. بعد ذلك المستخدم يقوم بطرح السؤال.
  5. نقوم بجعل التطبيق يبحث عن المعلومات الأقرب باستخدام ال embeddings.
  6. وأخيرا نرسل النتائج لل LLM كي يشكل الإجابة.

وإليك المصادر التالية :

  • 0
نشر
بتاريخ On 4‏/12‏/2025 at 13:18 قال محمد_عاطف:

إن ربط LLMs مع قواعد البيانات يتم عبر عدة طرق ويعتمد على ما تريد فعله:

  • فمثلا هل تريد أن يقرأ الـ LLM البيانات من قاعدة البيانات.
  • أو هل تريد أن يولد استعلامات SQL.
  • أو هل تريد RAG (استرجاع معلومات).
  • أو هل تريد ذكاء اصطناعي فوق قاعدة البيانات مثل natural language queries .

وبما أن سؤالك عن ال RAG سأوضح لك كيف ذلك .

إن ربط LLM مع قاعدة البيانات عبر RAG مناسب لو لديك بيانات غير مهيكلة مثل النصوص أو وصف منتجات أو  ملفات PDF  أو وثائق.

والربط بين نماذج اللغة الكبيرة (LLMs) وقواعد البيانات باستخدام تقنية التوليد المعزز بالاسترجاع (RAG) يتم عبر عمليتين رئيسيتين: أولا تحويل البيانات الخارجية الموجودة في قاعدة البيانات إلى تمثيلات عددية (vectors or embeddings) وتخزن في قاعدة بيانات متجهية ثم عند استلام سؤال أو استعلام من المستخدم يتم تحويله أيضا إلى تمثيلات عددية تستخدم للبحث في قاعدة البيانات لإيجاد المعلومات الأكثر صلة.

وبعد إيجاد النتائج ذات الصلة يتم دمج هذه البيانات المسترجعة مع الاستعلام الأصلي وإعطائها لنموذج اللغة الكبير مما يزيد دقة وصحة الإجابات ويقلل من الأخطاء الناتجة عن الهلوسة اللغوية. 

ولتنفيذ ذلك يجب إتباع الخطوات التالية :

  1. أولا نأخذ النصوص من قاعدة البيانات.
  2. ثم نقوم بتحويلها إلى embeddings (متجهات).
  3. نقوم بحفظ المتجهات في Vector DB مثل:
    • Pinecone
    • Weaviate
    • Chroma
    • MongoDB Atlas Vector Search
  4. بعد ذلك المستخدم يقوم بطرح السؤال.
  5. نقوم بجعل التطبيق يبحث عن المعلومات الأقرب باستخدام ال embeddings.
  6. وأخيرا نرسل النتائج لل LLM كي يشكل الإجابة.

وإليك المصادر التالية :

لا اقصد GRAPHRAG وليس RAG العادي

  • 0
نشر

أولاً: كيف تربط LLM بقاعدة بيانات؟

هناك 3 طرق رئيسية، حسب ما تريد فعله:

1) ربط مباشر (Natural Language → SQL)

تستخدم LLM لتحويل سؤال المستخدم إلى SQL، ثم تنفّذ SQL على قاعدة البيانات.

مثال بايثون:

query = llm.generate("كم عدد العملاء في 2023؟ اكتب SQL فقط") rows = db.execute(query)

المناسب: الاستعلامات العددية والتحليلية.

2) استخدام Connectors جاهزة

مثل:

LangChain SQLDatabaseChain

LlamaIndex SQL Retriever

تعطي LLM القدرة على فهم مخطط قاعدة البيانات (schema) ثم توليد SQL آمن.

3) ربط عبر Graph (مهم لـ GRAPHRAG)

تقوم بتحويل البيانات إلى:
Entities → Relationships → Graph
ثم LLM يستعلم من الـ Graph بدلاً من SQL.

هذا هو الأساس الذي يستخدمه GRAPHRAG.

ثانياً: كيف تربط LLM مع GRAPHRAG؟

العملية بسيطة ومكونة من 3 أجزاء:

1) بناء الـ Graph من البيانات

بعد تركيب GRAPHRAG:

graphrag init project graphrag run

هذا يحول النصوص أو الجداول إلى:
كيانات – علاقات – مجتمعات – Graph.

2) تشغيل محرك الاستعلام (LLM + Graph)

بعد البناء:

graphrag chat

أو باستخدام Python:

from graphrag import GraphRAG engine = GraphRAG("myproject") engine.query("ما العلاقة بين المنتج X والمبيعات؟")

الـ LLM هنا لا يتعامل مع النص الخام، بل مع:
Graph + Summaries + Context Hierarchy.

ثالثاً: الطريق الواضح لتعلّم GRAPHRAG 

الخطوات:

شغّل GRAPHRAG على بيانات بسيطة

افهم الملفات:

config.yaml

pipeline.yaml

model_config.yaml

جرّب استعلامات بسيطة

عدّل إعدادات استخراج الكيانات والعلاقات

جرّبه على قاعدة بيانات حقيقية:
استخرج البيانات → حولها إلى نص/JSON → أدخلها لـ GRAPHRAG

اربطه بتطبيق (API – n8n – Streamlit)

  • 0
نشر
بتاريخ 10 ساعة قال Sherif Aboghazala:

أولاً: كيف تربط LLM بقاعدة بيانات؟

هناك 3 طرق رئيسية، حسب ما تريد فعله:

1) ربط مباشر (Natural Language → SQL)

تستخدم LLM لتحويل سؤال المستخدم إلى SQL، ثم تنفّذ SQL على قاعدة البيانات.

مثال بايثون:

query = llm.generate("كم عدد العملاء في 2023؟ اكتب SQL فقط") rows = db.execute(query)

المناسب: الاستعلامات العددية والتحليلية.

2) استخدام Connectors جاهزة

مثل:

LangChain SQLDatabaseChain

LlamaIndex SQL Retriever

تعطي LLM القدرة على فهم مخطط قاعدة البيانات (schema) ثم توليد SQL آمن.

3) ربط عبر Graph (مهم لـ GRAPHRAG)

تقوم بتحويل البيانات إلى:
Entities → Relationships → Graph
ثم LLM يستعلم من الـ Graph بدلاً من SQL.

هذا هو الأساس الذي يستخدمه GRAPHRAG.

ثانياً: كيف تربط LLM مع GRAPHRAG؟

العملية بسيطة ومكونة من 3 أجزاء:

1) بناء الـ Graph من البيانات

بعد تركيب GRAPHRAG:

graphrag init project graphrag run

هذا يحول النصوص أو الجداول إلى:
كيانات – علاقات – مجتمعات – Graph.

2) تشغيل محرك الاستعلام (LLM + Graph)

بعد البناء:

graphrag chat

أو باستخدام Python:

from graphrag import GraphRAG engine = GraphRAG("myproject") engine.query("ما العلاقة بين المنتج X والمبيعات؟")

الـ LLM هنا لا يتعامل مع النص الخام، بل مع:
Graph + Summaries + Context Hierarchy.

ثالثاً: الطريق الواضح لتعلّم GRAPHRAG 

الخطوات:

شغّل GRAPHRAG على بيانات بسيطة

افهم الملفات:

config.yaml

pipeline.yaml

model_config.yaml

جرّب استعلامات بسيطة

عدّل إعدادات استخراج الكيانات والعلاقات

جرّبه على قاعدة بيانات حقيقية:
استخرج البيانات → حولها إلى نص/JSON → أدخلها لـ GRAPHRAG

اربطه بتطبيق (API – n8n – Streamlit)

لدي بيانات خاصة والمشكلة التي تواجهني انها حجمها كبير ولا استطيع اعطاءها النماذج المفتوحة كـ Gemini or gpt

وكذلك لو بحمل اي نموذج لغوي دقته سيئه للاسف

 

هل يوجد طرق اخرى ممكن تفيدني ؟؟ 

 

او تسهل العمليه ؟

  • 0
نشر
بتاريخ 10 ساعة قال يزيد بن شيحه:

لدي بيانات خاصة والمشكلة التي تواجهني انها حجمها كبير ولا استطيع اعطاءها النماذج المفتوحة كـ Gemini or gpt

وكذلك لو بحمل اي نموذج لغوي دقته سيئه للاسف

 

هل يوجد طرق اخرى ممكن تفيدني ؟؟ 

 

او تسهل العمليه ؟

نعم، يوجد حلول حقيقية وعملية تستطيع استخدامها عندما تكون بياناتك حساسة وكبيرة ولا يمكنك إرسالها إلى نماذج سحابية مثل GPT أو Gemini، وفي نفس الوقت النماذج المحلية ضعيفة.
هذه بالضبط مشكلة شائعة في الشركات التي تعمل على GraphRAG.

إليك أفضل الخيارات الآمنة والعملية بدون تعقيد:

1) استخدام LLM سحابي لكن بدون إرسال البيانات (Zero-Data / On-Device Processing)

بعض الشركات بدأت توفر وضع اسمه:
Zero-data mode
أو
Data Minimization

الفكرة:
ترسل دائماً ملخصات صغيرة جداً آمنة وليس البيانات الأصلية.

وهذا يناسب GRAPHRAG تماماً، لأنك تستطيع:

  • معالجة بياناتك محلياً
  • بناء الكيانات والعلاقات بالـ locally
  • إرسال فقط “تمثيل مجرد” للكيانات (بدون نص خام)

مثال:
بدلاً من إرسال تقرير حساس، ترسل فقط:

اسم كيان: "Client A"

علاقة: "Increased sales by 30%"

بدون أي تفاصيل سرية.

2) استخدام نماذج صغيرة محلياً لكن تحسينها باستخدام تقنيات خاصة

الحقائق الآن:
النماذج الصغيرة (مثل Mistral 7B، Llama 8B، Qwen 7B)
عندما تعمل بدون تحسين تكون فعلاً ضعيفة.

لكن هناك تحسينات ترفع الجودة بشكل كبير جداً بدون تدريب مكلف:

1) RAG + GraphRAG

يعوض ضعف النموذج المحلي بنسبة كبيرة.

2) Fine-Tuning خفيف (LoRA)

يكلفك:

ذاكرة 8GB

تدريب لمدة ساعة
ويعطي دقة أعلى بكثير.

3) استخدام quantization

مثل GGUF أو GPTQ
لتشغيل نماذج 8B على جهاز متوسط بدون فقد كبير في الجودة.

3) استخدام نماذج متخصصة بدلاً من "LLM عام"

غالباً المشكلة ليست في الحجم،
بل في اختيار نموذج غير مناسب.

أمثلة قوية:

  • DeepSeek-R1 Distill 14B
  • Qwen2.5 14B
  • Mixtral 8x7B
  • Llama 3.1 8B Instruct
  • Phi-3 Medium (جيد جداً على المعلومات المنظمة)

هذه النماذج حجمها متوسط وأداؤها ممتاز إذا تم دمجها مع RAG/GraphRAG.

4) معالجة البيانات الضخمة محلياً ثم استخدام LLM فقط للبنية

إذا بياناتك كبيرة جداً، لا ترسلها للنموذج.

بدلاً من ذلك:

  • Local Preprocessing
  • استخراج الكيانات والعلاقات محلياً
  • بناء Graph
  • دمج النصوص وفهرستها
  • Remote Small Tasks

إرسال:

  • سؤال
  • أسماء كيانات
  • توصيفات صغيرة
  • وليس البيانات الأصلية.
  • هذا يجعل النظام آمناً 100%.

5) استخدام LLM داخل بيئة سحابية خاصة (Private Cloud)

ليس بالضرورة أن تستخدم خدمات عامة مثل GPT.

يمكنك استخدام:

  • Azure OpenAI Private Network
  • Google Vertex AI Private Service
  • AWS Bedrock PrivateLink

هذه تضمن:

  • البيانات لا تخرج من شبكتك
  • لا تُستخدم لتدريب النماذج
  • تشغل فقط inference
  • مناسبة جداً للبيانات الحساسة.

6) بالنسبة لـ GraphRAG بالتحديد

هو لا يحتاج LLM قوي جداً في كل خطوة.

يوجد 3 مراحل:

  1. استخراج الكيانات والعلاقات
  2. بناء المجتمعات
  3. تلخيص hierarchies

الاستعلام النهائي

يمكنك تقسيم العمل كالآتي:

  • 1 و2 محلياً بالكامل (بدون نموذج قوي)
  • 3 بنموذج متوسط محلي
  • 4 بنموذج سحابي بدون إرسال بيانات حساسة (فقط السياق المختصر)

وبذلك تحل المشكلة تماماً.

لذا الخلاصه نعم، يمكنك العمل على بياناتك الحساسة بدون إرسالها إلى نماذج سحابية،
وما زال بإمكانك الحصول على دقة ممتازة عبر:

GraphRAG

Local preprocessing

تحسين النماذج الصغيرة

Zero-data usage

Private cloud inference

LoRA fine-tuning

Quantization

إذا تريد، أقدم لك:

خطة كاملة لبناء GraphRAG آمن 100%

اختيار أفضل نموذج محلي لك

تصميم بنية نظام تجمع بين الأمن والقوة

كود جاهز للربط بقاعدة بياناتك

أخبرني فقط نوع بياناتك (نصوص؟ جداول؟ تقارير؟).

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...