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)Filtrarea metadatelorwrite39 / 105
+75 XP
Sarcină
📝 **Întrebare:** **Scrieți funcția** \`căutare_sigură(interogare, filtru)\` care protejează un RAG cu mai mulți locatari împotriva clasei de scurgere nr. 1 — un filtru \`tenant_id\` lipsă. Reguli: - Dacă \`filtru\` nu este un dict → ridicați \`ValueError(„filtrul trebuie să fie un dict”)\`. - Dacă \`tenant_id\` este absent SAU gol/fals → ridicați \`ValueError("SECURITY: filtrul tenant_id este obligatoriu și nu este gol")\`. - În caz contrar, returnați \`f"OK | {query!r} sfera de aplicare a chiriașului {filter['tenant_id']!r}"\`. Apoi rulați-l pe patru forme de solicitare (două reale, două nesigure): \`\`\` OK | „politica de rambursare” vizată chiriașului „acme” BLOCAT | 'tabel de salarii' | SECURITATE: filtrul tenant_id este obligatoriu și nu este gol OK | „Istoricul comenzilor” se adresează chiriașului „globex” BLOCAT | „Cheile API” | SECURITATE: filtrul tenant_id este obligatoriu și nu este gol \`\`\` Cazul cu șir gol este cel mai ascuns — ar trece \`"tenant_id" în filter\`, dar \`filter.get("tenant_id")\` returnează fals. **Verificați întotdeauna adevărul, niciodată doar prezența cheii.** Un front-end configurat greșit, care a implicit \`tenant_id\` la \`""\` a provocat scurgeri de informații în lumea reală între chiriași. 📋 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…