[23 أغسطس 2023] تم إصدار retriv
0.2.2!
يضيف هذا الإصدار دعمًا تجريبيًا للمستندات والمرشحات متعددة الحقول. من فضلك، راجع وثائق المسترد المتقدم.
[18 فبراير 2023] تم إصدار retriv
0.2.0!
يضيف هذا الإصدار دعمًا للاسترجاع الكثيف والمختلط. يعمل الاسترجاع الكثيف على تعزيز التشابه الدلالي بين تمثيلات المتجهات الخاصة بالاستعلامات والمستندات، والتي يمكن حسابها مباشرة عن طريق retriv
أو استيرادها من مصادر أخرى. يمزج الاسترجاع المختلط بين الاسترجاع التقليدي، والذي يسمى بشكل غير رسمي الاسترجاع المتفرق، ونتائج الاسترجاع الكثيف لزيادة تحسين فعالية الاسترجاع. نظرًا لأنه تم إعادة تصميم المكتبة بالكامل تقريبًا، فإن الفهارس التي تم إنشاؤها باستخدام الإصدارات السابقة لم تعد مدعومة.
retriv هو محرك بحث سهل الاستخدام وفعال يتم تنفيذه في Python ويدعم Sparse (البحث التقليدي مع BM25 وTF-IDF) وDense (البحث الدلالي) والاسترجاع الهجين (مزيج من الاسترجاع المتناثر والكثيف). فهو يسمح لك ببناء محرك بحث في سطر واحد من التعليمات البرمجية .
تم بناء retriv على Numba لعمليات المتجهات عالية السرعة والموازاة التلقائية، وPyTorch وTransformers لسهولة الوصول واستخدام نماذج اللغة القائمة على المحولات، وFaiss للبحث التقريبي عن أقرب جيران. بالإضافة إلى ذلك، فهو يوفر وظائف الضبط التلقائي للسماح لك بضبط مكوناته الداخلية بأقل قدر من التدخل.
تشترك جميع المستردات المدعومة في نفس واجهة البحث:
يقوم retriv تلقائيًا بضبط تكوين Faiss للبحث التقريبي عن أقرب الجيران من خلال الاستفادة من AutoFaiss لضمان وقت استجابة يبلغ 10 مللي ثانية بناءً على أجهزتك المتوفرة. علاوة على ذلك، فهو يوفر وظيفة الضبط التلقائي لمعلمات BM25، والتي تتطلب الحد الأدنى من تدخل المستخدم. تحت الغطاء، تستفيد retriv من Optuna، وهو إطار عمل لتحسين المعلمات الفائقة، وranx، وهي مكتبة تقييم استرجاع المعلومات، لاختبار العديد من تكوينات المعلمات لـ BM25 واختيار الأفضل. أخيرًا، يمكنه الموازنة تلقائيًا بين أهمية درجات الملاءمة المعجمية والدلالية التي يحسبها المسترد الهجين لتحقيق أقصى قدر من فعالية الاسترجاع.
python>=3.8
pip install retriv
# Note: SearchEngine is an alias for the SparseRetriever
from retriv import SearchEngine
collection = [
{ "id" : "doc_1" , "text" : "Generals gathered in their masses" },
{ "id" : "doc_2" , "text" : "Just like witches at black masses" },
{ "id" : "doc_3" , "text" : "Evil minds that plot destruction" },
{ "id" : "doc_4" , "text" : "Sorcerer of death's construction" },
]
se = SearchEngine ( "new-index" ). index ( collection )
se . search ( "witches masses" )
الإخراج:
[
{
"id" : " doc_2 " ,
"text" : " Just like witches at black masses " ,
"score" : 1.7536403
},
{
"id" : " doc_1 " ,
"text" : " Generals gathered in their masses " ,
"score" : 0.6931472
}
]
هل ترغب في رؤية الميزات الأخرى يتم تنفيذها؟ من فضلك، افتح طلب الميزة.
هل ترغب في المساهمة؟ من فضلك، أرسل لي رسالة بالبريد الإلكتروني.
retriv هو برنامج مفتوح المصدر مرخص بموجب ترخيص MIT.