File size: 81,887 Bytes
4533ee3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27e7df9
 
4533ee3
 
 
 
 
 
 
 
 
 
 
3dd5cf3
4533ee3
 
 
 
 
 
 
 
 
 
 
724934a
4533ee3
 
 
 
3dd5cf3
4533ee3
7a6e4a3
 
 
 
 
 
 
 
 
4533ee3
 
e42055e
4533ee3
 
 
 
 
 
0e808f0
4533ee3
 
 
 
 
 
 
 
e42055e
4533ee3
 
 
 
e42055e
4533ee3
e42055e
0e808f0
 
e42055e
 
 
4533ee3
 
724934a
 
0e808f0
724934a
 
 
 
 
 
 
 
 
4533ee3
 
 
 
 
 
 
 
 
0e808f0
4533ee3
 
 
63ae455
 
4533ee3
63ae455
e42055e
4533ee3
 
3dd5cf3
724934a
e42055e
4533ee3
e42055e
4533ee3
 
3dd5cf3
724934a
e42055e
4533ee3
 
 
 
3dd5cf3
724934a
e42055e
4533ee3
 
 
 
3dd5cf3
724934a
e42055e
4533ee3
 
 
e42055e
3dd5cf3
e42055e
 
4533ee3
 
e42055e
 
 
63ae455
 
 
3dd5cf3
 
63ae455
 
3dd5cf3
4533ee3
 
 
 
 
 
 
 
 
 
 
0e808f0
4533ee3
 
 
 
 
3dd5cf3
4533ee3
 
 
 
 
 
3dd5cf3
4533ee3
e42055e
0e808f0
4533ee3
3dd5cf3
4533ee3
 
 
3dd5cf3
4533ee3
 
 
 
 
 
 
0e808f0
4533ee3
 
 
 
63ae455
4533ee3
 
 
 
 
 
7a6e4a3
 
 
63ae455
7a6e4a3
 
 
 
 
0e808f0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7a6e4a3
 
4533ee3
 
 
 
e42055e
 
3dd5cf3
4533ee3
3dd5cf3
 
 
 
 
 
 
4533ee3
 
63ae455
 
 
0e808f0
63ae455
 
 
 
 
 
 
 
 
3dd5cf3
63ae455
 
 
 
0e808f0
63ae455
 
 
 
 
 
 
 
 
 
 
3dd5cf3
63ae455
3dd5cf3
4533ee3
0e808f0
4533ee3
63ae455
3dd5cf3
0e808f0
63ae455
3dd5cf3
63ae455
7a6e4a3
63ae455
 
 
 
 
3dd5cf3
 
 
 
 
63ae455
7a6e4a3
63ae455
7a6e4a3
0e808f0
3dd5cf3
4533ee3
 
 
3dd5cf3
7a6e4a3
0e808f0
3dd5cf3
 
4533ee3
 
 
 
 
 
 
0e808f0
4533ee3
0e808f0
4533ee3
0e808f0
4533ee3
0e808f0
4533ee3
0e808f0
4533ee3
0e808f0
978ee24
 
 
 
 
 
e42055e
0e808f0
63ae455
3dd5cf3
4533ee3
 
 
e42055e
4533ee3
 
 
 
 
 
 
 
 
 
 
3dd5cf3
4533ee3
 
 
 
 
 
0e808f0
 
 
 
 
 
 
 
 
63ae455
3dd5cf3
978ee24
4533ee3
 
 
 
 
 
 
 
 
 
 
 
3dd5cf3
4533ee3
 
 
 
 
 
 
 
 
27eb94d
 
 
0e808f0
27eb94d
 
 
 
 
0e808f0
27eb94d
 
0e808f0
27eb94d
 
 
 
 
 
 
4533ee3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Minerva: AI Guardian for Scam Protection"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This notebook implements a multi-agent system for analyzing images (screenshots) to identify scam attempts, and provide personalized scam prevention. It uses [AutoGen](https://github.com/microsoft/autogen/) to orchestrate various specialized agents that work together.\n",
    "\n",
    "Benefits:\n",
    "- Automates the process of identifying suspicious scam patterns.\n",
    "- Prevents Financial Loss\n",
    "- Saves Time: Early scam detection reduces the number of claims filed by end-users."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Install Dependencies"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Note: you may need to restart the kernel to use updated packages.\n"
     ]
    }
   ],
   "source": [
    "%pip install -q autogen-agentchat~=0.2 pillow pytesseract pyyaml"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "flaml.automl is not available. Please install flaml[automl] to enable AutoML functionalities.\n"
     ]
    }
   ],
   "source": [
    "import autogen\n",
    "\n",
    "from IPython.display import Image as IPImage\n",
    "from IPython.display import display"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "from dotenv import load_dotenv, find_dotenv\n",
    "\n",
    "load_dotenv(find_dotenv())\n",
    "\n",
    "config_list = [\n",
    "    {\n",
    "        \"model\": \"gpt-4o-mini\",\n",
    "        \"api_key\": os.getenv(\"OPENAI_API_KEY\")\n",
    "    }\n",
    "]\n",
    "\n",
    "llm_config = {\n",
    "    \"cache_seed\": 42,\n",
    "    \"temperature\": 0,\n",
    "    \"config_list\": config_list,\n",
    "    \"timeout\": 120,\n",
    "}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "import yaml\n",
    "\n",
    "with open('config/agents.yaml', 'r') as file:\n",
    "    config = yaml.safe_load(file)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Agents Creation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "from tools import Tools\n",
    "\n",
    "def create_agents():\n",
    "    tools = Tools()\n",
    "\n",
    "    ocr_agent = autogen.AssistantAgent(\n",
    "        name=\"OCR_Specialist\",\n",
    "        description=\"Extracts text from an image\",\n",
    "        system_message=config['ocr_agent']['assignment'],\n",
    "        llm_config=llm_config\n",
    "    )\n",
    "   \n",
    "    content_agent = autogen.AssistantAgent(\n",
    "        name=\"Content_Analyst\",\n",
    "        description=\"Analyzes the text for scam patterns\",\n",
    "        system_message=config['content_agent']['assignment'],\n",
    "        llm_config=llm_config\n",
    "    )\n",
    "\n",
    "    decision_agent = autogen.AssistantAgent(\n",
    "        name=\"Decision_Maker\",\n",
    "        description=\"Synthesizes the analyses and make final determination\",\n",
    "        system_message=config['decision_agent']['assignment'],\n",
    "        llm_config=llm_config\n",
    "    )\n",
    "\n",
    "    summary_agent = autogen.AssistantAgent(\n",
    "        name=\"Summary_Agent\",\n",
    "        description=\"Generate a summary of the final determination\",\n",
    "        system_message=config['summary_agent']['assignment'],\n",
    "        llm_config=llm_config\n",
    "    )\n",
    "\n",
    "    user_proxy = autogen.UserProxyAgent(\n",
    "        name=\"user_proxy\",\n",
    "        is_termination_msg=lambda x: \"COMPLETE\" in x.get(\"content\", \"\"),\n",
    "        human_input_mode=\"NEVER\",\n",
    "        max_consecutive_auto_reply=10,\n",
    "    )\n",
    "\n",
    "    @user_proxy.register_for_execution()\n",
    "    @ocr_agent.register_for_llm(description=\"Extracts text from an image path\")\n",
    "    def ocr(image_path: str) -> str:\n",
    "        return tools.ocr(image_path)\n",
    "        \n",
    "    @user_proxy.register_for_execution()\n",
    "    @content_agent.register_for_llm(description=\"Checks if a URL is safe\")\n",
    "    def url_checker (url: str) -> str:\n",
    "        return tools.is_url_safe(url)\n",
    "\n",
    "    return ocr_agent, content_agent, decision_agent, summary_agent, user_proxy"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Workflow"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "class ScamDetectionWorkflow:\n",
    "    def __init__(self):\n",
    "        self.ocr_agent, self.content_agent, self.decision_agent, self.summary_agent, self.user_proxy = create_agents()\n",
    "        \n",
    "    def analyze(self, image_path):\n",
    "        \"\"\"Coordinate the multi-agent analysis.\n",
    "        \"\"\"\n",
    "        \n",
    "        groupchat = autogen.GroupChat(\n",
    "            agents=[self.ocr_agent, self.content_agent, self.decision_agent, self.summary_agent, self.user_proxy],\n",
    "            messages=[],\n",
    "            max_round=15,\n",
    "            speaker_selection_method=\"auto\",\n",
    "        )\n",
    "        manager = autogen.GroupChatManager(groupchat=groupchat, llm_config=llm_config)\n",
    "\n",
    "        messages = self.user_proxy.initiate_chat(\n",
    "            manager,\n",
    "            message=f\"\"\"does the content of the image in {image_path} represent a scam?\"\"\",\n",
    "        )\n",
    "\n",
    "        return messages"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "image_path = \"./samples/02.giftcard.message.scam.png\"\n",
    "display(IPImage(filename=image_path))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "image_path = \"./samples/scam.spanish.png\"\n",
    "display(IPImage(filename=image_path))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001b[33muser_proxy\u001b[0m (to chat_manager):\n",
      "\n",
      "does the content of the image in ./samples/02.giftcard.message.scam.png represent a scam?\n",
      "\n",
      "--------------------------------------------------------------------------------\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001b[32m\n",
      "Next speaker: OCR_Specialist\n",
      "\u001b[0m\n",
      "\u001b[33mOCR_Specialist\u001b[0m (to chat_manager):\n",
      "\n",
      "\u001b[32m***** Suggested tool call (call_Z4RQNLzsf6yBOjAS2RcFr2sc): ocr *****\u001b[0m\n",
      "Arguments: \n",
      "{\"image_path\":\"./samples/02.giftcard.message.scam.png\"}\n",
      "\u001b[32m********************************************************************\u001b[0m\n",
      "\n",
      "--------------------------------------------------------------------------------\n",
      "\u001b[32m\n",
      "Next speaker: user_proxy\n",
      "\u001b[0m\n",
      "\u001b[35m\n",
      ">>>>>>>> EXECUTING FUNCTION ocr...\u001b[0m\n",
      "\u001b[33muser_proxy\u001b[0m (to chat_manager):\n",
      "\n",
      "\u001b[33muser_proxy\u001b[0m (to chat_manager):\n",
      "\n",
      "\u001b[32m***** Response from calling tool (call_Z4RQNLzsf6yBOjAS2RcFr2sc) *****\u001b[0m\n",
      "Congratulations!\n",
      "You've won a $1,000\n",
      "Walmart gift card. Go\n",
      "\n",
      "http://bit.ly/123456\n",
      "tp claim now.\n",
      "\f\n",
      "\u001b[32m**********************************************************************\u001b[0m\n",
      "\n",
      "--------------------------------------------------------------------------------\n",
      "\u001b[32m\n",
      "Next speaker: Content_Analyst\n",
      "\u001b[0m\n",
      "\u001b[33mContent_Analyst\u001b[0m (to chat_manager):\n",
      "\n",
      "\u001b[32m***** Suggested tool call (call_vyxuVDwTS8n9cZbjd4UkqgFw): url_checker *****\u001b[0m\n",
      "Arguments: \n",
      "{\"url\": \"http://bit.ly/123456\"}\n",
      "\u001b[32m****************************************************************************\u001b[0m\n",
      "\u001b[32m***** Suggested tool call (call_RBqKQxO1GAwTFYxfhZhN8gow): url_checker *****\u001b[0m\n",
      "Arguments: \n",
      "{\"url\": \"http://bit.ly/123456\"}\n",
      "\u001b[32m****************************************************************************\u001b[0m\n",
      "\n",
      "--------------------------------------------------------------------------------\n",
      "\u001b[32m\n",
      "Next speaker: user_proxy\n",
      "\u001b[0m\n",
      "\u001b[35m\n",
      ">>>>>>>> EXECUTING FUNCTION url_checker...\u001b[0m\n",
      "request_body: {'client': {'clientId': 'minerva', 'clientVersion': '0.1.0'}, 'threatInfo': {'threatTypes': ['MALWARE', 'SOCIAL_ENGINEERING', 'UNWANTED_SOFTWARE', 'POTENTIALLY_HARMFUL_APPLICATION'], 'platformTypes': ['ANY_PLATFORM'], 'threatEntryTypes': ['URL'], 'threatEntries': [{'url': 'http://bit.ly/123456'}]}}\n",
      "\u001b[35m\n",
      ">>>>>>>> EXECUTING FUNCTION url_checker...\u001b[0m\n",
      "request_body: {'client': {'clientId': 'minerva', 'clientVersion': '0.1.0'}, 'threatInfo': {'threatTypes': ['MALWARE', 'SOCIAL_ENGINEERING', 'UNWANTED_SOFTWARE', 'POTENTIALLY_HARMFUL_APPLICATION'], 'platformTypes': ['ANY_PLATFORM'], 'threatEntryTypes': ['URL'], 'threatEntries': [{'url': 'http://bit.ly/123456'}]}}\n",
      "\u001b[33muser_proxy\u001b[0m (to chat_manager):\n",
      "\n",
      "\u001b[33muser_proxy\u001b[0m (to chat_manager):\n",
      "\n",
      "\u001b[32m***** Response from calling tool (call_vyxuVDwTS8n9cZbjd4UkqgFw) *****\u001b[0m\n",
      "[true, []]\n",
      "\u001b[32m**********************************************************************\u001b[0m\n",
      "\n",
      "--------------------------------------------------------------------------------\n",
      "\u001b[33muser_proxy\u001b[0m (to chat_manager):\n",
      "\n",
      "\u001b[32m***** Response from calling tool (call_RBqKQxO1GAwTFYxfhZhN8gow) *****\u001b[0m\n",
      "[true, []]\n",
      "\u001b[32m**********************************************************************\u001b[0m\n",
      "\n",
      "--------------------------------------------------------------------------------\n",
      "\u001b[32m\n",
      "Next speaker: Decision_Maker\n",
      "\u001b[0m\n",
      "\u001b[33mDecision_Maker\u001b[0m (to chat_manager):\n",
      "\n",
      "Based on the content of the image, the message states that the recipient has \"won a $1,000 Walmart gift card\" and provides a link to claim it. This type of message is a common tactic used in scams, often referred to as \"phishing\" or \"prize scams.\" Here are the reasons for determining the high probability of this being a scam:\n",
      "\n",
      "1. **Unsolicited Prize Notification**: The message claims that the recipient has won a gift card without any prior entry or participation in a contest. Legitimate companies do not award prizes without a clear entry process.\n",
      "\n",
      "2. **Urgency and Action**: The message encourages immediate action by stating \"Go to claim now.\" Scammers often create a sense of urgency to prompt quick responses without careful consideration.\n",
      "\n",
      "3. **Suspicious URL**: The link provided is a shortened URL (bit.ly), which is often used to obscure the final destination. This is a common tactic in scams to hide malicious websites. While the URL checker indicates that the link is active, it does not guarantee safety, as it could lead to a phishing site designed to steal personal information.\n",
      "\n",
      "4. **Generic Messaging**: The message lacks personalization and specific details about the supposed win, which is typical of scam communications.\n",
      "\n",
      "Given these factors, I conclude that the content of the image represents a high probability of being a scam. It is advisable to avoid clicking on the link and to report such messages if received.\n",
      "\n",
      "--------------------------------------------------------------------------------\n",
      "\u001b[32m\n",
      "Next speaker: Summary_Agent\n",
      "\u001b[0m\n",
      "\u001b[33mSummary_Agent\u001b[0m (to chat_manager):\n",
      "\n",
      "The message in the image claims the recipient has \"won a $1,000 Walmart gift card\" and provides a link to claim it, which is a common scam tactic. Key indicators of a scam include unsolicited prize notifications, urgency to act quickly, a suspicious shortened URL, and generic messaging without personalization. To protect yourself, do not click on the link and report any similar messages. \n",
      "\n",
      "COMPLETE\n",
      "\n",
      "--------------------------------------------------------------------------------\n",
      "\u001b[32m\n",
      "Next speaker: user_proxy\n",
      "\u001b[0m\n"
     ]
    }
   ],
   "source": [
    "workflow = ScamDetectionWorkflow()\n",
    "results = workflow.analyze(image_path)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'content': 'The analysis of the message claiming a $1,000 Walmart gift card '\n",
      "            \"indicates a high probability that it's a scam. Key warning signs \"\n",
      "            'include the unsolicited nature of the \"win,\" a shortened URL that '\n",
      "            \"conceals the link's real destination, and common scam tactics \"\n",
      "            'that use enticing offers to trick victims. To protect yourself, '\n",
      "            'do not click on any links in such messages, avoid sharing '\n",
      "            'personal information, and report suspicious content to relevant '\n",
      "            'authorities. Stay vigilant and skeptical of unsolicited offers '\n",
      "            \"claiming you've won something. \\n\"\n",
      "            '\\n'\n",
      "            'COMPLETE',\n",
      " 'name': 'Summary_Agent',\n",
      " 'role': 'user'}\n"
     ]
    }
   ],
   "source": [
    "import pprint\n",
    "\n",
    "pprint.pprint(results.chat_history[-1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "import json\n",
    "\n",
    "\n",
    "with open('results.json', 'w') as json_file:\n",
    "    json.dump(results.__dict__, json_file, indent=4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "''"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "results.summary"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}