Přejít k hlavnímu obsahu
🔒 Režim náhledu. Prvních patnáct lekcí Foundations je zdarma; tato je Pro. Spusťte 7denní trial pro odemčení editoru, AI nápověd a zbytku kurzu. Karta vyžadována, zrušte kdykoli v Dashboard.Spustit 7denní trial →
← KurzyAI Engineering with PythonModul 3 · RAG (generování rozšířeného vyhledávání)Filtrování metadatwrite39 / 105
+75 XP
Úkol
📝 **Otázka:** **Napište funkci** \`safe_search(dotaz, filtr)\`, která chrání RAG pro více nájemců před třídou úniku č. 1 – chybějícím filtrem \`tenant_id\`. pravidla: - Pokud \`filtr\` není diktát → zvyšte \`ValueError("filtr musí být diktát")\`. - Pokud \`tenant_id\` chybí NEBO je prázdné/chybné → zvyšte \`ValueError("ZABEZPEČENÍ: filtr tenant_id je povinný a není prázdný")\`. - Jinak vraťte \`f"OK | {query!r} v rozsahu na tenanta {filter['tenant_id']!r}"\`. Poté jej spusťte proti čtyřem tvarům požadavků (dvě skutečné, dva nebezpečné): \`\`\` OK | 'zásady vracení peněz' v rozsahu pro nájemce 'acme' BLOKOVÁNO | 'platová tabulka' | ZABEZPEČENÍ: Filtr tenant_id je povinný a není prázdný OK | 'historie objednávek' s rozsahem na nájemce 'globex' BLOKOVÁNO | 'klíče API' | ZABEZPEČENÍ: Filtr tenant_id je povinný a není prázdný \`\`\` Případ s prázdným řetězcem je záludný — \`"tenant_id" ve filtru\` by prošlo, ale \`filter.get("tenant_id")\` vrací falešnou hodnotu. **Vždy kontrolujte pravdivost, nikdy ne pouze přítomnost klíče.** Špatně nakonfigurovaný frontend výchozí \`tenant_id\` na \`""\` způsobil úniky mezi nájemci v reálném světě. 📋 Vyberte správnou odpověď. 💡 **Tip:** Pokud si nejste jisti, přečtěte si znovu teorii výše.
✏️ Piš svůj kód zde
🐍
Načítání Pythonu...
Jednorázové stažení (~1 MB). Pak hned běží.
📊 Výsledek
Klikni na Spustit a uvidíš výsledek...

💬 Diskuze

Buď první — polož otázku nebo se podělej o tip.
Přihlas se abys se zapojil do diskuze. Čtení je zdarma.
Načítání diskuze…