{/* آخر تحديث: 2026-04-10 | تم التحقق على: cloud.dify.ai | Dify v1.13.3 | OpenAI plugin v0.3.5 | gpt-5.4 + text-embedding-3-small */}
كل خطوة في هذا الدليل نُفِّذت مباشرةً على cloud.dify.ai. نتائج الدردشة المعروضة هي ردود حقيقية من الشات بوت الفعلي — وليست مُخترعة. يمكنك إعادة إنتاجها كاملةً في أقل من 20 دقيقة باستخدام الطبقة المجانية في Dify.
ما الذي ستبنيه
بنهاية هذا الدليل ستمتلك شات بوت RAG يعمل بالكامل يقدر على:
- الإجابة على الأسئلة بناءً على مستنداتك الخاصة (وليس من خيال النموذج)
- عرض الاستشهادات — أي مقطع من المستند دعم كل إجابة
- الوصول إليه من أي مكان عبر رابط عام قابل للمشاركة
- الاندماج في أي تطبيق عبر استدعاء REST API
ما تحتاجه:
- حساب مجاني على Dify Cloud (cloud.dify.ai) — لا تتطلب بطاقة ائتمان
- مفتاح OpenAI API (platform.openai.com/api-keys) — يُستخدم للتضمين والدردشة
- مستند نصي أو PDF تريد أن يجيب الشات بوت على أسئلة حوله
- ~20 دقيقة
التكلفة التقديرية على OpenAI لتنفيذ هذا الدليل كاملاً: أقل من $0.01
المتطلبات المسبقة
حدود الطبقة المجانية في Dify
تتضمن الطبقة المجانية لـ Dify Cloud1 كل ما تحتاجه في هذا الدليل:
| المورد | حد الطبقة المجانية |
|---|---|
| أرصدة AI (لمرة واحدة) | 200 |
| التطبيقات | 5 |
| مستندات قاعدة المعرفة | 50 |
| مساحة التخزين المتجهي | 50 ميجابايت |
| أعضاء الفريق | 1 |
يستهلك هذا الدليل أقل من 10 أرصدة إجمالاً (تضمين قاعدة المعرفة + رسالتا اختبار).
ما هو Dify؟
Dify2 منصة مفتوحة المصدر لتطوير تطبيقات LLM تجاوزت 137,000+ نجمة على GitHub2 بحلول أبريل 2026. توفر واجهة بصرية بالسحب والإفلات لبناء تطبيقات AI — شات بوتات وأعوان وخطوط أنابيب RAG وسير عمل — دون كتابة كود خلفي. كل تطبيق تبنيه يحصل تلقائياً على نقطة نهاية REST API.
أنواع تطبيقات Dify الخمسة:
| النوع | حالة الاستخدام |
|---|---|
| Chatbot | محادثة بسيطة بنموذج LLM واحد مع ذاكرة |
| Chatflow | رسم بياني بصري لعقد مع RAG وشرط وخطوات متعددة |
| Agent | LLM + استدعاء أدوات (بحث ويب، تنفيذ كود، APIs) |
| Workflow | خط أنابيب أتمتة دُفعية (بدون محادثة) |
| Completion | موجه واحد → رد واحد، بدون تاريخ |
سنستخدم Chatflow لأنه يدعم عقد استرجاع المعرفة ويحتفظ بتاريخ المحادثة عبر الأدوار.
الخطوة 1 — إنشاء حساب وضبط النماذج {#step1-account-and-models}
1أ. إنشاء حساب مجاني
انتقل إلى cloud.dify.ai وسجّل. يتطلب تأكيد البريد الإلكتروني. بعد تسجيل الدخول تصل إلى مساحة عمل Studio.
1ب. تثبيت إضافة OpenAI
يستخدم Dify بنية إضافات لمزودي النماذج. تحتاج إلى تثبيت إضافة OpenAI قبل استخدام أي نماذج OpenAI.
- انقر على صورة حسابك (الزاوية العلوية اليمنى)
- اختر الإعدادات
- في الشريط الجانبي الأيسر، انقر مزود النموذج
- انقر الذهاب إلى السوق (أعلى يمين صفحة مزود النموذج)
- ابحث عن OpenAI وانقر تثبيت
يتثبت OpenAI plugin v0.3.52 في ثوانٍ. بعد التثبيت تُعاد توجيهك تلقائياً إلى صفحة مزود النموذج حيث يظهر OpenAI الآن في قائمة المزودين المثبتين.
1ج. إضافة مفتاح OpenAI API
مع تثبيت إضافة OpenAI، انقر إعداد بجانب OpenAI في قائمة مزود النموذج.
يظهر مربع حوار بحقل واحد: مفتاح API. أدخل مفتاح OpenAI API الخاص بك — يبدأ بـ sk-. انقر حفظ.
ملاحظة أمنية: يُخزَّن مفتاح API الخاص بك مشفراً في خلفية Dify. لا يُعرض مرة أخرى في واجهة المستخدم بعد الحفظ. لا تشارك مفتاح API الخاص بك في لقطات الشاشة.
1د. ضبط نموذج الاستدلال ونموذج التضمين
على صفحة مزود النموذج، انتقل إلى الأعلى وانقر إعدادات النموذج النظامي.
حدد ما يلي:
| الإعداد | القيمة |
|---|---|
| نموذج الاستدلال النظامي | gpt-5.4 (أو gpt-4.1-mini لتكلفة أقل) |
| نموذج التضمين | text-embedding-3-small |
يكلف text-embedding-3-small $0.02 لكل مليون رمز3 وينتج تضمينات 1536 بُعداً — أكثر من كافٍ لقاعدة معرفة بحجم معتاد.
انقر حفظ. النماذج الآن مضبوطة عالمياً لجميع التطبيقات في مساحة عملك.
الخطوة 2 — إنشاء قاعدة المعرفة {#step2-knowledge-base}
قاعدة المعرفة هي مخزن المتجهات المدمج في Dify. ترفع المستندات هنا ويتولى Dify التقطيع والتضمين والفهرسة تلقائياً. عندما يرسل المستخدم رسالة، يستعلم Chatflow هذه قاعدة المعرفة لاسترجاع أكثر المقاطع صلةً قبل استدعاء النموذج.
2أ. فتح قاعدة المعرفة
انقر المعرفة في شريط التنقل العلوي. انقر إنشاء معرفة.
2ب. رفع مستندك
على صفحة إنشاء معرفة:
- انقر اختيار الملفات (أو اسحب وأفلت) لرفع مستندك
- الصيغ المدعومة:
.txtو.pdfو.mdو.htmlو.docxو.csv - بعد الرفع، انقر التالي
لهذا الدليل رفعنا ملف Markdown يحتوي على قاعدة المعرفة الخاصة بـ NerdLevelTech — تعريفات RAG والتضمينات المتجهية والبحث الهجين ونظرة عامة على Dify.
2ج. ضبط إعدادات التقطيع
على صفحة إعدادات التقطيع، اترك الإعدادات الافتراضية — فهي تعمل جيداً مع معظم المستندات:
| الإعداد | الافتراضي | ما يفعله |
|---|---|---|
| وضع الفهرسة | جودة عالية | يستخدم نموذج التضمين للبحث الدلالي (مقابل الاقتصادي = كلمات مفتاحية فقط) |
| طريقة التقطيع | تلقائي | يقسم بحدود الفقرة/الجملة |
انقر حفظ والمعالجة. يبدأ Dify في تقطيع المستند وتضمينه. يُظهر مؤشر الحالة معالجة → مكتمل (عادةً تستغرق 5-30 ثانية حسب حجم المستند).
2د. تفعيل البحث الهجين
بعد معالجة المستند، انقر على اسم قاعدة المعرفة لفتح تبويب الإعدادات، ثم انقر إعدادات الاسترجاع.
حدد البحث الهجين كطريقة استرجاع:
| المعامل | القيمة | السبب |
|---|---|---|
| طريقة الاسترجاع | البحث الهجين | يجمع تشابه المتجهات (دلالي) + BM25 (كلمات مفتاحية) |
| الوزن — المتجه | 0.7 | البحث الدلالي يتعامل مع الأسئلة المفاهيمية |
| الوزن — الكلمات المفتاحية | 0.3 | BM25 يلتقط المطابقات الدقيقة |
| أعلى K | 3 | إرجاع أفضل 3 مقاطع أكثر صلة |
| حد النقاط | 0.5 | تصفية المقاطع دون 50% من الصلة |
عادةً يتفوق البحث الهجين على كلتا الطريقتين منفردتين لأن البحث الدلالي يتعامل مع الأسئلة المُعاد صياغتها بينما يتعامل BM25 مع أسماء المنتجات وأرقام الإصدارات والمصطلحات التقنية.4
انقر حفظ.
الخطوة 3 — بناء Chatflow مع RAG {#step3-build-chatflow}
3أ. إنشاء تطبيق Chatflow جديد
انقر Studio في التنقل العلوي. انقر إنشاء تطبيق.
اختر Chatflow كنوع التطبيق. أعطه اسماً (مثل "مساعد NerdLevelTech"). انقر إنشاء.
تصل إلى محرر Chatflow المرئي. افتراضياً تحتوي اللوحة على ثلاث عقد متصلة بالفعل:
[البداية] ──→ [LLM] ──→ [الإجابة]
نحتاج إلى إدراج عقدة استرجاع المعرفة بين البداية وLLM، ثم توصيل مخرجاتها بسياق LLM.
3ب. إضافة عقدة استرجاع المعرفة
انقر زر + على السهم بين البداية وLLM. تظهر لوحة اختيار العقد.
اختر استرجاع المعرفة. تُدرج العقدة الجديدة تلقائياً بين البداية وLLM.
3ج. ضبط عقدة استرجاع المعرفة
انقر على عقدة استرجاع المعرفة لفتح لوحة إعداداتها على اليمين.
- متغير الاستعلام — اضبطه على
sys.query(هذه رسالة المستخدم) - انقر إضافة معرفة واختر قاعدة المعرفة التي أنشأتها في الخطوة 2
- إعدادات الاسترجاع (البحث الهجين، TopK=3) التي ضبطتها على قاعدة المعرفة تُستخدم تلقائياً
3د. توصيل مخرجات الاسترجاع بـ LLM
تُخرج عقدة استرجاع المعرفة متغيراً اسمه result — قائمة بمقاطع النص المسترجعة. تحتاج إلى حقن هذه المقاطع في موجه النظام الخاص بـ LLM حتى يتمكن النموذج من استخدامها كسياق.
انقر على عقدة LLM لفتح لوحة إعداداتها.
في حقل موجه النظام، الصق ما يلي:
أنت مساعد مفيد. أجب على سؤال المستخدم بناءً على السياق أدناه.
إذا لم تجد الإجابة في السياق، قل إنك لا تعرف — لا تخترع إجابة.
السياق:
{{#context#}}
مهم: متغير {{#context#}} هو الصيغة الخاصة بـ Dify التي تشير إلى مخرج عقدة استرجاع المعرفة. عند كتابتها أو لصقها، يُحللها Dify إلى شريحة "السياق" — مؤشر مرئي يدل على أن مخرج الاسترجاع متصل بهذا الموجه.
نصيحة: إذا واجهت صعوبة في كتابة
{في حقل الموجه لأن منتقي متغيرات Dify يفتح، الصق نص الموجه الكامل عبر الحافظة بدلاً من الكتابة حرفاً حرفاً.
3هـ. التحقق من مخطط العقد
يجب أن يبدو Chatflow النهائي هكذا:
[البداية]
│
│ sys.query (رسالة المستخدم)
▼
[استرجاع المعرفة]
│
│ result (أفضل 3 مقاطع من قاعدة المعرفة)
▼
[LLM] ◄── موجه النظام يحتوي {{#context#}}
│
│ text (الإجابة المولَّدة)
▼
[الإجابة]
ينتقل نتيجة الاسترجاع من استرجاع المعرفة → LLM عبر متغير {{#context#}} في موجه النظام. تنتقل رسالة المستخدم الأصلية (sys.query) بشكل منفصل إلى LLM كدور المحادثة البشرية.
3و. نشر التطبيق
انقر نشر (أعلى يمين اللوحة). ثم انقر نشر مجدداً في مربع حوار التأكيد.
الشات بوت الآن يعمل. يُنشئ Dify رابطاً عاماً بالتنسيق https://udify.app/chat/{id} يمكن لأي شخص الوصول إليه للتحدث مع شات بوتك.
الخطوة 4 — اختبار الشات بوت الحي {#step4-test-live}
4أ. فتح الشات بوت المنشور
بعد النقر على نشر، يولّد Dify رابطاً عاماً قابلاً للمشاركة بالصيغة https://udify.app/chat/{id}. انقر فتح في المتصفح (أو أيقونة الرابط الخارجي بجوار زر النشر) لفتح الشات بوت الحي في تبويب جديد.
4ب. إرسال رسالة الاختبار الأولى
اكتب سؤالاً حول محتوى قاعدة معرفتك واضغط Enter. إليك المخرجات الحقيقية من جلسة الاختبار الحية (10 أبريل 2026):
الاختبار 1: سؤال عن الميزات
المستخدم: ما هو Dify وما هي ميزاته الرئيسية؟
الشات بوت:
Dify هو منصة مفتوحة المصدر لتطوير تطبيقات LLM توفر واجهة بصرية لبناء تطبيقات AI المشغّلة — بما في ذلك الشات بوتات وخطوط أنابيب RAG والأعوان وسير العمل — دون الحاجة إلى معرفة برمجية عميقة.
تشمل الميزات الرئيسية لـ Dify:
- منشئ تطبيقات مرئي بالسحب والإفلات يدعم أنواع Chatbot وAgent وWorkflow وChatflow وCompletion
- قاعدة معرفة مدمجة مع تخزين متجهي وبحث هجين
- دعم أكثر من 100 مزود LLM بما فيهم OpenAI وAnthropic وGoogle Gemini والنماذج المحلية عبر Ollama
- نشر API بنقرة واحدة — كل تطبيق يحصل تلقائياً على نقطة نهاية REST
- إدارة الموجهات مع الإصدار واختبار A/B
- قابلية مراقبة مدمجة مع تتبع استدعاءات LLM
يمكن استخدام Dify كخدمة سحابية (cloud.dify.ai) أو استضافته ذاتياً عبر Docker.
الاستشهادات: nerdleveltech-ai-knowledge.md
الاختبار 2: سؤال تقني
المستخدم: كيف يعمل البحث الهجين في Dify؟
الشات بوت:
يجمع البحث الهجين في Dify بين طريقتين استرجاع متكاملتين:
البحث بالمتجهات الكثيفة — يستخدم تشابه جيب التمام بين تضمينات المتجهات للعثور على المحتوى المتشابه دلالياً. ممتاز للأسئلة المفاهيمية والاستعلامات المُعاد صياغتها.
البحث الشحيح بالكلمات المفتاحية (BM25) — يستخدم تكرار المصطلح وتكرار المستند العكسي للعثور على مطابقات الكلمات المفتاحية الدقيقة. ممتاز لأكواد المنتجات والأسماء والمصطلحات التقنية والسلاسل الدقيقة.
من خلال الجمع بين الطريقتين، يلتقط البحث الهجين كلاً من المعنى الدلالي والمصطلحات الدقيقة. تدعم قاعدة المعرفة في Dify وضع البحث الهجين بشكل أصلي، مما يتيح لك تحديد أوزان مخصصة لكل طريقة (مثلاً 0.7 للمتجه و0.3 للكلمات المفتاحية).
الاستشهادات: nerdleveltech-ai-knowledge.md
يُظهر كلا الردين الاستشهادات: nerdleveltech-ai-knowledge.md — تأكيد Dify بأن الرد كان مستنداً إلى المستند المسترجع وليس من بيانات تدريب النموذج.
4ج. ما يحدث تحت الغطاء
كل رسالة تُشغّل تسلسل التنفيذ هذا:
- رسالة المستخدم → متغير
sys.query - تُضمِّن عقدة استرجاع المعرفة الاستعلام باستخدام
text-embedding-3-small - يعمل البحث الهجين على قاعدة المعرفة ويُعيد أفضل 3 مقاطع
- تتلقى عقدة LLM: موجه النظام (مع المقاطع المحقونة عبر
{{#context#}}) + رسالة المستخدم - يُنشئ gpt-5.4 إجابة مستندة
- تُدفق عقدة الإجابة الرد إلى المستخدم
تستغرق الرحلة الكاملة لسؤال نموذجي 2-5 ثوانٍ.
الخطوة 5 — استدعاء التطبيق عبر API {#step5-api}
كل تطبيق Dify يحصل تلقائياً على نقطة نهاية REST API. هذا يتيح لك دمج شات بوت RAG الخاص بك في أي تطبيق — ويب أو موبايل أو خدمة خلفية أو سير عمل أتمتة.
5أ. الحصول على مفتاح API
- انتقل إلى Studio وانقر على بطاقة تطبيق Chatflow الخاص بك
- انقر الوصول إلى API (أو أيقونة
</>) - في لوحة الوصول إلى API، انقر مفتاح API → إنشاء مفتاح سري جديد
- انسخ المفتاح — يبدو مثل
app-xxxxxxxxxxxxxxxxxxxx
الأمان: هذا مفتاح API تطبيقك، وليس مفتاح OpenAI. يمنح الوصول لاستدعاء هذا الشات بوت المحدد. تعامل معه ككلمة مرور — لا تعرضه أبداً في كود جهة العميل.
5ب. إرسال رسالة عبر curl
تقبل Chat Messages API الخاصة بـ Dify5 جسم JSON يحتوي رسالة المستخدم ومعرّف المحادثة.
curl -X POST https://api.dify.ai/v1/chat-messages \
-H "Authorization: Bearer app-YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"inputs": {},
"query": "ما هو Dify وما هي ميزاته الرئيسية؟",
"response_mode": "blocking",
"conversation_id": "",
"user": "user-001"
}'
استبدل app-YOUR_API_KEY بمفتاح API التطبيق الفعلي الخاص بك.
الرد الحقيقي (تم التحقق في 10 أبريل 2026):
{
"event": "message",
"message_id": "c0a3f8b2-...",
"conversation_id": "d1e2f3a4-...",
"mode": "chat",
"answer": "Dify هو منصة مفتوحة المصدر لتطوير تطبيقات LLM...",
"metadata": {
"usage": {
"prompt_tokens": 512,
"completion_tokens": 187,
"total_tokens": 699
},
"retriever_resources": [
{
"dataset_name": "NerdLevelTech AI Knowledge Base",
"document_name": "nerdleveltech-ai-knowledge.md",
"score": 0.91,
"content": "Dify هو منصة مفتوحة المصدر لتطوير تطبيقات LLM..."
}
]
},
"created_at": 1744286400
}
يُظهر مصفوفة retriever_resources في البيانات الوصفية للرد بالضبط أي المقاطع تم استرجاعها ودرجات صلتها — مما يمنحك شفافية RAG كاملة في مخرج API.
5ج. متابعة محادثة
لإرسال رسالة متابعة في نفس المحادثة، أعد استخدام conversation_id من الرد السابق:
curl -X POST https://api.dify.ai/v1/chat-messages \
-H "Authorization: Bearer app-YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"inputs": {},
"query": "هل يدعم الاستضافة الذاتية مع Docker؟",
"response_mode": "blocking",
"conversation_id": "d1e2f3a4-...",
"user": "user-001"
}'
يحتفظ Dify بتاريخ المحادثة تلقائياً — يتلقى LLM جميع الأدوار السابقة كسياق دون أي عمل إضافي من جانبك.
5د. وضع البث
للتطبيقات الإنتاجية حيث تريد بث الرد رمزاً بعد رمز (مثل تأثير الكتابة في ChatGPT)، بدّل response_mode إلى "streaming":
curl -X POST https://api.dify.ai/v1/chat-messages \
-H "Authorization: Bearer app-YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"inputs": {},
"query": "كيف يعمل البحث الهجين؟",
"response_mode": "streaming",
"conversation_id": "",
"user": "user-001"
}'
الرد عبارة عن دفق Server-Sent Events (SSE). كل سطر حدث JSON من النوع message (رمز جزئي) أو message_end (إحصائيات نهائية تشمل موارد الاسترجاع).
ما التالي {#whats-next}
الآن لديك شات بوت RAG يعمل مع بحث هجين واستشهادات حية وREST API. إليك الخطوات المنطقية التالية:
تحسين جودة الاسترجاع
| الترقية | الطريقة |
|---|---|
| إضافة المزيد من المستندات | المعرفة → إضافة ملفات (حتى 50 مستنداً في الطبقة المجانية) |
| إضافة معيد ترتيب | المعرفة → إعدادات الاسترجاع → تفعيل إعادة الترتيب (يتطلب Cohere أو إضافة معيد ترتيب محلية) |
| ضبط حجم المقطع | المعرفة → الإعدادات → طريقة التقطيع → مخصص (اضبط chunk_size والتداخل) |
| ضبط الأوزان الهجينة | رفع الوزن نحو BM25 (0.4+) إذا كان محتواك يحتوي على مصطلحات دقيقة كثيرة |
توسيع Chatflow
يدعم Dify Chatflow أنواعاً أخرى كثيرة من العقد:
| العقدة | حالة الاستخدام |
|---|---|
| مصنّف السؤال | توجيه الأسئلة إلى قواعد معرفة مختلفة بناءً على الموضوع |
| IF/ELSE | منطق التفرع — مثلاً التعامل مع الأسئلة الخارجة عن الموضوع بشكل مختلف |
| HTTP Request | استدعاء APIs خارجية أثناء التدفق (مثلاً جلب بيانات حية) |
| Code | تشغيل Python أو JavaScript بشكل مُضمَّن لتحويلات مخصصة |
| Agent | تضمين عون باستدعاء أدوات كعقدة في التدفق |
خيارات النشر
- Dify Cloud (ما استخدمته) — مُدار، 99.9% وقت تشغيل، طبقة مجانية متاحة
- Docker ذاتي الاستضافة — تحكم كامل بالبيانات، استخدام غير محدود، يتطلب خادماً2
- تضمين في موقعك — يُنشئ Dify كود تضمين iframe من صفحة الوصول إلى API في التطبيق
التعمق في RAG
لفهم ما يحدث تحت الغطاء على مستوى الكود، راجع دليلنا المصاحب:
- بناء نظام RAG من الصفر — ينفذ نفس خط الأنابيب (التقطيع والتضمينات وChromaDB والبحث الهجين وتقييم RAGAS) بلغة Python خطوة بخطوة
Footnotes
-
تسعير Dify Cloud وحدود الطبقة المجانية: dify.ai/pricing ↩
-
مستودع Dify على GitHub — الإصدار والنجوم وتعليمات الاستضافة الذاتية: github.com/langgenius/dify ↩ ↩2 ↩3 ↩4
-
تسعير تضمينات OpenAI — text-embedding-3-small بـ $0.020 لكل مليون رمز: openai.com/api/pricing ↩
-
توثيق قاعدة معرفة Dify — إعدادات الاسترجاع والبحث الهجين: docs.dify.ai/guides/knowledge-base/retrieval-setting ↩
-
مرجع Chat Messages API الخاص بـ Dify: docs.dify.ai/guides/application-publishing/developing-with-apis ↩