Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

25 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

OpenProvena

Un standard ouvert pour Γ©valuer la crΓ©dibilitΓ© de l'information.

Version License Python Next.js


πŸ“‹ Table des matiΓ¨res


🎯 Γ€ propos

OpenProvena est une plateforme open source d'analyse de la crΓ©dibilitΓ© de l'information. Elle permet de :

  • Analyser la confiance d'une URL ou d'un domaine en quelques secondes
  • DΓ©tecter les contenus gΓ©nΓ©rΓ©s par IA avec une prΓ©cision Γ©levΓ©e
  • Suivre les narratifs et leur propagation sur le web
  • Explorer les relations entre sources, auteurs et organisations

Pourquoi OpenProvena ?

  • βœ… 100% Open Source - Code transparent et auditable
  • βœ… Multi-langue - FranΓ§ais et Anglais supportΓ©s
  • βœ… API REST/GraphQL - IntΓ©gration facile
  • βœ… Scalable - Architecture microservices prΓͺte pour Kubernetes
  • βœ… Communautaire - DΓ©veloppΓ© par des chercheurs et dΓ©veloppeurs du monde entier

✨ Fonctionnalités

πŸ” Trust Analysis

Analyse approfondie de plus de 50 signaux de confiance :

  • Γ‚ge du domaine et historique
  • Configuration SSL/TLS
  • Transparence de la propriΓ©tΓ©
  • QualitΓ© des citations
  • Recoupement avec les fact-checks
  • DΓ©tection de contenu IA

πŸ“Š Narrative Tracker

  • DΓ©tection des narratifs Γ©mergents
  • Analyse de la propagation
  • Cartographie gΓ©ographique
  • Suivi des sources de dΓ©sinformation

πŸ•ΈοΈ Knowledge Graph

  • Exploration visuelle des relations
  • Liens entre domaines, auteurs, organisations
  • Clustering automatique
  • Analyse des rΓ©seaux d'influence

πŸ›‘οΈ SΓ©curitΓ©

  • Headers de sΓ©curitΓ© modernes
  • Rate limiting
  • Authentification JWT
  • Audit trail complet

πŸ—οΈ Architecture

OPEN TRUST INFRASTRUCTURE
=============================================================
                 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                 β”‚    UTILISATEURS    β”‚
                 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                 β–Ό                    β–Ό
         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
         β”‚  Web App       β”‚   β”‚ Public API     β”‚
         β”‚ Dashboard UI   β”‚   β”‚ REST/GraphQL   β”‚
         β””β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                 β”‚                    β”‚
                 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                           β”‚
                           β–Ό
               β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
               β”‚     API GATEWAY         β”‚
               β”‚ Authentication / RBAC   β”‚
               β”‚ Rate Limiting / Billing β”‚
               β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                           β”‚
       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
       β–Ό                   β–Ό                   β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Search Service β”‚ β”‚ Trust Scoring  β”‚ β”‚ Graph Explorer β”‚
β”‚ URL Lookup     β”‚ β”‚ Engine         β”‚ β”‚ Relationships  β”‚
β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
       β”‚                   β”‚                  β”‚
       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                           β”‚
                           β–Ό
              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
              β”‚   TRUST ORCHESTRATOR     β”‚
              β”‚ Workflow / Pipelines     β”‚
              β”‚ Agent Coordination       β”‚
              β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                           β”‚
        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
        β–Ό                  β–Ό                  β–Ό
  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
  β”‚ Source Agent  β”‚ β”‚ Content Agent β”‚ β”‚ Claims Agent  β”‚
  β”‚ Domain Trust  β”‚ β”‚ NLP Extractionβ”‚ β”‚ Fact Signals  β”‚
  β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚                 β”‚                 β”‚
         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                           β”‚
                           β–Ό
    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
    β”‚               SIGNAL LAYER                  β”‚
    β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
    β”‚ Domain Age                                  β”‚
    β”‚ Ownership Transparency                      β”‚
    β”‚ Citation Quality                            β”‚
    β”‚ Fact-check Overlap                          β”‚
    β”‚ Editorial Quality                           β”‚
    β”‚ AI-generated Content Detection              β”‚
    β”‚ Bot / Amplification Detection               β”‚
    β”‚ Narrative Propagation                       β”‚
    β”‚ Malware / Security Risk                     β”‚
    β”‚ Historical Reliability                      β”‚
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                          β”‚
                          β–Ό
             β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
             β”‚     SCORING ENGINE       β”‚
             β”‚ Probabilistic Models     β”‚
             β”‚ Weighted Rules           β”‚
             β”‚ Confidence Estimation    β”‚
             β”‚ Explainability Layer     β”‚
             β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                          β”‚
                          β–Ό
        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
        β”‚   KNOWLEDGE GRAPH LAYER   β”‚
        β”‚ Domains                   β”‚
        β”‚ Authors                   β”‚
        β”‚ Organizations             β”‚
        β”‚ Claims                    β”‚
        β”‚ Narratives                β”‚
        β”‚ Fact-checks               β”‚
        β”‚ Social Clusters           β”‚
        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                   β”‚
                   β–Ό
       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
       β”‚      DATA STORAGE          β”‚
       β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
       β”‚ PostgreSQL                 β”‚
       β”‚ Neo4j / Memgraph           β”‚
       β”‚ Elasticsearch/OpenSearch   β”‚
       β”‚ ClickHouse                 β”‚
       β”‚ Object Storage (S3)        β”‚
       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                  β”‚
                  β–Ό
      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
      β”‚      INGESTION LAYER         β”‚
      β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
      β”‚ Web Crawlers                 β”‚
      β”‚ RSS Collectors               β”‚
      β”‚ Social Stream Ingestion      β”‚
      β”‚ YouTube / Podcast Parsing    β”‚
      β”‚ User Reports                 β”‚
      β”‚ Fact-check Databases         β”‚
      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                 β”‚
                 β–Ό
      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
      β”‚      INFRASTRUCTURE          β”‚
      β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
      β”‚ Kubernetes                   β”‚
      β”‚ Docker                       β”‚
      β”‚ Kafka / RabbitMQ             β”‚
      β”‚ Ray / Celery                 β”‚
      β”‚ Redis Cache                  β”‚
      β”‚ CDN                          β”‚
      β”‚ Monitoring / Observability   β”‚
      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Stack technique

Composant Technologie
Frontend Next.js 14, React 18, TypeScript, Tailwind
Backend Python 3.12, FastAPI, Pydantic
Database PostgreSQL 16, Neo4j, Redis, Elasticsearch
AI/ML PyTorch, Transformers, spaCy
Infrastructure Docker, Kubernetes, Celery

πŸš€ DΓ©marrage rapide

PrΓ©requis

  • Docker et Docker Compose
  • Git
  • 8GB RAM minimum (16GB recommandΓ©)

Installation

  1. Clonez le dΓ©pΓ΄t
git clone https://github.com/openprovena/openprovena.git
cd openprovena
  1. Configurez l'environnement
cp .env.example .env
# Γ‰ditez .env avec vos valeurs
  1. Lancez avec Docker Compose
cd docker
docker-compose up -d
  1. AccΓ©dez Γ  l'application

DΓ©veloppement local

Backend:

cd backend
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate
pip install -r requirements.txt
uvicorn app.main:app --reload

Frontend:

cd frontend
npm install
npm run dev

πŸ“š Documentation


🀝 Contribution

Les contributions sont les bienvenues ! Veuillez lire notre guide de contribution avant de soumettre une pull request.

Processus

  1. Forkez le projet
  2. CrΓ©ez une branche feature (git checkout -b feature/AmazingFeature)
  3. Commit (git commit -m 'Add AmazingFeature')
  4. Push (git push origin feature/AmazingFeature)
  5. Ouvrez une Pull Request

πŸ”’ SΓ©curitΓ©

Pour signaler une vulnΓ©rabilitΓ©, veuillez envoyer un email Γ  security@openprovena.org


πŸ’Ύ Backup

Des scripts de backup sont fournis dans backups/backup.sh :

# Backup quotidien
./backups/backup.sh daily

# Backup hebdomadaire
./backups/backup.sh weekly

# Backup mensuel
./backups/backup.sh monthly

πŸ“ License

Ce projet est sous licence MIT - voir le fichier LICENSE pour plus de dΓ©tails.


OpenProvena - Un standard ouvert pour Γ©valuer la crΓ©dibilitΓ© de l'information.

About

OpenProvena is an open standard and infrastructure for evaluating the credibility of information in the age of artificial intelligence. We believe that trust in information should not be a black box it should be transparent, verifiable, and community-driven.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages