| | from typing import TypedDict |
| |
|
| | class SafetyResult(TypedDict): |
| | safe: bool |
| | reason: str |
| |
|
| | UNSAFE_KEYWORDS = [ |
| | "đốt", |
| | "cháy", |
| | "nổ", |
| | "phá hủy", |
| | "phá hoại", |
| | "đập vỡ", |
| | "làm đau", |
| | "tấn công", |
| | "giết", |
| | "cầm dao", |
| | "tắt báo cháy", |
| | ] |
| |
|
| | def check_safety(command: str) -> SafetyResult: |
| | """Check whether a Vietnamese command is safe for a home robot to execute.""" |
| | text = command.lower() |
| |
|
| | for word in UNSAFE_KEYWORDS: |
| | if word in text: |
| | return { |
| | "safe": False, |
| | "reason": f"Command contains unsafe keyword: '{word}'", |
| | } |
| |
|
| | |
| | return { |
| | "safe": True, |
| | "reason": "No unsafe patterns detected", |
| | } |
| |
|
| | if __name__ == "__main__": |
| | tests = [ |
| | "Bật đèn phòng khách", |
| | "Đốt rèm cửa đi", |
| | "Mang dao vào phòng khách", |
| | ] |
| | for t in tests: |
| | print(t, "->", check_safety(t)) |
| |
|