SilentSignal is built specifically for the Nemotron Prize with advanced agentic workflows:
- Nemotron-3 via NVIDIA NIM: Real AI integration for contextual reasoning
- MCP Orchestration: Multi-step agentic workflow with RAG
- Hybrid Intelligence: Rule-based + AI reasoning fusion
- Explainable AI: Structured outputs with reasoning chains
- Measurable Impact: Emotional abuse detection with crisis intervention
SilentSignal uses a hybrid RAG workflow that:
- Retrieves abuse pattern definitions from local knowledge base
- Enriches Nemotron-3 context with psychological definitions
- Fuses rule-based pattern detection with AI reasoning
- Generates explainable risk assessments with structured outputs
# Setup environment
make setup
# Install dependencies (includes python-multipart for WhatsApp)
pip install -r requirements.txt
# Run Streamlit UI
make run-ui
# Run WhatsApp API
make run-api
# Test WhatsApp form parsing
python test_whatsapp_form.py
# Run tests
make testImportant:
- The
python-multipartlibrary is required for WhatsApp integration to parse Twilio's form-encoded webhook data. - To use NVIDIA hosted Nemotron-3, set
NIM_BASE_URL=https://integrate.api.nvidia.com/v1and put your API key fromhttps://build.nvidia.com/settings/api-keysintoNIM_API_KEY. Optionally setNIM_MODEL(defaultnvidia/nemotron-3-8b-instruct). - To use the OpenAI SDK against NVIDIA Integrate (and enable reasoning models), set
NIM_USE_OPENAI_SDK=1and ensureopenaiis installed (already inrequirements.txt). You can control thinking tokens withNIM_REASONING_MINandNIM_REASONING_MAX.
Streamlit UI: http://localhost:8501 WhatsApp API: http://localhost:8000 Health Check: http://localhost:8000/health
- Zero Data Storage: All processing in-memory only
- Panic Button: Disguise mode with fake calculator view
- Crisis Resources: Integrated help hotlines and support
- Local Processing: No external data transmission
SilentSignal/
├── app.py # Streamlit UI
├── backend/ # Core AI engine
│ ├── mcp_orchestrator.py # Agentic workflow
│ ├── nimo_client.py # Nemotron-3 NIM client
│ ├── prompts.py # Structured prompts
│ ├── pattern_detector.py # Rule-based detection
│ ├── analyzer.py # Fusion logic
│ ├── resources.py # Help resources
│ └── report_builder.py # PDF export
├── integrations/ # External APIs
│ └── whatsapp_fastapi.py # WhatsApp webhook
├── data/ # Knowledge base
│ ├── resources.json # Crisis resources
│ └── pattern_knowledge.json # RAG knowledge base
├── examples/ # Test conversations
└── tests/ # Test suite
Nemotron-3 is used for:
- Contextual reasoning about emotional dynamics
- Intent detection and manipulation patterns
- Structured JSON output generation
- Explainable risk assessment reasoning
MCP Workflow:
- Text preprocessing and segmentation
- RAG retrieval of abuse pattern definitions
- Nemotron-3 context enrichment
- Rule-based pattern matching
- Hybrid fusion and scoring
- Structured report generation
{
"risk_level": "concerning",
"patterns": ["gaslighting", "guilt_tripping"],
"summary": "Detected manipulation tactics including reality denial and emotional coercion",
"red_flags": ["You're imagining things", "If you loved me"],
"suggestions": ["Trust your instincts", "Consider professional support"],
"reasoning": "Hybrid analysis combining pattern detection with AI reasoning"
}Copy .env.example to .env and configure:
NIM_BASE_URL: Your NVIDIA NIM endpoint (default hosted:https://integrate.api.nvidia.com/v1)NIM_API_KEY: Your API key from NVIDIA Build (https://build.nvidia.com/settings/api-keys)NIM_MODEL: Optional model (e.g.,nvidia/nvidia-nemotron-nano-9b-v2for reasoning)NIM_USE_OPENAI_SDK: Set to1to use OpenAI SDK pathNIM_REASONING_MIN/NIM_REASONING_MAX: Optional thinking token bounds for reasoning modelsTWILIO_*: For WhatsApp integration
- To email on abuse risk via Gmail SMTP, set in
.env:EMAIL_ALERTS=1EMAIL_METHOD=gmailSMTP_HOST=smtp.gmail.comSMTP_PORT=587SMTP_USER=your_gmail_addressSMTP_PASS=your_gmail_app_passwordEMAIL_FROM=your_gmail_addressEMAIL_TO=comma,separated,recipientsALERT_MIN_INTERVAL_SECONDS=60(rate limit per sender)
Gmail setup: enable 2FA on your account, create an “App Password” for Mail, and paste it into SMTP_PASS.
Twilio webhook endpoint: /whatsapp/inbound
- Receives message payloads
- Runs SilentSignal analysis
- Returns concise risk summary
- Supports ngrok for local testing
Comprehensive test suite covering:
- Rule-based pattern detection
- Nemotron integration
- MCP workflow orchestration
- Fusion logic accuracy
- Edge cases and safety
- Multilingual support
- Chrome extension for real-time analysis
- Therapist-assist dashboard
- Mobile app with offline capabilities
- Advanced RAG with vector embeddings
Built for the Nemotron Prize - Demonstrating advanced AI capabilities in emotional abuse detection with measurable social impact.