Przejdź do treści głównej
🔒 Tryb podglądu. Pierwszych piętnaście lekcji Foundations jest darmowych; ta jest Pro. Rozpocznij 7-dniowy trial, aby odblokować edytor, podpowiedzi AI i resztę kursu. Wymagana karta, anulujesz w dowolnym momencie w Dashboard.Rozpocznij 7-dniowy trial →
← KursyAI Engineering with PythonModuł 3 · RAG (generacja wspomagana odzyskiwaniem)Wyszukiwanie hybrydowe: BM25 + wektorwrite37 / 105
+100 XP
Zadanie
📝 **Pytanie:** **Napisz funkcję** \`rrf(rankingi, k=60)\` — Fuzja rang wzajemnych. Pobiera listę rankingów (każdy ranking jest uporządkowaną listą identyfikatorów dokumentów od najlepszego do najgorszego, od jednego retrievera) i zwraca połączone górne K jako listę identyfikatorów dokumentów posortowanych według całkowitego wyniku RRF, najpierw najwyższy. Wzór na jeden dokument w jednym rankingu na pozycji zerowej indeksowanej \`ranking\`: \`\`\` wynik = 1 / (k + pozycja) \`\`\` Sumuj wyniki ze wszystkich rankingów każdego dokumentu; sortuj dokumenty malejąco według całkowitego wyniku. Następnie połącz wektor i retriever BM25, aby uzyskać zapytanie „SKU-4471”: \`\`\` wektor = ["doc-A", "doc-B", "doc-C", "doc-D"] # wektor uważa, że A jest najlepsze bm25 = ["doc-D", "doc-A", "doc-E", "doc-F"] # bm25 stawia D na pierwszym miejscu (dopasowuje SKU) \`\`\` Wydrukuj połączone top-4 jako listę Pythona: \`\`\` ['doc-A', 'doc-D', 'doc-B', 'doc-C'] \`\`\` A pojawia się na obu listach na wysokich pozycjach → wygrywa. D był numerem 1 w BM25 → pokonuje B i C, mimo że wektor mu nie sprzyjał. To jest RRF: dokumenty wysoko ocenione przez KAŻDĄ powierzchnię retrievera. 📋 Wybierz właściwą odpowiedź. 💡 **Wskazówka:** Jeśli nie jesteś pewien, przeczytaj ponownie powyższą teorię.
✏️ Pisz kod tutaj
🐍
Ładowanie Pythona...
Jednorazowe pobranie (~1 MB). Potem działa od razu.
📊 Wynik
Kliknij Uruchom, aby zobaczyć wynik...

💬 Dyskusja

Zadaj pierwsze pytanie lub podziel się wskazówką.
Zaloguj się aby dołączyć do dyskusji. Czytanie jest darmowe.
Ładowanie dyskusji…