import gradio as gr import os import time from crewai import Agent, Task, Crew from langchain_openai import ChatOpenAI # Secure API key entry os.getenv("OPENAI_API_KEY") # Enter your OpenAI API key def analyze_scam(message_content): if not message_content.strip(): return "โ Please enter a message or URL to analyze." loading_messages = [ "๐ก๏ธ Initializing AI security team...", "๐ Claim Extractor analyzing suspicious content...", "โ๏ธ Fact Checker verifying claims and patterns...", "๐ Safety Advisor preparing guidance report...", "๐จ Generating comprehensive scam analysis..." ] yield loading_messages[0] try: llm = ChatOpenAI(model_name="gpt-4o-mini", temperature=0.1) for i, message in enumerate(loading_messages[1:], 1): time.sleep(2) yield message extractor_agent = Agent( role="Claim Extractor", goal="Extract key claims, offers, and suspicious elements from messages or URLs", backstory="Expert at parsing and identifying key claims in potentially fraudulent messages.", llm=llm, verbose=False ) verifier_agent = Agent( role="Fact Checker", goal="Verify claims and assess scam probability using heuristic rules and pattern matching", backstory="Cybersecurity expert who specializes in identifying scam patterns.", llm=llm, verbose=False ) explainer_agent = Agent( role="Safety Advisor", goal="Provide clear, actionable guidance to users about potential scams", backstory="Digital safety educator who explains complex security issues simply.", llm=llm, verbose=False ) extract_task = Task( description=f"Analyze and extract suspicious elements from: {message_content}", expected_output="Structured summary of extracted claims, suspicious elements, and language patterns", agent=extractor_agent ) verify_task = Task( description="Risk assessment with scam probability score, red flags, and evidence", expected_output="Risk assessment with scam probability score, red flags, and evidence", agent=verifier_agent, context=[extract_task] ) explain_task = Task( description="User-friendly safety report with clear recommendations and next steps", expected_output="User-friendly safety report with clear recommendations and next steps", agent=explainer_agent, context=[extract_task, verify_task] ) crew = Crew( agents=[extractor_agent, verifier_agent, explainer_agent], tasks=[extract_task, verify_task, explain_task], verbose=False, process="sequential" ) yield "๐ฏ AI agents collaborating on final analysis..." result = crew.kickoff() yield str(result) except Exception as e: yield f"โ Scam analysis failed: {str(e)}" def create_gradio_interface(): with gr.Blocks(title="Scam-Signal Verifier | AI Security Analysis", theme=gr.themes.Default()) as interface: # Custom CSS for better contrast gr.HTML(""" """) # Header gr.HTML("""
AI-powered protection against phishing and fraudulent messages
Scam-Signal Verifier โข AI-Powered Fraud Detection
โ ๏ธ This tool helps identify potential scams but is not 100% accurate. Always verify independently.