Към основното съдържание
🔒 Режим за преглед. Първите петнадесет урока на Foundations са безплатни; този е Pro. Стартирайте 7-дневен trial, за да отключите редактора, AI подсказките и останалата част от курса. Изисква се карта, отменете по всяко време в Dashboard.Стартирай 7-дневен trial →
← КурсовеAI Engineering with PythonМодул 3 · RAG (генериране с допълнено извличане)Хибридно търсене: BM25 + векторwrite37 / 105
+100 XP
Задача
📝 **Въпрос:** **Напишете функцията** \`rrf(rankings, k=60)\` — Обединяване на реципрочни рангове. Взема списък с класации (всяко класиране е подреден списък с идентификатори на документи от най-добрите към най-лошите, от един ретривър) и връща слятото най-високо K като списък с идентификатори на документи, сортирани по общия RRF резултат, най-високият първи. Формула за един документ в едно класиране на нулева индексирана позиция \`ранг\`: \`\`\` резултат = 1 / (k + ранг) \`\`\` Сума на резултатите във всички класации за всеки документ; сортиране на документи по общ резултат в низходящ ред. След това обединете вектор и ретривър BM25 за заявка "SKU-4471": \`\`\` вектор = ["doc-A", "doc-B", "doc-C", "doc-D"] # вектор смята, че A е най-доброто bm25 = ["doc-D", "doc-A", "doc-E", "doc-F"] # bm25 поставя D първо (съвпада с SKU) \`\`\` Отпечатайте смесените топ-4 като списък на Python: \`\`\` ['doc-A', 'doc-D', 'doc-B', 'doc-C'] \`\`\` A се появява и в двата списъка на високи рангове → печели. D беше #1 в BM25 → побеждава B и C, въпреки че векторът не го предпочиташе. Това е RRF: документи, класирани високо от ВСЯКА повърхност за ретривър. 📋 Изберете правилния отговор. 💡 **Съвет:** Прочетете отново теорията по-горе, ако не сте сигурни.
✏️ Пиши кода тук
🐍
Зареждане на Python...
Еднократно изтегляне (~1 MB). После работи мигновено.
📊 Резултат
Натисни Изпълни, за да видиш резултата...

💬 Дискусия

Бъди първи — задай въпрос или сподели съвет.
Влез за да се присъединиш към дискусията. Четенето е безплатно.
Зареждане на дискусията…