sentinel-scam-honeypo / reproduce_guvi_call.py
avinash-rai's picture
🚀 FINAL COMPLIANCE: Added callback authentication, expanded intelligence mapping, and centralized GUVI_API_KEY
bee2ada
raw
history blame
2.46 kB
import httpx
import asyncio
import json
async def test_guvi_api():
url = "https://avinashanalytics-sentinel-scam-honeypo.hf.space/api/guvi/analyze"
headers = {
"x-api-key": "GUVI_HACKATHON_V2",
"Content-Type": "application/json"
}
# 1. First Message
payload1 = {
"sessionId": "local-repro-123",
"message": {
"sender": "scammer",
"text": "Hello, your bank account is suspended. Update KYC at http://fake.com",
"timestamp": "2026-01-28T10:15:30Z"
},
"conversationHistory": [],
"metadata": {"channel": "SMS"}
}
print("\n[Test 1] Sending First Message...")
async with httpx.AsyncClient(timeout=30.0) as client:
try:
resp1 = await client.post(url, json=payload1, headers=headers)
print(f"Status: {resp1.status_code}")
print(f"Response: {json.dumps(resp1.json(), indent=2)}")
if resp1.status_code != 200:
return
# 2. Second Message (Follow-up)
payload2 = {
"sessionId": "local-repro-123",
"message": {
"sender": "scammer",
"text": "Please provide your UPI ID to verify.",
"timestamp": "2026-01-28T10:17:10Z"
},
"conversationHistory": [
{
"sender": "scammer",
"text": "Hello, your bank account is suspended. Update KYC at http://fake.com",
"timestamp": "2026-01-28T10:15:30Z"
},
{
"sender": "user",
"text": "Why is it suspended?",
"timestamp": "2026-01-28T10:16:10Z"
}
],
"metadata": {"channel": "SMS"}
}
print("\n[Test 2] Sending Second Message (with History)...")
resp2 = await client.post(url, json=payload2, headers=headers)
print(f"Status: {resp2.status_code}")
print(f"Response: {json.dumps(resp2.json(), indent=2)}")
except Exception as e:
print(f"Error: {e}")
if __name__ == "__main__":
# Ensure server is running before executing this
# uvicorn app.main:app --host 0.0.0.0 --port 8000
asyncio.run(test_guvi_api())