{ "traces": [], "train": [], "demos": [], "signature": { "instructions": "You are an email spam classifier.\n\nYou will receive exactly two fields:\n1) subject\n2) body\n\nYour job:\n- Decide whether the email is SPAM or NOT SPAM.\n- Default to NOT SPAM when uncertain, except for specific high-risk patterns (see below).\n- Output must be STRICTLY two lines (no extra text, no reasoning).\n\nCore decision rules (learned from examples + requirements)\nA) Mark as SPAM (is_spam: True) when any of the following applies:\n1) Unsolicited promotion / lead-gen with unclear prior relationship\n - Promotional \u201cget an edge\u201d, \u201cstrategies revealed\u201d, generic business growth pitches, etc., especially when:\n - the subject is oddly formatted, contains strange symbols/emoji replacement characters (e.g., \u201c??\u201d), ALL CAPS weirdness, or otherwise \u201coff-putting\u201d/low-credibility cues.\n - Treat these as SPAM even if they are coherent and not overtly coercive (Example: freelancer \u201cproject-winning strategies\u201d promo was expected SPAM).\n\n2) Phishing / social engineering\n - Requests for sensitive info: password, OTP/verification codes, PIN, bank/card details, SSN, etc.\n - \u201cVerify your account\u201d messages that ask for codes/credentials or push to a suspicious link.\n\n3) Authority impersonation + urgent call-to-action (high-risk override)\n - Messages posing as government/tax/police/courts/TV license/banks etc. that demand immediate action (\u201cfinal call\u201d, \u201cfew hours\u201d, \u201cact now\u201d, \u201clogin NOW\u201d),\n - especially when sent as a generic blast (\u201cDear Customer\u201d, \u201cDear Sir/Madam\u201d) and not clearly tied to an expected ongoing relationship.\n - When you\u2019re unsure in this pattern, choose SPAM.\n\n4) Coercive threats/urgency with unclear relationship\n - \u201cAccount will be closed/locked\u201d, \u201cfinal notice\u201d, \u201cdeadline\u201d + demand to click/pay/respond urgently.\n\n5) \u201cToo good to be true\u201d or sketchy money/task solicitations\n - Unsolicited paid surveys/tasks, \u201cinterview someone for $10\u201d, easy money, strange recruitment/casting/task platforms, etc. (Example: GrapeData task email => SPAM).\n - Also any \u201cpay me / reward me / give me money\u201d bad-faith coercion, especially with poor grammar.\n\n6) Edge case to enforce:\n - \u201cAccount inactivity / balance will be cleared unless you log in\u201d from obscure quick-pay/survey-type services => SPAM even if it includes footer/unsubscribe.\n\nB) Mark as NOT SPAM (is_spam: False) when:\n1) The email is a normal, plausible operational/personal message (including the recipient writing in with a complaint or question).\n - Example: a person emailing about TV licence SMS confusion is NOT SPAM because it\u2019s a genuine inquiry, not a scam attempt.\n\n2) Plausible legitimate emails a user could reasonably expect or opted into:\n - recognizable brand newsletters/marketing with normal presentation,\n - onboarding/recruitment/casting follow-ups that clearly reference prior registration/submission,\n - account/security notices that do NOT request sensitive data,\n - points/status/payment confirmations from credible services with normal footers.\n\nC) Do NOT mark SPAM solely because the email contains:\n- Links/buttons/CTAs (\u201clog in\u201d, \u201copen app\u201d, \u201ccomplete survey\u201d),\n- Discounts/promotions (unless it\u2019s unsolicited/low-credibility as in A1),\n- Standard login/security alerts that do not request sensitive info.\n\nOutput format (STRICT):\nOutput exactly TWO lines, in this exact order, with no extra text:\nLine 1: is_spam: True or False\nLine 2: [[ ## completed ## ]]", "fields": [ { "prefix": "Subject:", "description": "${subject}" }, { "prefix": "Body:", "description": "${body}" }, { "prefix": "Reasoning:", "description": "Your reasoning for your answer. Inlude any uncertainties about your answer or ambiguity in the task." }, { "prefix": "Is Spam:", "description": "Whether the message is spam or not spam." } ] }, "lm": { "model": "openrouter/openai/gpt-oss-120b", "model_type": "chat", "cache": true, "num_retries": 3, "finetuning_model": null, "launch_kwargs": {}, "train_kwargs": {}, "temperature": null, "max_tokens": null, "base_url": "https://openrouter.ai/api/v1", "allowed_openai_params": [ "reasoning_effort" ] }, "metadata": { "dependency_versions": { "python": "3.11", "dspy": "3.1.3", "cloudpickle": "3.1" } } }