{"id":50372538,"url":"https://github.com/gasycoder/check-ia","last_synced_at":"2026-05-30T08:02:09.581Z","repository":{"id":349487430,"uuid":"1202543600","full_name":"GasyCoder/check-ia","owner":"GasyCoder","description":null,"archived":false,"fork":false,"pushed_at":"2026-04-06T06:12:39.000Z","size":3,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-04-06T08:39:22.774Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GasyCoder.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-06T06:10:01.000Z","updated_at":"2026-04-06T06:12:42.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/GasyCoder/check-ia","commit_stats":null,"previous_names":["gasycoder/check-ia"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/GasyCoder/check-ia","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GasyCoder%2Fcheck-ia","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GasyCoder%2Fcheck-ia/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GasyCoder%2Fcheck-ia/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GasyCoder%2Fcheck-ia/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GasyCoder","download_url":"https://codeload.github.com/GasyCoder/check-ia/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GasyCoder%2Fcheck-ia/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33684414,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-30T02:00:06.278Z","response_time":92,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-05-30T08:02:08.629Z","updated_at":"2026-05-30T08:02:09.575Z","avatar_url":"https://github.com/GasyCoder.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🛡️ CheckIA : Détecteur Local de Textes Générés par IA\n\n**CheckIA** est une application web éducative conçue pour analyser la probabilité qu'un texte soit écrit par une intelligence artificielle (comme GPT-4, Claude ou Gemini). \n\nL'objectif principal est de fournir une solution **100% gratuite, locale et confidentielle** pour les institutions académiques, sans dépendre d'abonnements coûteux.\n\n---\n\n## 🏗️ Architecture du Projet\n\nLe projet est divisé en deux parties principales communiquant via une API interne :\n\n1.  **Plateforme Web (Port 8000) :** Laravel 11 + Vue.js 3 (Inertia.js). Gère l'interface utilisateur et la logique métier.\n2.  **Moteur d'Analyse (Port 8001) :** Python FastAPI + Hugging Face Transformers. Exécute le modèle de Machine Learning en local.\n\n---\n\n## 🛠️ Stack Technique\n\n| Composant | Technologie |\n| :--- | :--- |\n| **Frontend** | Vue.js 3, Tailwind CSS, Inertia.js |\n| **Backend** | Laravel 11 (PHP 8.2+) |\n| **Service IA** | Python 3.9+, FastAPI, Uvicorn |\n| **Modèle NLP** | `roberta-base-openai-detector` (via Hugging Face) |\n| **Deep Learning** | PyTorch / Transformers |\n\n---\n\n## 📂 Structure du Dossier `check-ia/`\n\n```text\ncheck-ia/\n├── app/                # Logique Laravel (Controllers, Services)\n├── ai-service/         # Micro-service Python (Moteur IA)\n│   ├── main.py         # Point d'entrée FastAPI\n│   └── requirements.txt# Dépendances Python\n├── resources/\n│   └── js/             # Composants Vue.js (Interface)\n├── routes/             # Définition des routes Web et API\n└── README.md           # Documentation (Ce fichier)\n```\n\n---\n\n## 🚀 Installation et Configuration\n\n### 1. Prérequis Système (Linux/Ubuntu)\nAssurez-vous d'avoir installé les outils suivants sur votre machine :\n\n```bash\nsudo apt update\nsudo apt install php-cli php-curl python3-venv python3-pip nodejs npm composer\n```\n\n### 2. Configuration du Backend Laravel\nÀ la racine du dossier `check-ia/` :\n\n```bash\ncomposer install\nnpm install \u0026\u0026 npm run build\ncp .env.example .env\nphp artisan key:generate\n```\n\n### 3. Configuration du Service IA (Python)\nDans le dossier `ai-service/` :\n\n```bash\ncd ai-service\npython3 -m venv venv\nsource venv/bin/activate\npip install fastapi uvicorn transformers torch\n```\n\n---\n\n## 🏃 Lancement de l'Application\n\nVous devez lancer **deux terminaux** simultanément :\n\n### Terminal 1 : Le Moteur IA (Python)\n```bash\ncd ai-service\nsource venv/bin/activate\nuvicorn main:app --host 127.0.0.1 --port 8001\n```\n*(Note : Au premier lancement, le modèle de 500 Mo sera téléchargé automatiquement).*\n\n### Terminal 2 : L'Interface Web (Laravel)\n```bash\nphp artisan serve\n```\nL'application sera accessible sur : **http://127.0.0.1:8000**\n\n---\n\n## 🔍 Fonctionnement de la Détection\n\nL'analyse repose sur le modèle **RoBERTa-base-OpenAI-Detector**. Contrairement à une simple recherche de mots-clés, il analyse :\n\n*   **La Perplexité :** Le degré de surprise du texte pour un modèle de langue.\n*   **La Constance :** L'uniformité des probabilités de mots (typique des IA).\n\n### Interprétation des résultats :\n*   🟢 **0% - 35%** : Probablement écrit par un Humain.\n*   🟡 **35% - 70%** : Texte ambigu (possiblement édité par IA ou humain très scolaire).\n*   🔴 **70% - 100%** : Très forte probabilité de génération par IA.\n\n---\n\n## ⚠️ Limites Importantes\n\n*   **Taille du texte :** Pour une précision optimale, le texte doit contenir au moins **200 caractères**.\n*   **Langue :** Le modèle actuel est optimisé pour l'anglais et le français standard.\n*   **Éthique :** Ce score est une **estimation statistique**. Il ne doit jamais être la seule preuve pour sanctionner un étudiant.\n\n---\n\n## 👨‍💻 Développeur\n**M. Florent BEZARA**  \n*Enseignant-Chercheur \u0026 Développeur Backend*  \nMahajanga, Madagascar.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgasycoder%2Fcheck-ia","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgasycoder%2Fcheck-ia","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgasycoder%2Fcheck-ia/lists"}