أنا أجرب استخدام الذكاء الاصطناعي في منتدانا الخطابي وحتى الآن هو جيد جدًا (عمل رائع يا رفاق)، فهو يأخذ في الاعتبار نية المستخدم حقًا ويقدم نتائج ذات صلة كبيرة.
لا يمكنني العثور على أي إعدادات لتمكين هذا افتراضيًا، كيف يقوم المسؤول بذلك؟ القوة الحقيقية هي تمكين هذه الميزة افتراضيًا والتخلي عن البحث الدلالي الذي يمكن أن يكون ناجحًا أو فاشلاً.
من المضحك أنني حاولت البحث في هذا المنتدى باستخدام الذكاء الاصطناعي ولم أتمكن من الحصول على أي إجابات ذات صلة.
لقد جعلناه للتو تبديلًا افتراضيًا عندما لا تسفر عملية البحث في الصفحة بأكملها عن نتائج، وسنجعلها تلحق تلقائيًا بنتائج الذكاء الاصطناعي في البحث السريع في الرأس عندما لا تسفر عن نتائج أو عن عدد قليل من النتائج تاليًا.
هذه بداية رائعة. سيكون من الجيد وجود خيار لتحديد أولويات النتائج التي نريد عرضها كخيار أول (امتداد للمنطق الذي تم تنفيذه للتو). بحث الذكاء الاصطناعي أو البحث الدلالي الأصلي. في حالتي، ينتج الذكاء الاصطناعي نتائج أكثر صلة بكثير عند البحث.
الفكرة هنا هي أن الرموز (tokens) تُستهلك بالفعل لتشغيل بحث الذكاء الاصطناعي، فلماذا لا نعرض النتائج إذا كانت أكثر ملاءمة. لا يزال العديد من المستخدمين قلقين بشأن الذكاء الاصطناعي لذلك لا يقومون بتفعيل المفتاح، ولكن في نفس الوقت يحصلون على نتائج بحث مضللة (دلالية) ولا يدركون ذلك. دع المسؤولين يقررون ما هو الأفضل لافتراضات مجتمعاتهم.
كحل مؤقت إذا احتاج شخص ما إلى تمكين زر التبديل افتراضيًا، يمكنك إضافة هذا البرنامج النصي إلى السمة الخاصة بك (لقد وضعته تحت <body>) والذي يبحث بشكل أساسي عن تغيير في نتائج بحث الذكاء الاصطناعي ثم يقوم بتمكين نتائج الذكاء الاصطناعي. هذا ليس أنظف كود، ربما لدى @awesomerobot طريقة أكثر أناقة للقيام بذلك.
<script type="text/javascript">
// هذا البرنامج النصي لتمكين التبديل لتضمين نتائج البحث من الذكاء الاصطناعي بعد اكتمال البحث - احذفه بمجرد وجود خيار أصلي لتمكين هذا افتراضيًا
console.log('تم تحميل البرنامج النصي. البحث المستمر عن .semantic-search__searching وإدارة المراقب.');
let searchObserver = null; // متغير للاحتفاظ بمثيل المراقب
function observeSearchContainer() {
const searchStatusContainer = document.querySelector('.semantic-search__searching');
if (searchStatusContainer) {
// إذا تم العثور على الحاوية
if (!searchObserver) {
// إذا لم يكن المراقب قيد التشغيل بالفعل، فابدأ واحدًا
console.log('تم العثور على .semantic-search__searching. بدء المراقبة.');
searchObserver = new MutationObserver(function(mutations) {
//console.log('تم اكتشاف طفرة في .semantic-search__searching:', mutations);
mutations.forEach(function(mutation) {
// التحقق من الطفرات ذات الصلة داخل الحاوية المرصودة
if (mutation.type === 'characterData') {
//console.log('تم اكتشاف نوع طفرة ذات صلة. محاولة تشغيل وظيفة زر التبديل. ' + mutation.type);
const currentToggleButton = document.querySelector('button.d-toggle-switch__checkbox.semantic-search__results-toggle');
if (currentToggleButton) {
const isCurrentlyEnabled = currentToggleButton.getAttribute('aria-checked') === 'true';
if (!isCurrentlyEnabled) { // إذا لم يكن زر التبديل ممكّنًا حاليًا
// تشغيل حدث نقر لتنشيط الوظيفة المرتبطة
currentToggleButton.click();
console.log('تم تشغيل حدث النقر على زر التبديل.');
} else {
console.log('زر التبديل ممكّن بالفعل.');
}
} else {
// قد تحدث هذه الحالة إذا تمت إزالة زر التبديل أثناء وجود الحاوية
console.log('لم يتم العثور على زر التبديل عند محاولة تشغيل الوظيفة.');
}
}
});
});
const config = { childList: true, subtree: true, characterData: true, attributes: true };
searchObserver.observe(searchStatusContainer, config);
console.log('تم بدء MutationObserver على .semantic-search__searching.');
} else {
// تم العثور على الحاوية، والمراقب نشط بالفعل لها
//console.log('تم العثور على .semantic-search__searching، المراقب نشط بالفعل.');
}
} else {
// إذا لم يتم العثور على الحاوية
if (searchObserver) {
// إذا كان المراقب يعمل سابقًا، فهذا يعني أنه تمت إزالة الحاوية
console.log('تمت إزالة .semantic-search__searching. قطع اتصال المراقب.');
searchObserver.disconnect(); // إيقاف المراقبة
searchObserver = null; // إعادة تعيين متغير المراقب
} else {
// لم يتم العثور على الحاوية، ولا يوجد مراقب نشط (الحالة الصحيحة)
//console.log('لم يتم العثور على .semantic-search__searching بعد.');
}
}
}
// استخدام فاصل زمني للتحقق بشكل دوري من وجود الحاوية
const containerCheckInterval = setInterval(observeSearchContainer, 500); // التحقق كل 500 مللي ثانية
</script>