الاستضافة الذاتية لـ Perplexica - باستخدام Ollama

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

Page content

هذا أمر مثير للغاية! بدلاً من الاتصال بـ copilot أو perplexity.ai وإخبار العالم بأكمله بما تبحث عنه، يمكنك الآن تشغيل خدمة مشابهة على جهاز الكمبيوتر أو الحاسوب المحمول الخاص بك!

ما هو ذلك

Perplexica هو نظام مشابه لـ Copilot و Perplexity.ai.

  • تطرح سؤالاً
  • يقوم الذكاء الاصطناعي بالبحث على الإنترنت عن الإجابات (يمكنك تحديد أين يجب البحث: أوراق بحثية، كتابة، يوتيوب، Reddit …)
  • ثم يقوم الذكاء الاصطناعي بتلخيص كل ما وجد
  • ثم يعرض النتيجة مع المراجع إلى المواقع الأصلية
  • كما توجد قائمة بالصور وفيديوهات يوتيوب على اليمين
  • كما توجد أسئلة تالية جاهزة للنقر عليها، إذا أردت استكشاف الموضوع أكثر

هذه الأنظمة مُستضافة في السحابة وتنتمي إلى بعض الشركات (على سبيل المثال، Miscrosoft أو Meta). Perplexica هو برنامج مفتوح المصدر يمكنك تشغيله على جهاز الكمبيوتر أو الحاسوب المحمول القوي.

رد Perplexica مع llama3.1 8b q6 و jina embeddings هنا نرى رد Perplexica مع نموذج المحادثة llama3.1 8b q6 ونموذج Embedding من jina - على السؤال “من هو إيلون ماسك؟”

يتألف Perplexica من عدة وحدات

  1. SearxNG - محرك بحث متعدد. سيقوم بتشغيل 10+ محرك بحث آخر للحصول على النتائج، وبالتالي يمكن لـ Perplexica دمجهما. SearxNG قابل للتخصيص بشكل كبير، يمكنك تشغيل أو إيقاف كل محرك وإضافة محركات جديدة. لكن بالنسبة لأهدافنا، فإن التكوين الافتراضي يعمل بشكل جيد.
  2. الخلفية والواجهة الأمامية لـ Perplexica. تقنيًا، هذان وحدتان منفصلتان، واحدة تقدم واجهة برمجة التطبيقات، والأخرى واجهة المستخدم
  3. خدمة Ollama - والتي ليست جزءًا من مشروع Perplexica، ولكن إذا أردت تشغيل نماذج LLM الخاصة بك محليًا، فإن Ollama هي الطريقة الوحيدة لاستخدامها.

لذلك، يتكون تثبيت النظام بأكمله من خطوتين كبيرتين:

  1. تثبيت Ollama + تنزيل نماذج Ollama
  2. تثبيت 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 الخاصة بك

إعدادات Perplexica - تكوين نماذج Ollama

هنا ترى نموذج المحادثة المحدد llama3.1:8b-instruct-q6_K (Llama 3.1 8b مع تكميم q6_K)، ونموذج Embedding nomic-embed-text:137m-v1.5-fp16.

يمكنك أيضًا اختيار موضوع مشرق أو داكن حسبما تفضله أكثر.

خيارات بحث Perplexica (اضغط على هذا العين في أيقونة المربع)، في موضوع الداكن: خيارات بحث 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.

روابط مفيدة