Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ARGOS — Manipulation Detection Engine

"Is this manipulation?" — answered in seconds, with philosophical precision.

ARGOS analyzes text through 11 philosophical frameworks and a Gemini AI semantic layer to detect persuasion and manipulation techniques. No prompt engineering. No black box. Paste text, get a verdict.


Why ARGOS instead of just asking an AI?

When you ask ChatGPT "is this manipulative?", you get a paragraph. ARGOS gives you:

  • A structured verdict: MANIPULATIVE / PERSUASIVE / MIXED / CLEAN
  • A score with confidence level
  • A breakdown by philosophical framework — not just what is manipulative, but why, through the lens of Aristotle, Foucault, Kant, Orwell, and 7 others
  • Reproducible results — the 11 rule-based detectors always give the same answer for the same text
  • Evidence: exact phrases flagged as signals, per detector

The 11 Philosophical Frameworks

# Philosopher Framework What it detects
1 Aristotle Rhetorical Appeals Imbalance between ethos, pathos, and logos
2 Foucault Power Dynamics Asymmetric power language, threats of exclusion
3 Bakhtin Polyphony & Voice Monologism, absolutist language, propaganda patterns
4 Goffman Frame Analysis Emergency framing, false consensus, catastrophism
5 Searle Speech Acts Directives disguised as facts, unverifiable promises
6 Toulmin Argument Structure Claims without data, manipulation through bare assertion
7 Lakoff Conceptual Metaphors War/disease/cleansing metaphors that constrain thought
8 Carnegie Interpersonal Manipulation False familiarity, flattery, artificial urgency
9 Kant Categorical Imperative Instrumentalizing people, bypassing rational autonomy
10 Habermas Communicative Action Strategic action disguised as dialogue, consensus faking
11 Orwell Politics & Language Euphemisms, passive voice erasing agency, weasel words

Plus a Gemini 2.5 Flash semantic layer that catches what exact-match rules miss: paraphrase, morphological variants, implicit threats, and informal constructions.


Real Use Cases

  • Journalists — analyze political speeches and press releases
  • Researchers — study propaganda and rhetorical techniques at scale
  • Educators — teach critical thinking with concrete, labeled examples
  • Individuals — understand why an email or message feels "off"
  • Developers — integrate via API for content moderation pipelines

Tech Stack

  • Backend: FastAPI (Python) — deterministic fractions.Fraction arithmetic for rule detectors
  • Frontend: React + TypeScript + Tailwind + Framer Motion
  • ML layer: Google Gemini 2.5 Flash via AI Studio API
  • Deployment: Vercel (serverless Python + static build)
  • Languages: English and Spanish (bilingual detection and UI)

Architecture

Text input
    │
    ├── 11 Rule-Based Detectors (deterministic, no API calls)
    │       Aristotle · Foucault · Bakhtin · Goffman · Searle
    │       Toulmin · Lakoff · Carnegie · Kant · Habermas · Orwell
    │
    └── Gemini 2.5 Flash (semantic layer — catches what rules miss)
                │
                ▼
        Weighted Aggregate Score
        (only fired detectors count — silent ones don't dilute signal)
                │
                ▼
        Verdict + Score + Confidence + Per-detector breakdown

Scoring logic: only detectors that fire (score ≥ 1/10) contribute to the weighted average. A convergence bonus is added when ≥ 3 detectors independently flag the same text. Lakoff is contextual only and does not affect the final score.


Running Locally

# Backend
pip install -r requirements.txt
GEMINI_API_KEY=your_key uvicorn main:app --reload

# Frontend
cd frontend
npm install
npm run dev

Environment Variables

Variable Required Description
GEMINI_API_KEY Yes Google AI Studio API key — get one here

API

POST /analyze

{
  "text": "You MUST act now — there is no other option."
}

Response:

{
  "verdict": "MANIPULATIVE",
  "score": "9/10",
  "score_float": 0.9,
  "confidence": "HIGH",
  "summary": "Multiple high-confidence manipulation techniques detected...",
  "detectors": [
    {
      "name": "searle",
      "philosopher": "Searle — Speech Acts",
      "score": "11/12",
      "signals": ["HIGH_DIRECTIVE_DENSITY", "FINANCIAL_BAIT_PATTERN"],
      "evidence": ["MUST act now", "no other option"],
      "label": "Commanding and pressuring — text acts as authority instrument"
    }
  ]
}

GET /example

Returns a pre-loaded example text with full analysis.

GET /health

{ "status": "ok", "version": "0.1.0" }

Built with

Philosophical rigor. Python fractions. A bit of Gemini.

About

Manipulation detection engine — 11 philosophical frameworks + Gemini AI semantic layer

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages