from __future__ import annotations OPENAI_TAXONOMY = [ "harassment", "harassment_threatening", "hate", "hate_threatening", "self_harm", "self_harm_intent", "self_harm_instructions", "sexual", "sexual_minors", "violence", "violence_graphic", ] EXTENDED_TAXONOMY = [ "identity_attack", "insult", "profanity_obscene", "threat", "sexual_explicit", "severe_toxicity", "dehumanize", "incitement_violence", ] TAXONOMY = OPENAI_TAXONOMY + EXTENDED_TAXONOMY SYNTHETIC_ONLY = { "self_harm", "self_harm_intent", "self_harm_instructions", "sexual_minors", "violence_graphic", } JIGSAW_LABELS = [ "toxic", "severe_toxic", "obscene", "threat", "insult", "identity_hate", ] SPAM_LABELS = ["spam", "scam", "phishing"] JAILBREAK_LABELS = [ "jailbreak", "instruction_override", "role_hijack", "data_exfiltration", ] NSFW_LABELS = ["sexual_suggestive", "sexual_explicit"] IDENTITY_LABELS = [ "race", "religion", "gender", "sexuality", "disability", "origin", "age", ] V2_HEADS = { "spam": SPAM_LABELS, "jailbreak": JAILBREAK_LABELS, "nsfw": NSFW_LABELS, "identity": IDENTITY_LABELS, } PII_ENTITIES = [ "PERSON", "FIRSTNAME", "LASTNAME", "USERNAME", "EMAIL", "PHONE", "FAX", "STREET_ADDRESS", "CITY", "STATE", "ZIPCODE", "COUNTRY", "BUILDINGNUMBER", "SECONDARYADDRESS", "NEARBYGPSCOORDINATE", "DOB", "AGE", "SSN", "PASSPORT", "DRIVERLICENSE", "IDCARD", "CREDITCARD", "CREDITCARDCVV", "CREDITCARDEXP", "IBAN", "BIC_SWIFT", "ACCOUNTNUMBER", "ROUTINGNUMBER", "BITCOINADDRESS", "ETHEREUMADDRESS", "IPV4", "IPV6", "MACADDRESS", "URL", "USERAGENT", "COMPANYNAME", "JOBTITLE", "MRN", "MEDICALLICENSE", "HEALTHINSURANCEID", "VEHICLEVIN", "VEHICLEPLATE", "TIME", "DATE", "PIN", "PASSWORD", "APIKEY", "ORDINALDIRECTION", "CURRENCY", "AMOUNT", "GENDER", "ETHNICITY", "RELIGION", "SEXUALITY", "POLITICAL", "MARITALSTATUS", ] PII_TAGS = ["O"] + [f"{p}-{e}" for e in PII_ENTITIES for p in ("B", "I")] N_PII_TAGS = len(PII_TAGS) TAG_TO_ID = {t: i for i, t in enumerate(PII_TAGS)} def n_tax() -> int: return len(TAXONOMY)