Automated Framing Analysis using Robert Entman's Methodology & LLM Intelligence.
Omnius is a professional media intelligence platform that implements Robert Entman's (1993) framing theory to automatically dissect online news narratives.
In an era of information warfare and systemic bias, Omnius provides a "truth-telling" lens that transforms static news text into deep analytical insights. It identifies how media outlets define problems, interpret causes, make moral evaluations, and recommend treatments across different sources.
- Autonomous AI Research Agent: Powered by Pydantic AI, an intelligent agent that autonomously searches and filters high-quality news articles across the internet based on user topics.
- Automated Framing Intelligence: Identifies Robert Entman's 4 framing pillars using state-of-the-art LLMs (Llama 3.3 70B and Qwen 3 32B).
- Advanced Scraping Fallback: Hybrid scraping engine utilizing BeautifulSoup4 for standard extraction and Tavily Extraction API as a robust fallback for sites with anti-bot protections.
- Comparative Synthesis: Generates high-level intelligence reports that find common ground and key discrepancies between different media outlets.
- Narrative Network Matrix: Interactive D3.js-powered graph visualization that reveals the "Shared Nucleus" of keywords connecting different sources.
- Model Configurator: Hot-swap between different LLM engines to adjust analysis depth and speed directly from the workspace.
- Agent Framework: Pydantic AI (Agentic AI orchestration)
- LLM Integration: Groq Cloud (Llama 3.3-70B, Llama 3.1-8B, Qwen 3 32B)
- Search & Extraction: Tavily API (Autonomous search & AI-powered content extraction)
- Framework: FastAPI (Asynchronous High-Performance API)
- Scraping Engine: BeautifulSoup4 with lxml parser
- Fault Tolerance: Tenacity (Retry logic for robust AI pipeline)
- Framework: React 19 with Vite 6
- Styling: Tailwind CSS v4 & Motion v12 (Fluid animations)
- Visualization: D3.js (Dynamic Network Graphs) & Lucide React (Professional Iconography)
- Content Rendering: React Markdown (LLM Synthesis display)
graph TD
subgraph UI_Layer ["Frontend - React"]
Landing["Landing Page"] --> Workspace["Analysis Workspace"]
Workspace --> ResearchTab["AI Research Tab"]
ResearchTab -->|"/api/research"| ResearchLogic["Research Logic"]
end
subgraph Agent_Layer ["AI Agent - PydanticAI"]
ResearchLogic -->|"Search"| TAV["Tavily Search API"]
TAV -->|"Filter URLs"| AGENT["Research Agent"]
AGENT -->|"Valid Articles"| Workspace
end
subgraph Analysis_Layer ["Backend - FastAPI"]
Workspace -->|"/api/analyze"| Analyze["Analysis Pipeline"]
Analyze -->|"Scrape"| SCR["Hybrid Scraper BS4/Tavily"]
SCR -->|"Analyze"| LLM["Groq AI Engine"]
LLM -->|"Validate"| PYD["Pydantic Models"]
end
- Python 3.12+
- uv (Fast Python package manager)
- Node.js 22+ & npm
- Groq Cloud API Key
- Tavily API Key
cd backend
# Install dependencies using uv
uv sync
# Create .env file
echo "GROQ_API_KEY=your_groq_key" > .env
echo "TAVILY_API_KEY=your_tavily_key" >> .env
# Run the server
uv run uvicorn app.main:app --host 0.0.0.0 --port 8000 --reloadcd frontend
# Install dependencies
npm install
# Start development server
npm run devThe application will be available at http://localhost:3000.
Omnius implements the Robert Entman's Framing Theory (1993), which identifies:
- Problem Definition: What is the core issue at hand?
- Causal Interpretation: Who or what is blamed for the problem?
- Moral Evaluation: How are the actors and actions judged?
- Treatment Recommendation: What is the suggested solution or path forward?
By comparing these pillars across sources, Omnius reveals the systematic "framing" that shapes public perception.
This project is licensed under the MIT License. See the LICENSE file for details.
Felix Hardyan