البحث على الويب
يستطيع Libre WebUI البحث على الويب وتسليم النتائج إلى نماذجك من دون اشتراط حساب لدى موفّر Libre WebUI أو تكامل تجاري مع واجهة بحث. يمر البحث عبر مثيل SearXNG يختاره المسؤول. ثم يرسل SearXNG الاستعلامات إلى محركات البحث العامة التي يجمعها؛ ويمكن لتلك المحركات رؤية الطلب الصادر عن نشر SearXNG وتطبيق سياساتها الخاصة للتسجيل والاحتفاظ والشبكة.
مثل كل إمكانات الاستخدام المزدوج في Libre WebUI، تُشحن هذه الميزة معطّلة. يفعّلها المسؤول مرة واحدة، وحتى ذلك الحين لا تظهر واجهة بحث في أي مكان.
آلية العمل
توجد أربعة عناصر، ولا يظهر أي منها قبل توفر العنصر السابق:
- مثيل SearXNG تستطيع الواجهة الخلفية الوصول إليه. تتضمن حزمة النشر الخاص المضمّنة مثيلًا؛ ويصلح أي مثيل مفعّل فيه JSON API.
- إعداد المسؤول — الإعدادات > الاتصالات > البحث (علامة تبويب للمسؤولين فقط). عيّن عنوان SearXNG، وفعّل تمكين البحث على الويب، ثم استخدم اختبار الاتصال لإثبات الربط باستعلام مباشر.
- من يمكنه استخدامه — بطاقة البحث على الويب ضمن الإعدادات ← إدارة المستخدمين بجوار عناصر التحكم في وصول Work وتنزيل النماذج. يبقيه التعطيل (وهو الافتراضي) للمسؤولين فقط حتى عند تفعيل البحث؛ ويفتحه التفعيل لجميع المستخدمين النشطين. تفرض الواجهة الخلفية ذلك في كل طلب.
- عناصر التحكم لكل استخدام التي تظهر للمستخدمين المسموح لهم:
- الاسترجاع في المحادثة: زر كرة أرضية في محرر الرسائل. عند تفعيله، يخطط نموذج الجلسة لاستعلامات مركزة بالكلمات المفتاحية، مع تلميحات اختيارية للحداثة والفئة. إذا فشل التخطيط، يعود Libre إلى الرسالة الخام. يدخل الناتج إلى المطالبة كسياق، ويعرض الرد شرائح مصادر مرقمة. يعمل ذلك مع النماذج التي لا تدعم استدعاءات الأدوات.
- أدوات المحادثة: تستطيع النماذج المسموح لها والداعمة للأدوات استدعاء أداة
web_searchالمضمّنة عند تفعيل الأدوات لتلك المداخلة. - Work: تحصل المهام التي فُعّل وصولها إلى الشبكة على أداة
web_searchفي حلقة الوكيل. يقرر النموذج متى يستدعيها مثل أي أداة أخرى. لا ترى المهام غير المتصلة (الشبكة معطّلة) الأداة أبدًا، مع أن طلب البحث نفسه كان سيخرج من الواجهة الخلفية لا من البيئة المعزولة.
لا يؤدي فشل البحث إلى فشل المداخلة: يجيب النموذج من دون السياق ويستمر التشغيل.
الإعداد باستخدام الحزمة المضمّنة
يتضمن deploy/private/docker-compose.yml خدمة searxng بالفعل: داخلية فقط (لا
تُنشر على المضيف)، ومحصّنة، ومربوطة مسبقًا بالتطبيق عبر
SEARXNG_URL=http://searxng:8080.
-
أضف سرًا إلى
.env:SEARXNG_SECRET=any-long-random-value -
docker compose up -d. -
بصفتك مسؤولًا: الإعدادات > الاتصالات > البحث — يكون العنوان معبأ مسبقًا من البيئة — فعّل البحث، ثم اختر اختبار الاتصال.
الإعداد باستخدام SearXNG خاص بك
يعمل أي مثيل SearXNG يمكن الوصول إليه، مع شرط واحد: يجب تفعيل صيغة JSON في
settings.yml (تعطّلها معظم المثيلات العامة):
search:
formats:
- html
- json
ثم ألصق عنوانه الأساسي (مثل http://127.0.0.1:8888 أو
https://search.example.com) في الإعدادات > الاتصالات > البحث.
متغيرات البيئة
| المتغير | الافتراضي | الغرض |
|---|---|---|
SEARXNG_URL | غير معيّن | يعبئ العنوان مسبقًا في إعدادات البحث؛ ويظل التفعيل إجراءً للمسؤول |
يُحفظ الإعداد نفسه (التفعيل والعنوان) في قاعدة البيانات، فيبقى بعد إعادة التشغيل ويسري فورًا من دون إعادة نشر.
الخصوصية والنطاق
- تُنفّذ عمليات البحث على الخادم. لا تتصل المتصفحات بـSearXNG مباشرة. لا يحتاج Libre WebUI نفسه إلى حساب لدى موفّر بحث، مع أن نشر SearXNG مخصصًا قد يضبط محركات ببيانات اعتماد خاصة بها.
- تغادر عبارات البحث عملية Libre WebUI إلى SearXNG، ثم إلى المحركات العليا المحددة. يمنحك الاستضافة الذاتية للبوابة تحكمًا في تلك القفزة؛ لكنها لا تجعل البحث في الويب العام محليًا أو مجهول الهوية بذاتها.
- يُحد نص النتائج قبل دخوله سياق النموذج (500 حرف لكل نتيجة). يختار المسؤولون حدًا
للنتائج من 1–100؛ والافتراضي 6. ولا تُحتفظ إلا بعناوين النتائج
http(s). - لا يمكن الوصول إلى المثيل المضمّن إلا على الشبكة الداخلية للحزمة. لذلك يكون محدد المعدل فيه معطّلًا؛ فلا تنشره.
استكشاف الأخطاء وإصلاحها
لا توجد كرة أرضية في محرر الرسائل / لا توجد أداة web_search في Work. إما أن
البحث غير مفعّل (الإعدادات > الاتصالات > البحث)، أو أن الحساب غير مسموح له: يحتاج
المستخدمون العاديون إلى تفعيل البحث على الويب ضمن الإعدادات ← إدارة المستخدمين.
يفشل اختبار الاتصال بخطأ HTTP 403. لا يسمح المثيل بصيغة JSON. أضف json إلى
search.formats في settings.yml (انظر أعلاه)، ثم أعد تشغيله.
لا يستطيع اختبار الاتصال الوصول إلى الخدمة. يجب أن يكون العنوان قابلًا للوصول
من الواجهة الخلفية، لا من متصفحك. في الحزمة المضمّنة يكون
http://searxng:8080؛ أما localhost داخل الحاوية فيشير إلى الحاوية نفسها.
تتجاهل الردود النتائج. يظل النموذج هو من يقرر ما يستخدمه. تتبع النماذج الصغيرة السياق المحقون بصورة أفضل عندما يكون السؤال محددًا؛ وتعرض المصادر أسفل الرد دائمًا ما جرى استرجاعه.