Skip to content

kirillsst/Fake-News-Detect

Repository files navigation

📘 Guide de configuration et d’exécution du projet Fake News Detect

⚙️ 0. Installation des dépendances

Il faut créer l'environnement

python3 -m venv .venv
source .venv/bin/activate

Avant de commencer, assurez-vous d’avoir installé et synchronisé toutes les dépendances du projet à l’aide de uv :

uv sync

Télécharger le modèle

python -m spacy download en_core_web_sm

1. Chargement des données

Utilisez le lien suivant pour télécharger le jeu de données :
👉 Fake and Real News Dataset – Kaggle

Après le téléchargement, placez les fichiers dans le répertoire racine du projet :


/Fake-News-Detect/
│
├── True.csv
└── Fake.csv

Créez ensuite une structure de dossiers pour organiser vos données :


/Fake-News-Detect/
│
└── data/
├── raw/
└── processed/

Pour extraire un nombre spécifique de lignes d’un fichier CSV (par exemple, pour un test rapide), utilisez la commande suivante :

head -n <n_lignes> input.csv > data/raw/output.csv

Remplacez <n_lignes> par le nombre de lignes souhaité.

2. Exécution du pipeline de traitement

Lancez le script suivant pour traiter vos deux fichiers CSV (True.csv et Fake.csv) :

python process_data/pipeline.py

Une fois le traitement terminé, un fichier CSV final sera généré dans le dossier :

data/processed/

Ce fichier fusionnera les deux sources et contiendra les colonnes suivantes :

Colonnes Description
article_id Identifiant unique de l’article
chunk_id Identifiant du segment (chunk) de texte
text Contenu textuel de l’article
label Classe de l’article : Fake ou True

3. Création de la base de données Chroma

Tout se fait désormais en une seule commande via le pipeline principal :

python database/chroma_pipeline.py

Ce script :

  • lit automatiquement le fichier data/processed/chunks.csv,

  • crée la collection fake_news_collection (si elle n’existe pas),

  • génère les embeddings pour chaque chunk,

  • insère les données dans la base par lots (batch_size=50 par défaut).

Après l’exécution, vérifiez le contenu de la base de données avec :

python database/check_db.py

Ce script vous permettra de confirmer le nombre de chunks présents dans la collection.

4. Utilisation de l’interface Streamlit

Une fois la base configurée, vous pouvez lancer l’interface utilisateur avec Streamlit :

streamlit run interface/app.py

Terminal :

python rag_system/rag_pipeline.py

Cette interface vous permettra d’entrer un texte et d’obtenir une prédiction au format suivant :

Résultat : Fake ou True
Explication : Raisonnement du modèle

Structure de projet

├── README.md
├── Dockerfile
├── chroma_db
├── data
│   ├── processed
│   │   └── chunks.csv
│   └── raw
│       ├── Fake.csv
│       └── True.csv
├── database
│   ├── __init__.py
│   ├── check_db.py
│   ├── chroma_pipeline.py
│   └── chroma_utils.py
├── interface
│   └── app.py
├── notebooks
|   ├── exploration_chaima.ipynb
│   └── exploration.ipynb
├── process_data 
│   ├── article_processor.py
│   ├── base_article.py
│   ├── chunked_article.py
│   ├── pipeline.py
│   └── preprocessing_article.py
├── pyproject.toml
├── rag_system
│   ├── __init__.py
│   ├── azure_client.py
│   ├── azure_generation.py
│   ├── chroma_retrieval.py
│   ├── query_preprocess.py
│   └── rag_pipeline.py
├── tests
│   ├── pytest.ini
│   ├── test_articles.py
│   └── test_pipeline.py
├── docker-compose.yml
├── requirements.txt
└── uv.lock

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •