--- title: VerifAI News Verification API emoji: 🔍 colorFrom: purple colorTo: blue sdk: docker app_port: 7860 pinned: false license: mit --- # VerifAI - Fake News Detection API Multi-model fake news detection system for both **text** and **images** with intelligent API management and diverse global news sources. **Version:** 3.0.0 **Last Updated:** January 2026 ## ✨ Features ### Core Detection - **Text Detection**: BERT + LLM (Gemini 2.0/Groq) + Web Verification - **Image Detection**: OCR (EasyOCR) + Gemini Vision + Manipulation Analysis - **Real-time API**: FastAPI with CORS support ### Intelligent API Management - **6 Gemini API Keys** with smart round-robin rotation - **Groq Llama 3.1 70B Fallback** when Gemini is exhausted - **Response Caching** with 1-hour TTL (40-60% API reduction) - **Rate Limit Detection** with 60-second cooldowns ### Diverse News Sources - **100+ Trusted Domains** from all continents - **Unique Domain Per Source** (no duplicate domains) - Wire Services: Reuters, AP, AFP - International: BBC, CNN, DW, Al Jazeera, NDTV, SCMP - Regional coverage: US, UK, Europe, Asia, Africa, Latin America, Oceania --- ## 📡 API Endpoints ### Health Check ```http GET / ``` Returns API status including cache stats and key health. ### API Key Status ```http GET /api-status ``` Returns detailed status of all Gemini keys and Groq fallback. ### Text Verification ```http POST /check Content-Type: application/json {"text": "Your news text to verify"} ``` **Response:** ```json { "credibility": 85.0, "verdict": "VERIFIED", "bert_score": 0.92, "llm_score": 0.78, "web_score": 1.0, "sources": [ { "title": "BBC News - Article Title", "url": "https://bbc.com/...", "trusted": true, "domain": "bbc.com" } ] } ``` ### Image Verification (Base64) ```http POST /check-image Content-Type: application/json {"image": "data:image/jpeg;base64,..."} ``` **Response:** ```json { "credibility": 75, "verdict": "LIKELY REAL", "alert": "✅ Content appears mostly credible", "extracted_text": "Text extracted from image...", "bert_score": 0.85, "llm_score": 0.70, "web_score": 0.8, "image_manipulation_score": 0.2, "concerns": "Minor artifacts detected", "sources": [...] } ``` ### Image Verification (File Upload) ```http POST /check-image-upload Content-Type: multipart/form-data image: ``` ### Text Extraction (OCR only) ```http POST /extract-text Content-Type: application/json {"image": "data:image/jpeg;base64,..."} ``` --- ## 🔧 Environment Variables Set these in **Space Settings → Repository secrets**: | Variable | Description | Required | |----------|-------------|----------| | `GEMINI_API_KEY` | Additional Gemini API key | Optional | | `GROQ_API_KEY` | Groq API key for fallback | Pre-configured | > **Note:** 6 Gemini keys are already hardcoded in `app.py`. Environment variables are optional extras. --- ## 📊 Credibility Scoring | Score Range | Verdict | Description | |-------------|---------|-------------| | 80-100% | ✅ VERIFIED / REAL | Highly credible, matched trusted sources | | 60-79% | ⚠️ LIKELY REAL | Mostly credible, some uncertainty | | 40-59% | 🤔 UNCERTAIN | Inconclusive, requires manual review | | 20-39% | ⚠️ LIKELY FAKE | Suspicious patterns detected | | 0-19% | 🚨 FAKE | Strong indicators of misinformation | --- ## 🌐 Trusted News Sources **Wire Services:** Reuters, AP, AFP, UPI **By Region:** | Region | Example Sources | |--------|----------------| | **US** | NYT, WaPo, WSJ, CNN, NBC, Bloomberg, Forbes | | **UK** | BBC, Guardian, Telegraph, FT, Economist | | **Europe** | DW (Germany), France24, El País, Corriere | | **Middle East** | Al Jazeera, Arab News, Times of Israel | | **Asia** | NDTV, Hindu, SCMP, Japan Times, Korea Herald | | **Africa** | News24, Daily Maverick, AllAfrica | | **Latin America** | Folha, Infobae, El Universal | | **Oceania** | ABC Australia, NZ Herald | --- ## 🚀 Deployment ### Hugging Face Spaces 1. Create a new Space with **Docker** SDK 2. Upload contents of `huggingface/` folder 3. Space will auto-build and deploy ### Local Development ```bash cd huggingface pip install -r requirements.txt python -m uvicorn app:app --host 127.0.0.1 --port 7860 --reload ``` --- ## 📝 Model Information | Component | Model | Purpose | |-----------|-------|---------| | **BERT** | `jy46604790/Fake-News-BERT-Detect` | Binary classification | | **LLM** | Gemini 2.0 Flash / Groq Llama 3.1 70B | Fact analysis | | **Vision** | Gemini Vision | Image manipulation detection | | **OCR** | EasyOCR | Text extraction from images | | **Search** | DuckDuckGo | Web verification | --- ## 📈 Performance - **Startup Time:** ~30-60s (model loading) - **Text Analysis:** 3-8s per request - **Image Analysis:** 5-12s per request - **Cache Hit Rate:** 40-60% (reduces API calls) - **Uptime:** 99.9% (Gemini + Groq redundancy) --- ## 📄 License MIT License