Commit ·
62ca236
1
Parent(s): 1838600
docs: Add requirements documentation and restore requirements.txt
Browse files- .gitignore +1 -0
- GUVI_CHALLENGE_DETAILS.md +139 -0
- GUVI_REQUIREMENTS.txt +84 -0
- requirements.txt +15 -0
.gitignore
CHANGED
|
@@ -18,6 +18,7 @@ data/
|
|
| 18 |
*.txt
|
| 19 |
!requirements.txt
|
| 20 |
!README.txt
|
|
|
|
| 21 |
|
| 22 |
# Temp files
|
| 23 |
.pytest_cache/
|
|
|
|
| 18 |
*.txt
|
| 19 |
!requirements.txt
|
| 20 |
!README.txt
|
| 21 |
+
!GUVI_REQUIREMENTS.txt
|
| 22 |
|
| 23 |
# Temp files
|
| 24 |
.pytest_cache/
|
GUVI_CHALLENGE_DETAILS.md
ADDED
|
@@ -0,0 +1,139 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Agentic Honey-Pot for Scam Detection & Intelligence Extraction
|
| 2 |
+
|
| 3 |
+
## 1. Introduction
|
| 4 |
+
Online scams such as bank fraud, UPI fraud, phishing, and fake offers are becoming increasingly adaptive. Scammers change their tactics based on user responses, making traditional detection systems ineffective.
|
| 5 |
+
|
| 6 |
+
This challenge requires participants to build an Agentic Honey-Pot — an AI-powered system that detects scam intent and autonomously engages scammers to extract useful intelligence without revealing detection.
|
| 7 |
+
|
| 8 |
+
## 2. Objective
|
| 9 |
+
Design and deploy an AI-driven honeypot system that can:
|
| 10 |
+
- Detect scam or fraudulent messages
|
| 11 |
+
- Activate an autonomous AI Agent
|
| 12 |
+
- Maintain a believable human-like persona
|
| 13 |
+
- Handle multi-turn conversations
|
| 14 |
+
- Extract scam-related intelligence
|
| 15 |
+
- Return structured results via an API
|
| 16 |
+
|
| 17 |
+
## 3. What You Need to Build
|
| 18 |
+
Participants must deploy a public REST API that:
|
| 19 |
+
- Accepts incoming message events
|
| 20 |
+
- Detects scam intent
|
| 21 |
+
- Hands control to an AI Agent
|
| 22 |
+
- Engages scammers autonomously
|
| 23 |
+
- Extracts actionable intelligence
|
| 24 |
+
- Returns a structured JSON response
|
| 25 |
+
- Secures access using an API key
|
| 26 |
+
|
| 27 |
+
## 4. API Authentication
|
| 28 |
+
- `x-api-key: YOUR_SECRET_API_KEY`
|
| 29 |
+
- `Content-Type: application/json`
|
| 30 |
+
|
| 31 |
+
## 5. Evaluation Flow
|
| 32 |
+
1. Platform sends a suspected scam message
|
| 33 |
+
2. Your system analyzes the message
|
| 34 |
+
3. If scam intent is detected, the AI Agent is activated
|
| 35 |
+
4. The Agent continues the conversation
|
| 36 |
+
5. Intelligence is extracted and returned
|
| 37 |
+
6. Performance is evaluated
|
| 38 |
+
|
| 39 |
+
## 6. API Request Format (Input)
|
| 40 |
+
Each API request represents one incoming message in a conversation.
|
| 41 |
+
|
| 42 |
+
### 6.1 First Message (Start of Conversation)
|
| 43 |
+
```json
|
| 44 |
+
{
|
| 45 |
+
"sessionId": "wertyu-dfghj-ertyui",
|
| 46 |
+
"message": {
|
| 47 |
+
"sender": "scammer",
|
| 48 |
+
"text": "Your bank account will be blocked today. Verify immediately.",
|
| 49 |
+
"timestamp": 1770005528731
|
| 50 |
+
},
|
| 51 |
+
"conversationHistory": [],
|
| 52 |
+
"metadata": {
|
| 53 |
+
"channel": "SMS",
|
| 54 |
+
"language": "English",
|
| 55 |
+
"locale": "IN"
|
| 56 |
+
}
|
| 57 |
+
}
|
| 58 |
+
```
|
| 59 |
+
|
| 60 |
+
### 6.2 Follow-Up Message
|
| 61 |
+
```json
|
| 62 |
+
{
|
| 63 |
+
"sessionId": "wertyu-dfghj-ertyui",
|
| 64 |
+
"message": {
|
| 65 |
+
"sender": "scammer",
|
| 66 |
+
"text": "Share your UPI ID to avoid account suspension.",
|
| 67 |
+
"timestamp": 1770005528731
|
| 68 |
+
},
|
| 69 |
+
"conversationHistory": [
|
| 70 |
+
{
|
| 71 |
+
"sender": "scammer",
|
| 72 |
+
"text": "Your bank account will be blocked today. Verify immediately.",
|
| 73 |
+
"timestamp": 1770005528731
|
| 74 |
+
},
|
| 75 |
+
{
|
| 76 |
+
"sender": "user",
|
| 77 |
+
"text": "Why will my account be blocked?",
|
| 78 |
+
"timestamp": 1770005528731
|
| 79 |
+
}
|
| 80 |
+
],
|
| 81 |
+
"metadata": {
|
| 82 |
+
"channel": "SMS",
|
| 83 |
+
"language": "English",
|
| 84 |
+
"locale": "IN"
|
| 85 |
+
}
|
| 86 |
+
}
|
| 87 |
+
```
|
| 88 |
+
|
| 89 |
+
## 7. Agent Behavior Expectations
|
| 90 |
+
The AI Agent must:
|
| 91 |
+
- Handle multi-turn conversations
|
| 92 |
+
- Adapt responses dynamically
|
| 93 |
+
- Avoid revealing scam detection
|
| 94 |
+
- Behave like a real human
|
| 95 |
+
- Perform self-correction if needed
|
| 96 |
+
|
| 97 |
+
## 8. Agent output format
|
| 98 |
+
```json
|
| 99 |
+
{
|
| 100 |
+
"status": "success",
|
| 101 |
+
"reply": "Why is my account being suspended?"
|
| 102 |
+
}
|
| 103 |
+
```
|
| 104 |
+
|
| 105 |
+
## 9. Evaluation Criteria
|
| 106 |
+
- Scam detection accuracy
|
| 107 |
+
- Quality of agentic engagement
|
| 108 |
+
- Intelligence extraction
|
| 109 |
+
- API stability and response time
|
| 110 |
+
- Ethical behavior
|
| 111 |
+
|
| 112 |
+
## 10. Constraints & Ethics
|
| 113 |
+
- ❌ No impersonation of real individuals
|
| 114 |
+
- ❌ No illegal instructions
|
| 115 |
+
- ❌ No harassment
|
| 116 |
+
- ✅ Responsible data handling
|
| 117 |
+
|
| 118 |
+
## 11. Mandatory Final Result Callback
|
| 119 |
+
Once the system detects scam intent and the AI Agent completes the engagement, participants must send the final extracted intelligence to the GUVI evaluation endpoint.
|
| 120 |
+
|
| 121 |
+
### Callback Endpoint
|
| 122 |
+
`POST https://hackathon.guvi.in/api/updateHoneyPotFinalResult`
|
| 123 |
+
|
| 124 |
+
### Payload to Send
|
| 125 |
+
```json
|
| 126 |
+
{
|
| 127 |
+
"sessionId": "abc123-session-id",
|
| 128 |
+
"scamDetected": true,
|
| 129 |
+
"totalMessagesExchanged": 18,
|
| 130 |
+
"extractedIntelligence": {
|
| 131 |
+
"bankAccounts": ["XXXX-XXXX-XXXX"],
|
| 132 |
+
"upiIds": ["scammer@upi"],
|
| 133 |
+
"phishingLinks": ["http://malicious-link.example"],
|
| 134 |
+
"phoneNumbers": ["+91XXXXXXXXXX"],
|
| 135 |
+
"suspiciousKeywords": ["urgent", "verify now", "account blocked"]
|
| 136 |
+
},
|
| 137 |
+
"agentNotes": "Scammer used urgency tactics and payment redirection"
|
| 138 |
+
}
|
| 139 |
+
```
|
GUVI_REQUIREMENTS.txt
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
AGENTIC HONEY-POT FOR SCAM DETECTION & INTELLIGENCE EXTRACTION - CHALLENGE REQUIREMENTS
|
| 2 |
+
|
| 3 |
+
1. INTRODUCTION
|
| 4 |
+
Online scams such as bank fraud, UPI fraud, phishing, and fake offers are becoming increasingly adaptive. Scammers change their tactics based on user responses, making traditional detection systems ineffective.
|
| 5 |
+
This challenge requires participants to build an Agentic Honey-Pot — an AI-powered system that detects scam intent and autonomously engages scammers to extract useful intelligence without revealing detection.
|
| 6 |
+
|
| 7 |
+
2. OBJECTIVE
|
| 8 |
+
Design and deploy an AI-driven honeypot system that can:
|
| 9 |
+
- Detect scam or fraudulent messages
|
| 10 |
+
- Activate an autonomous AI Agent
|
| 11 |
+
- Maintain a believable human-like persona
|
| 12 |
+
- Handle multi-turn conversations
|
| 13 |
+
- Extract scam-related intelligence
|
| 14 |
+
- Return structured results via an API
|
| 15 |
+
|
| 16 |
+
3. WHAT YOU NEED TO BUILD
|
| 17 |
+
Participants must deploy a public REST API that:
|
| 18 |
+
- Accepts incoming message events
|
| 19 |
+
- Detects scam intent
|
| 20 |
+
- Hands control to an AI Agent
|
| 21 |
+
- Engages scammers autonomously
|
| 22 |
+
- Extracts actionable intelligence
|
| 23 |
+
- Returns a structured JSON response
|
| 24 |
+
- Secures access using an API key
|
| 25 |
+
|
| 26 |
+
4. API AUTHENTICATION
|
| 27 |
+
x-api-key: YOUR_SECRET_API_KEY
|
| 28 |
+
Content-Type: application/json
|
| 29 |
+
|
| 30 |
+
5. EVALUATION FLOW
|
| 31 |
+
- Platform sends a suspected scam message
|
| 32 |
+
- Your system analyzes the message
|
| 33 |
+
- If scam intent is detected, the AI Agent is activated
|
| 34 |
+
- The Agent continues the conversation
|
| 35 |
+
- Intelligence is extracted and returned
|
| 36 |
+
- Performance is evaluated
|
| 37 |
+
|
| 38 |
+
6. API REQUEST FORMAT (INPUT)
|
| 39 |
+
{
|
| 40 |
+
"sessionId": "wertyu-dfghj-ertyui",
|
| 41 |
+
"message": {
|
| 42 |
+
"sender": "scammer",
|
| 43 |
+
"text": "Your bank account will be blocked today. Verify immediately.",
|
| 44 |
+
"timestamp": 1770005528731
|
| 45 |
+
},
|
| 46 |
+
"conversationHistory": [],
|
| 47 |
+
"metadata": {
|
| 48 |
+
"channel": "SMS",
|
| 49 |
+
"language": "English",
|
| 50 |
+
"locale": "IN"
|
| 51 |
+
}
|
| 52 |
+
}
|
| 53 |
+
|
| 54 |
+
7. AGENT BEHAVIOR EXPECTATIONS
|
| 55 |
+
The AI Agent must:
|
| 56 |
+
- Handle multi-turn conversations
|
| 57 |
+
- Adapt responses dynamically
|
| 58 |
+
- Avoid revealing scam detection
|
| 59 |
+
- Behave like a real human
|
| 60 |
+
- Perform self-correction if needed
|
| 61 |
+
|
| 62 |
+
8. AGENT OUTPUT FORMAT
|
| 63 |
+
{
|
| 64 |
+
"status": "success",
|
| 65 |
+
"reply": "Why is my account being suspended?"
|
| 66 |
+
}
|
| 67 |
+
|
| 68 |
+
11. MANDATORY FINAL RESULT CALLBACK
|
| 69 |
+
Once the system detects scam intent and the AI Agent completes the engagement, participants must send the final extracted intelligence to the GUVI evaluation endpoint.
|
| 70 |
+
POST https://hackathon.guvi.in/api/updateHoneyPotFinalResult
|
| 71 |
+
Payload:
|
| 72 |
+
{
|
| 73 |
+
"sessionId": "abc123-session-id",
|
| 74 |
+
"scamDetected": true,
|
| 75 |
+
"totalMessagesExchanged": 18,
|
| 76 |
+
"extractedIntelligence": {
|
| 77 |
+
"bankAccounts": ["XXXX-XXXX-XXXX"],
|
| 78 |
+
"upiIds": ["scammer@upi"],
|
| 79 |
+
"phishingLinks": ["http://malicious-link.example"],
|
| 80 |
+
"phoneNumbers": ["+91XXXXXXXXXX"],
|
| 81 |
+
"suspiciousKeywords": ["urgent", "verify now", "account blocked"]
|
| 82 |
+
},
|
| 83 |
+
"agentNotes": "Scammer used urgency tactics and payment redirection"
|
| 84 |
+
}
|
requirements.txt
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
fastapi==0.104.1
|
| 2 |
+
uvicorn==0.24.0
|
| 3 |
+
pydantic==2.5.2
|
| 4 |
+
pydantic-settings==2.1.0
|
| 5 |
+
httpx==0.25.2
|
| 6 |
+
tenacity==8.2.3
|
| 7 |
+
python-dotenv==1.0.0
|
| 8 |
+
aiosqlite==0.19.0
|
| 9 |
+
sqlalchemy==2.0.23
|
| 10 |
+
pyyaml==6.0.1
|
| 11 |
+
requests==2.31.0
|
| 12 |
+
pytest==7.4.3
|
| 13 |
+
pytest-asyncio==0.21.1
|
| 14 |
+
jinja2==3.1.2
|
| 15 |
+
python-multipart==0.0.6
|