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)Filtrowanie metadanychwrite39 / 105
+75 XP
Zadanie
📝 **Pytanie:** **Napisz funkcję** \`safe_search(query, filter)\`, która chroni RAG z wieloma dzierżawcami przed klasą wycieku nr 1 — brakującym filtrem \`ident_tenant_id\`. Zasady: - Jeśli \`filter\` nie jest dyktandem → podnieś \`ValueError("filter musi być dyktandem")\`. - Jeśli \`ident_dzierżawcy\` jest nieobecny LUB pusty/fałsz → podnieś \`ValueError("BEZPIECZEŃSTWO: filtr identyfikatora_dzierżawy jest obowiązkowy i niepusty")\`. - W przeciwnym razie zwróć \`f"OK | {query!r} w zakresie do najemcy {filter['tenant_id']!r}"\`. Następnie uruchom go w oparciu o cztery kształty żądań (dwa rzeczywiste, dwa niebezpieczne): \`\`\` OK | „Zasady zwrotów” obejmujące najemcę „acme” ZABLOKOWANE | „tabela wynagrodzeń” | BEZPIECZEŃSTWO: filtr identyfikatora najemcy jest obowiązkowy i niepusty OK | „historia zamówień” ograniczona do najemcy „globex” ZABLOKOWANE | „Klucze API” | BEZPIECZEŃSTWO: filtr identyfikatora najemcy jest obowiązkowy i niepusty \`\`\` Przypadek z pustym ciągiem jest podstępny — \`„identyfikator_dzierżawcy” w filtrze\` przejdzie, ale \`filter.get("id_dzierżawcy")\` zwraca wartość fałsz. **Zawsze sprawdzaj prawdę, nigdy tylko obecność klucza.** Źle skonfigurowany interfejs użytkownika, domyślnie ustawiając \`tenant_id\` na \`””\`, spowodował wycieki między dzierżawcami w świecie rzeczywistym. 📋 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…