ملخص سريع
- استضف Dify بنفسك في 5 دقائق باستخدام Docker Compose (
docker-compose up -d) - أنشئ أول روبوت دردشة لك في المحرر المرئي — دون الحاجة إلى كتابة أي كود
- أضف RAG عن طريق تحميل المستندات إلى قاعدة المعرفة (يدعم PDF، TXT، Markdown)
- قم بالتوسيع باستخدام مسارات العمل، واجهات برمجة التطبيقات، أو مقدمي النماذج المخصصة (OpenAI، Ollama، إلخ)
- انشر في بيئة الإنتاج باستخدام Kubernetes أو مزودي الخدمات السحابية
1. الاستضافة الذاتية باستخدام Docker Compose
المتطلبات الأساسية
- Docker Engine ≥ 24.0.0 و Docker Compose ≥ 2.23.0 دليل تثبيت Docker
- ذاكرة وصول عشوائي سعتها 4 جيجابايت أو أكثر، ومعالجان افتراضيان (يوصى بـ 8 جيجابايت أو أكثر للإنتاج)
- المنافذ
3000(واجهة المستخدم)،5001(API)، و6379(Redis) متاحة
خطوات الإعداد
-
استنسخ المستودع وانتقل إلى الدليل:
git clone https://github.com/langgenius/dify.git cd dify -
انسخ ملف البيئة النموذجي وعدله:
cp .env.example .env nano .env # أو استخدم المحرر المفضل لديكالمتغيرات الرئيسية للتكوين:
# مطلوب للاستضافة الذاتية CONSOLE_API_URL=http://localhost:5001 APP_API_URL=http://localhost:5001 SECRET_KEY=your-random-secret-key-here # أنشئها باستخدام `openssl rand -hex 32` # اختياري: تكوين البريد (لإعادة تعيين كلمة المرور) MAIL_DEFAULT_SENDER=no[email protected] SMTP_SERVER=smtp.yourprovider.com SMTP_PORT=587 SMTP_USERNAME[email protected] SMTP_PASSWORD=your-smtp-password -
ابدأ الخدمات:
docker-compose up -dالناتج المتوقع:
Creating dify-redis ... done Creating dify-db ... done Creating dify-api ... done Creating dify-worker ... done Creating dify-web ... done -
تحقق من تشغيل الحاويات:
docker-compose psالناتج المتوقع:
Name Command State Ports ----------------------------------------------------------------- dify-api /bin/sh -c gunicorn ... Up 0.0.0.0:5001->5001/tcp dify-db docker-entrypoint.sh ... Up 5432/tcp dify-redis docker-entrypoint.sh ... Up 6379/tcp dify-web /docker-entrypoint.sh Up 0.0.0.0:3000->3000/tcp dify-worker /bin/sh -c celery -A ... Up -
الوصول إلى لوحة تحكم Dify:
- افتح
http://localhost:3000في متصفحك. - سجل حساب مسؤول (سيكون هذا أول مستخدم).
- افتح
الأخطاء الشائعة وحلولها
-
الخطأ:
Port 3000 already in useالحل: أوقف الخدمة المتعارضة أو غير المنفذ فيdocker-compose.yml(حدثportsلـdify-web). -
الخطأ:
PostgreSQL connection refusedالحل: تأكد من أنDB_HOST=dbفي.env(شبكة Docker الداخلية). إذا كنت تستخدم قاعدة بيانات خارجية، اضبطDB_HOSTعلى عنوان IP أو اسم المضيف الصحيح. -
الخطأ:
Redis connection failedالحل: تحقق من أنREDIS_HOST=redisفي.env. إذا كان Redis خارجيًا، قم بتحديثREDIS_HOSTوتأكد من أن المنفذ (6379) مفتوح.
2. إنشاء أول روبوت دردشة
الخطوة 1: الانتقال إلى الاستوديو
- سجل الدخول إلى Dify على
http://localhost:3000. - انقر على "Studio" في الشريط الجانبي الأيسر.
- انقر على "Create Application" واختر "Chatbot".
الخطوة 2: تكوين روبوت الدردشة
- الاسم:
My First Chatbot - الوصف:
روبوت أسئلة وأجوبة بسيط لاختبار Dify. - موفر النموذج: اختر
OpenAI(أو موفر آخر قمت بتكوينه — انظر القسم 6).- للاختبار المحلي، استخدم
Ollamaمع نموذج مثلllama3(يتطلب تشغيل Ollama محليًا).
- للاختبار المحلي، استخدم
- قالب المطالبة:
أنت مساعد مفيد. أجب على سؤال المستخدم بإيجاز. سؤال المستخدم: {{query}} - انقر على "Save" لإنشاء روبوت الدردشة.
الخطوة 3: اختبار روبوت الدردشة
- انقر على علامة التبويب "Debug" في محرر روبوت الدردشة.
- اكتب سؤال اختبار (مثلاً،
ما هو Dify؟). - تحقق من أن الاستجابة تتطابق مع قالب المطالبة الخاص بك.
الخطوة 4: نشر روبوت الدردشة
- انقر على زر "Publish" في الزاوية العلوية اليمنى.
- اختر "Publish to Production".
- أصبح روبوت الدردشة الآن متاحًا على:
(استبدل
http://localhost:3000/chatbot/{app-id}{app-id}بمعرف روبوت الدردشة الخاص بك من عنوان URL).
3. إعداد قاعدة المعرفة و RAG
الخطوة 1: إنشاء قاعدة المعرفة
- في لوحة تحكم Dify، انقر على "Knowledge" في الشريط الجانبي الأيسر.
- انقر على "Create Knowledge Base".
- الاسم:
Product Documentation - الوصف:
مستندات المنتج الداخلية لـ RAG. - نموذج التضمين: اختر
text-embedding-ada-002(OpenAI) أوbge-small-en(محلي). - انقر على "Save".
الخطوة 2: تحميل المستندات
- انقر على علامة التبويب "Documents" في قاعدة المعرفة الخاصة بك.
- انقر على "Upload" واختر ملفًا (يدعم PDF، TXT، Markdown، DOCX، CSV).
- مثال: قم بتحميل ملف PDF لوثائق منتجك.
- انتظر حتى تتم معالجة المستند (سيتغير الحال من
QueuedإلىIndexed).
الخطوة 3: ربط قاعدة المعرفة بروبوت الدردشة
- افتح روبوت الدردشة الخاص بك في Studio.
- انقر على علامة التبويب "Context" في الشريط الجانبي الأيسر.
- انقر على "Add Knowledge Base" واختر
Product Documentation. - قم بتحديث قالب المطالبة ليشمل قاعدة المعرفة:
أنت مساعد مفيد. استخدم السياق التالي للإجابة على سؤال المستخدم: السياق: {{knowledge}} سؤال المستخدم: {{query}} - انقر على "Save" واختبر روبوت الدردشة بسؤال حول وثائقك.
الخطوة 4: تكوين إعدادات RAG المتقدمة
- في علامة التبويب Context، انقر على أيقونة الإعدادات (⚙️) بجوار قاعدة المعرفة الخاصة بك.
- اضبط الإعدادات التالية:
- Top K:
3(عدد الأجزاء التي سيتم استردادها) - Score Threshold:
0.5(الحد الأدنى لدرجة الصلة) - Retrieval Mode:
Single(أوMultipleللاستعلامات متعددة المستندات)
- Top K:
- انقر على "Save".
4. منشئ مسارات العمل
الخطوة 1: إنشاء مسار عمل
- في لوحة تحكم Dify، انقر على "Studio" > "Create Application" > "Workflow".
- الاسم:
Customer Support Triage - الوصف:
توجيه استفسارات العملاء إلى الفريق المناسب.
الخطوة 2: بناء مسار العمل
- اسحب عقدة "Start" إلى اللوحة.
- اسحب عقدة "LLM" وقم بتوصيلها بعقدة Start.
- النموذج:
gpt-4o(أو النموذج المفضل لديك) - المطالبة:
صنف استفسار المستخدم إلى إحدى هذه الفئات: - الفواتير - الدعم الفني - استفسار عام الاستفسار: {{query}} الفئة:
- النموذج:
- اسحب عقدة "Condition" وقم بتوصيلها بعقدة LLM.
- الشرط 1:
{{llm_output}} يحتوي على "Billing"- الإجراء: قم بتوصيله بعقدة "Reply" بالرسالة:
تم توجيه طلب الفاتورة الخاص بك إلى فريق المالية.
- الإجراء: قم بتوصيله بعقدة "Reply" بالرسالة:
- الشرط 2:
{{llm_output}} يحتوي على "Technical Support"- الإجراء: قم بتوصيله بعقدة "Reply" بالرسالة:
سيتواصل معك وكيل الدعم الفني قريبًا.
- الإجراء: قم بتوصيله بعقدة "Reply" بالرسالة:
- الشرط الافتراضي: قم بتوصيله بعقدة "Reply" بالرسالة:
شكرًا لرسالتك! سنعاود الاتصال بك قريبًا.
- الشرط 1:
- انقر على "Save".
الخطوة 3: اختبار مسار العمل
- انقر على علامة التبويب "Debug".
- أدخل استفسارًا تجريبيًا (مثلاً،
لدي سؤال حول فاتورتي). - تحقق من أن مسار العمل يقوم بتوجيه الاستفسار بشكل صحيح.
الخطوة 4: نشر مسار العمل
- انقر على "Publish" > "Publish to Production".
- أصبح مسار العمل الآن متاحًا كواجهة برمجة تطبيقات (انظر القسم 5).
5. الوصول إلى واجهة برمجة التطبيقات والتضمين
الخطوة 1: الحصول على مفتاح واجهة برمجة التطبيقات
- في لوحة تحكم Dify، انقر على أيقونة ملفك الشخصي > "API Keys".
- انقر على "Create New Key".
- الاسم:
My App Key - انسخ مفتاح واجهة برمجة التطبيقات الذي تم إنشاؤه (لن تتمكن من رؤيته مرة أخرى).
الخطوة 2: استدعاء واجهة برمجة تطبيقات روبوت الدردشة
استخدم curl للتفاعل مع روبوت الدردشة الخاص بك:
curl --location 'http://localhost:5001/v1/chat-messages' \
--header 'Authorization: Bearer {YOUR_API_KEY}' \
--header 'Content-Type: application/json' \
--data '{
"inputs": {},
"query": "ما هو Dify؟",
"response_mode": "blocking",
"conversation_id": "",
"user": "test-user"
}'
الناتج المتوقع:
{
"event": "message",
"message_id": "abc123",
"conversation_id": "xyz456",
"answer": "Dify هو منصة تطوير تطبيقات LLM مفتوحة المصدر..."
}
الخطوة 3: تضمين روبوت الدردشة في تطبيق ويب
استخدم SDK JavaScript الخاص بـ Dify لتضمين روبوت الدردشة الخاص بك:
<!DOCTYPE html>
<html>
<head>
<title>Dify Chatbot Embed</title>
<script src="https://cdn.jsdelivr.net/npm/@dify/[email protected]/dist/dify.umd.min.js"></script>
</head>
<body>
<div id="dify-chatbot" style="width: 400px; height: 600px;"></div>
<script>
const chatbot = new DifyChatbot({
el: '#dify-chatbot',
appId: '{YOUR_APP_ID}', // احصل عليه من عنوان URL لروبوت الدردشة
apiHost: 'http://localhost:5001',
apiKey: '{YOUR_API_KEY}',
user: 'web-user'
});
</script>
</body>
</html>
ملاحظة: استبدل {YOUR_APP_ID} و {YOUR_API_KEY} بقيمك.
6. تكوين موفري النماذج
الخطوة 1: إضافة OpenAI
- في لوحة تحكم Dify، انقر على "Settings" > "Model Providers".
- انقر على "Add Provider" واختر OpenAI.
- أدخل مفتاح OpenAI API الخاص بك (احصل عليه من منصة OpenAI).
- انقر على "Save".
الخطوة 2: إضافة نموذج محلي (Ollama)
- قم بتثبيت Ollama محليًا:
curl -fsSL https://ollama.com/install.sh | sh ollama pull llama3 - في Dify، انتقل إلى "Settings" > "Model Providers".
- انقر على "Add Provider" واختر Ollama.
- Base URL:
http://host.docker.internal:11434(استخدمhost.docker.internalللوصول إلى الجهاز المضيف من Docker). - انقر على "Save".
الخطوة 3: إضافة Anthropic (Claude)
- احصل على مفتاح Anthropic API من Anthropic Console.
- في Dify، انتقل إلى "Settings" > "Model Providers".
- انقر على "Add Provider" واختر Anthropic.
- أدخل مفتاح API الخاص بك وانقر على "Save".
الخطوة 4: استخدام نموذج مخصص
- في إعدادات Model Providers، انقر على "Add Provider" > "Custom".
- الاسم:
My Custom Model - Base URL:
https://api.your-model-provider.com/v1 - API Key:
your-api-key - النماذج: أضف نموذجك (أو نماذجك) مع
nameوcontext_length. - انقر على "Save".
7. النشر في بيئة الإنتاج
الخيار 1: Kubernetes (Helm)
- أضف مستودع Helm الخاص بـ Dify:
helm repo add dify https://dify-ai.github.io/helm-charts helm repo update
