Saltar al contenido principal
🔒 Modo vista previa. Las primeras quince lecciones de Foundations son gratis; esta es Pro. Inicia un trial de 7 días para desbloquear el editor, las pistas AI y el resto del programa. Tarjeta requerida, cancela cuando quieras en Dashboard.Iniciar trial de 7 días →
← CursosAI Engineering with PythonMódulo 3 · RAG (Recuperación-Generación Aumentada)Filtrado de metadatoswrite39 / 105
+75 XP
Tarea
📝 **Pregunta:** **Escriba la función** \`safe_search(query, filter)\` que protege un RAG multiinquilino contra la clase de fuga número uno: un filtro \`tenant_id\` que falta. Reglas: - Si \`filtro\` no es un dictado → genera \`ValueError("el filtro debe ser un dictado")\`. - Si \`tenant_id\` está ausente O está vacío/falso → genera \`ValueError("SEGURIDAD: el filtro tenant_id es obligatorio y no está vacío")\`. - De lo contrario, devuelva \`f"OK | {query!r} con alcance al inquilino {filter['tenant_id']!r}"\`. Luego ejecútelo con cuatro formas de solicitud (dos reales, dos inseguras): \`\`\` Aceptar | 'política de reembolso' dirigida al inquilino 'acme' BLOQUEADO | 'tabla de salarios' | SEGURIDAD: el filtro inquilino_id es obligatorio y no está vacío Aceptar | 'historial de pedidos' con alcance al inquilino 'globex' BLOQUEADO | 'Claves API' | SEGURIDAD: el filtro inquilino_id es obligatorio y no está vacío \`\`\` El caso de cadena vacía es el más engañoso: \`"tenant_id" en filter\` pasaría, pero \`filter.get("tenant_id")\` devuelve false. **Siempre verifique la veracidad, nunca solo la presencia de claves.** Una interfaz mal configurada que establece de manera predeterminada \`tenant_id\` en \`""\` ha causado filtraciones entre inquilinos en el mundo real. 📋 Elige la respuesta correcta. 💡 **Pista:** Vuelve a leer la teoría anterior si no estás seguro.
✏️ Escribe tu código aquí
🐍
Cargando Python...
Descarga única (~1 MB). Después, es instantáneo.
📊 Resultado
Pulsa Ejecutar para ver el resultado...

💬 Discusión

Sé el primero en hacer una pregunta o compartir un consejo.
Inicia sesión para unirte a la discusión. Leer es gratis.
Cargando discusión…