Sari la conținutul principal
🔒 Mod previzualizare. Primele cincisprezece lecții Foundations sunt gratuite; aceasta este Pro. Pornește un trial de 7 zile pentru a debloca editorul, sugestiile AI și restul programului. Card necesar, anulează oricând în Dashboard.Pornește trial de 7 zile →
← CursuriAI Engineering with PythonModulul 3 · RAG (Recuperare-Augmented Generation)Căutare hibridă: BM25 + vectorwrite37 / 105
+100 XP
Sarcină
📝 **Întrebare:** **Scrieți funcția** \`rrf(clasamente, k=60)\` — Fuziune de rang reciproc. Preia o listă de clasamente (fiecare clasare este o listă ordonată de ID-uri de documente de la cel mai bun la cel mai rău, de la un singur retriever) și returnează top-K fuzionat ca o listă de ID-uri de documente sortate după scorul total RRF, primul cel mai mare. Formula pentru un document într-un singur clasament la poziția zero-indexată \`rank\`: \`\`\` scor = 1 / (k + rang) \`\`\` Suma scorurile din toate clasamentele pentru fiecare document; sortați documentele după scorul total descendent. Apoi fuzionați un vector și un retriever BM25 pentru o interogare „SKU-4471”: \`\`\` vector = ["doc-A", "doc-B", "doc-C", "doc-D"] # vectorul consideră că A este cel mai bun bm25 = ["doc-D", "doc-A", "doc-E", "doc-F"] # bm25 pune D pe primul loc (se potrivește cu SKU) \`\`\` Imprimați top-4 fuzionat ca o listă Python: \`\`\` [„doc-A”, „doc-D”, „doc-B”, „doc-C”] \`\`\` A apare în ambele liste la ranguri înalte → victorii. D a fost #1 în BM25 → învinge B și C, chiar dacă vectorul nu l-a favorizat. Acesta este RRF: documentele clasate foarte bine de ORICE suprafață retriever. 📋 Alegeți răspunsul potrivit. 💡 **Sugestie:** Recitiți teoria de mai sus dacă nu sunteți sigur.
✏️ Scrie codul tău aici
🐍
Se încarcă Python...
Descărcare unică (~1 MB). După aceea, instant.
📊 Rezultat
Apasă Rulează pentru a vedea rezultatul...

💬 Discuție

Fii primul — pune o întrebare sau împărtășește un sfat.
Conectează-te pentru a te alătura discuției. Citirea este gratuită.
Se încarcă discuția…