Eishaan's picture
Build site intelligence studio prototype
1b141db
Raw
History Blame Contribute Delete
1.09 kB
from __future__ import annotations
MANDATORY_SAFETY_NOTES = [
"Preliminary site-analysis assistant.",
"Verify on site.",
"Public data may be coarse or incomplete.",
"Drawn boundaries are approximate.",
"CAD boundary is only as reliable as the uploaded drawing.",
"Soil/foundation requires professional geotechnical verification.",
"This does not replace architect/engineer judgment.",
]
FORBIDDEN_PHRASES = [
"Use this foundation",
"This foundation is safe",
"Exact legal boundary",
"This soil is exact",
"No site visit is needed",
"No professional verification is needed",
"This design is correct",
]
def safety_block() -> str:
return "\n".join(f"- {note}" for note in MANDATORY_SAFETY_NOTES)
def find_forbidden_phrases(text: str) -> list[str]:
lower = text.lower()
return [phrase for phrase in FORBIDDEN_PHRASES if phrase.lower() in lower]
def assert_safe_text(text: str) -> None:
found = find_forbidden_phrases(text)
if found:
raise ValueError("Unsafe report text contains: " + ", ".join(found))