الاستضافة الذاتية لـ Perplexica - باستخدام Ollama
هل ترغب في تشغيل خدمة من نوع كوبيلو محليًا؟ سهل جدًا!
هذا أمر مثير للغاية! بدلاً من الاتصال بـ copilot أو perplexity.ai وإخبار العالم بأكمله بما تبحث عنه، يمكنك الآن تشغيل خدمة مشابهة على جهاز الكمبيوتر أو الحاسوب المحمول الخاص بك!
ما هو ذلك
Perplexica هو نظام مشابه لـ Copilot و Perplexity.ai.
- تطرح سؤالاً
- يقوم الذكاء الاصطناعي بالبحث على الإنترنت عن الإجابات (يمكنك تحديد أين يجب البحث: أوراق بحثية، كتابة، يوتيوب، Reddit …)
- ثم يقوم الذكاء الاصطناعي بتلخيص كل ما وجد
- ثم يعرض النتيجة مع المراجع إلى المواقع الأصلية
- كما توجد قائمة بالصور وفيديوهات يوتيوب على اليمين
- كما توجد أسئلة تالية جاهزة للنقر عليها، إذا أردت استكشاف الموضوع أكثر
هذه الأنظمة مُستضافة في السحابة وتنتمي إلى بعض الشركات (على سبيل المثال، Miscrosoft أو Meta). Perplexica هو برنامج مفتوح المصدر يمكنك تشغيله على جهاز الكمبيوتر أو الحاسوب المحمول القوي.
هنا نرى رد Perplexica مع نموذج المحادثة llama3.1 8b q6 ونموذج Embedding من jina - على السؤال “من هو إيلون ماسك؟”
يتألف Perplexica من عدة وحدات
- SearxNG - محرك بحث متعدد. سيقوم بتشغيل 10+ محرك بحث آخر للحصول على النتائج، وبالتالي يمكن لـ Perplexica دمجهما. SearxNG قابل للتخصيص بشكل كبير، يمكنك تشغيل أو إيقاف كل محرك وإضافة محركات جديدة. لكن بالنسبة لأهدافنا، فإن التكوين الافتراضي يعمل بشكل جيد.
- الخلفية والواجهة الأمامية لـ Perplexica. تقنيًا، هذان وحدتان منفصلتان، واحدة تقدم واجهة برمجة التطبيقات، والأخرى واجهة المستخدم
- خدمة Ollama - والتي ليست جزءًا من مشروع Perplexica، ولكن إذا أردت تشغيل نماذج LLM الخاصة بك محليًا، فإن Ollama هي الطريقة الوحيدة لاستخدامها.
لذلك، يتكون تثبيت النظام بأكمله من خطوتين كبيرتين:
- تثبيت Ollama + تنزيل نماذج Ollama
- تثبيت Perplexica مع SearxNG
تثبيت Ollama
لبدء استخدام Ollama، اتبع هذه الخطوات:
تثبيت Ollama عن طريق تشغيل النص:
curl -fsSL https://ollama.com/install.sh | sh
أخبر Ollama بتنزيل نموذج LLM المفضل لديك. إذا كان Llama3.1 8b q4 - قم بتشغيل النص:
ollama pull llama3.1:latest
تنزيل أحدث إصدار من Nomic-Embed-Text لاستخدامه كنموذج Embedding (إذا كان هو المفضل لديك) باستخدام
ollama pull nomic-embed-text:latest
تحرير ملف خدمة Ollama عن طريق تشغيل
sudo systemctl edit ollama.service
إضافة السطور التالية لعرض Ollama على الشبكة (يحتاج Perplexica إلى الاتصال به من داخل Docker)
[Service]
Environment="OLLAMA_HOST=0.0.0.0"
إعادة تحميل وكيل systemd وإعادة تشغيل خدمة Ollama:
sudo systemctl daemon-reload
sudo systemctl restart ollama
تحقق من أن Ollama بدأ بشكل ناجح
systemctl status ollama.service
sudo journalctl -u ollama.service --no-pager
وصف تفصيلي حول كيفية تثبيت، تحديث وتهيئة Ollama يرجى الاطلاع على: تثبيت وتهيئة Ollama
لمزيد من التفاصيل حول استخدام نماذج Ollama الأخرى مع Perplexica يرجى الاطلاع على القسم ‘تثبيت نماذج Ollama الأخرى’ أدناه.
تثبيت Perplexica
لقد قمت بتثبيت Perplexica المُستند إلى Docker على نظام Linux، ولكن يمكن استخدام docker-compose المماثل على Windows أو Mac.
لنذهب!
البدء مع Docker (الموصى به) تأكد من تثبيت Docker وتشغيله على نظامك.
قم بتثبيت مستودع Perplexica:
git clone https://github.com/ItzCrazyKns/Perplexica.git
بعد النسخ، انتقل إلى المجلد الذي يحتوي على ملفات المشروع.
cd Perplexica
اعيد تسمية ملف sample.config.toml إلى config.toml. إذا كنت تخطط لتحديث Perplexica لاحقًا - عن طريق git pull داخل هذا المستودع - فببساطة قم بنسخ ملف sample.config.toml إلى config.toml
cp sample.config.toml config.toml
تحرير ملف التكوين
nano config.toml
للمشاريع التي تستخدم Docker، تحتاج فقط إلى ملء الحقول التالية:
OLLAMA: عنوان URL لواجهة برمجة التطبيقات الخاصة بـ Ollama.
يجب إدخاله كـ http://host.docker.internal:PORT_NUMBER.
إذا قمت بتثبيت Ollama على منفذ 11434 (هذا هو المنفذ الافتراضي)، استخدم http://host.docker.internal:11434. لمنافذ أخرى، قم بالتعديل وفقًا لذلك.
عندما تكون لا تزال في دليل Perplexica، قم بتشغيل:
docker compose up -d
سيقوم بتنزيل صور Docker لـ SearxNG وقاعدة Node، وبناء صور Docker لـ Perplexica، وتشغيل 3 حاويات. انتظر بضع دقائق حتى يكتمل الإعداد.
يمكنك الوصول إلى Perplexica عبر http://localhost:3000 في متصفح الويب الخاص بك.
انتقل إلى الإعدادات. تعرف - أيقونة المفتاح في الزاوية السفلية اليسرى، وحدد نماذج Ollama الخاصة بك
هنا ترى نموذج المحادثة المحدد llama3.1:8b-instruct-q6_K (Llama 3.1 8b مع تكميم q6_K)، ونموذج Embedding nomic-embed-text:137m-v1.5-fp16.
يمكنك أيضًا اختيار موضوع مشرق أو داكن حسبما تفضله أكثر.
خيارات بحث Perplexica (اضغط على هذا العين في أيقونة المربع)، في موضوع الداكن:
تثبيت نماذج Ollama الأخرى
لقد قمت بالفعل بتثبيت النماذج llama3.1:latest وnomic-embed-text:latest في قسم “تثبيت Ollama” أعلاه.
تحتاج فقط إلى نموذج واحد للمحادثة، ولكن هناك العديد من النماذج المتاحة. تختلف أداءها بشكل طفيف، من المفيد البدء بنماذج شائعة: Llama3.1، Gemma2، Mistral Nemo أو Qwen2.
نماذج المحادثة
الاسم الكامل لنموذج المحادثة الذي رأيته في قسم التثبيت - llama3.1:latest هو llama3.1:8b-text-q4_0. هذا يعني أنه يحتوي على 8 مليار معلمة وتكملة 4_0. إنه سريع نسبيًا وصغير نسبيًا (4.8 جيجابايت)، ولكن إذا كانت بطاقة GPU الخاصة بك تحتوي على بعض الذاكرة الإضافية، أوصي بك بتجربة
- llama3.1:8b-instruct-q6_K (6.7 جيجابايت) - في اختباراتي أظهر ردًا أفضل بكثير، لكن كان أبطأ قليلاً.
- llama3.1:8b-instruct-q8_0 (8.5 جيجابايت) - أو ربما هذا واحد.
بشكل عام، جميع النماذج من مجموعة llama3.1:8b نسبيًا سريعة.
يمكنك سحب تلك التي أوصيت بتجربتها باستخدام النص:
ollama pull llama3.1:8b-instruct-q6_K
ollama pull llama3.1:8b-instruct-q8_0
مقارنةً بـ Llama3.1:8b، تنتج Gemma2 ردودًا أكثر اقتصادًا وفنية. جرّب هذه:
# 9.8 جيجابايت
ollama pull gemma2:9b-instruct-q8_0
# 14 جيجابايت
ollama pull gemma2:27b-instruct-q3_K_L
نماذج Mistral Nemo تنتج ردودًا في مكان ما بين Gemma2 و Llama3.1.
# النموذج الافتراضي، 7.1 جيجابايت
ollama pull mistral-nemo:12b-instruct-2407-q4_0
# 10 جيجابايت
ollama pull mistral-nemo:12b-instruct-2407-q6_K
# 13 جيجابايت
ollama pull mistral-nemo:12b-instruct-2407-q8_0
قد ترغب أيضًا في تجربة نماذج Qwen2
# النموذج الافتراضي، 4.4 جيجابايت
ollama pull qwen2:7b-instruct-q4_0
# 8.1 جيجابايت
ollama pull qwen2:7b-instruct-q8_0
النماذج التي أحببتها أكثر هي: llama3.1:8b-instruct-q6_K و mistral-nemo:12b-instruct-2407-q8_0.
للحصول على قائمة النماذج التي يحتويها Ollama في مستودعه المحلي:
ollama list
لإزالة نموذج غير مطلوب:
ollama rm qwen2:7b-instruct-q4_0 # مثال
نماذج Embedding
يمكنك تجاوز تثبيت هذه، حيث أن Perplexica يحتوي على 3 نماذج Embedding مثبتة مسبقًا: BGE الصغير، GTE الصغير وBert ثنائي اللغة. إنها تعمل بشكل جيد، ولكن قد ترغب في تجربة نماذج Embedding الأخرى.
في قسم تثبيت Ollama أعلاه، قمت بتثبيت نموذج Embedding nomic-embed-text:latest، وهو نموذج جيد، ولكن أوصي أيضًا بتجربة:
ollama pull jina/jina-embeddings-v2-base-en:latest
# و
ollama pull bge-m3:567m-fp16
أفضل نتيجة حصلت عليها من jina/jina-embeddings-v2-base-en:latest، ولكن اكتشف بنفسك.
تثبيت Perplexica في الشبكة
إذا قمت بتثبيته على خادم الشبكة، فقبل
docker compose up -d
أو إذا كنت تشغل Perplexica بالفعل، وتحتاج إلى إعادة بناء الصور
# توقفه وإزالة جميع الحاويات (!!! إذا كنت بحاجة إليه فقط)
docker compose down --rmi all
أدخل عنوان IP الخاص بخادم Perplexica في docker-compose.yaml: ثم قبل
nano docker-compose.yaml
perplexica-frontend:
build:
context: .
dockerfile: app.dockerfile
args:
- NEXT_PUBLIC_API_URL=http://127.0.0.1:3001/api # << هنا
- NEXT_PUBLIC_WS_URL=ws://127.0.0.1:3001 # << هنا
depends_on:
- perplexica-backend
الآن ابدأ حاويات Perplexica و SearxNG:
docker compose up -d
أو إعادة بناء وإطلاق:
docker compose up -d --build
تحديث Perplexica
Perplexica يعمل على Docker:
# توقفه وإزالة جميع الحاويات (!!! إذا كنت بحاجة إليه فقط)
docker compose down --rmi all
# انتقل إلى مجلد المشروع
# حيث نسخت Perplexica أثناء التثبيت
cd Perplexica
# اسحب التحديثات
git pull
# تحديث و إعادة بناء الحاويات Docker:
docker compose up -d --build
للمستخدمين غير المثبتين على Docker يرجى الاطلاع على: https://github.com/ItzCrazyKns/Perplexica/blob/master/docs/installation/UPDATING.md
الأسئلة الشائعة
-
س: ما هو Perplexica؟
-
ج: Perplexica هو محرك بحث الذكاء الاصطناعي المفتوح المصدر الذي يمكنك تشغيله محليًا على جهاز الكمبيوتر الخاص بك، وهو بديل لـ perplexity.ai ونظام Copilot.
-
س: ما هي الخطوات لتثبيت وتهيئة Perplexica مع Ollama؟
-
ج: تشمل الخطوات تثبيت Ollama، وتنزيل النماذج، ثم تثبيت Perplexica.
-
س: ما خيارات التخصيص المتاحة في Perplexica؟
-
ج: تشمل الخيارات اختيار نماذج مختلفة مثل LLama 3.1، Mistral Nemo أو Gemma2، إعداد نماذج Embedding محليًا، واستكشاف خيارات بحث مختلفة مثل الأخبار، الأوراق البحثية، فيديوهات يوتيوب، ومحادثات Reddit.
-
س: أي نموذج Ollama يجب استخدامه مع Perplexica؟
-
ج: أفضل النتائج التي حصلنا عليها في اختباراتنا كانت عندما قمنا بتشغيل Perplexica مع llama3.1:8b-instruct-q6_K وjina/jina-embeddings-v2-base-en:latest.
روابط مفيدة
- نماذج Qwen3 Embedding & Reranker على Ollama: الأداء الأحدث
- اختبار: كيف يستخدم Ollama أداء وحدات المعالجة المركزية من Intel ووحدات المعالجة الفعالة
- كيف يتعامل Ollama مع الطلبات المتزامنة
- اختبار Deepseek-r1 على Ollama
- تعليمات التثبيت على موقع Perplexica: https://github.com/ItzCrazyKns/Perplexica
- عرض Perplexica على الشبكة
- مقارنة أداء LLM
- تثبيت Ollama ونقل نماذج Ollama إلى مجلد مختلف
- مقارنة قدرات LLM على التلخيص
- مقارنة LLM: Mistral Small، Gemma 2، Qwen 2.5، Mistral Nemo، LLama3 و Phi
- قائمة مصطلحات Ollama