| import re |
|
|
| def detect_harm_category(query: str) -> str: |
| q = query.lower() |
|
|
| SELF_HARM = [ |
| "suicide","kill myself","end my life","want to die", |
| "self harm","hurt myself","cut myself", |
| "jump off","overdose","hang myself","unalive myself" |
| ] |
|
|
| SEXUAL = [ |
| "porn","explicit","nude","naked","rape", |
| "child abuse","underage","minor","sexual assault" |
| ] |
|
|
| VIOLENCE = [ |
| "kill","murder","shoot","stab","attack", |
| "bomb","terrorist","weapon","gun" |
| ] |
|
|
| ILLEGAL = [ |
| "hack","phish","malware","ransomware","ddos", |
| "fraud","fake id","credit card fraud", |
| "cocaine","heroin","meth","lsd","drugs" |
| ] |
|
|
| MEDICAL = [ |
| "prescribe","prescription","dosage","dose", |
| "medicine","medication","what should i take" |
| ] |
|
|
| for t in SELF_HARM: |
| if t in q: return "SELF_HARM" |
| for t in SEXUAL: |
| if t in q: return "SEXUAL" |
| for t in VIOLENCE: |
| if t in q: return "VIOLENCE" |
| for t in ILLEGAL: |
| if t in q: return "ILLEGAL" |
| for t in MEDICAL: |
| if t in q: return "MEDICAL" |
|
|
| |
| if re.search(r"s[\W_]*u[\W_]*i[\W_]*c[\W_]*i[\W_]*d[\W_]*e", q): |
| return "SELF_HARM" |
|
|
| return "SAFE" |
|
|