|
| 1 | +# Système d'Apprentissage Automatique 🧠 |
| 2 | + |
| 3 | +Un système intelligent qui génère automatiquement un journal d'apprentissage personnalisé quotidien et l'envoie directement sur votre Kindle. |
| 4 | + |
| 5 | +## 🎯 Fonctionnalités |
| 6 | + |
| 7 | +- **📰 Agrégation RSS** - Collecte les articles de vos flux préférés |
| 8 | +- **🎥 Résumés YouTube** - Résumés IA des vidéos récentes |
| 9 | +- **📄 PDF avec QR Codes** - Document formaté avec codes QR pour accéder aux sources |
| 10 | +- **📧 Envoi automatique Kindle** - Livraison directe chaque matin |
| 11 | +- **⚙️ Configuration flexible** - Personnalisation facile via YAML |
| 12 | + |
| 13 | +## 🚀 Installation Rapide |
| 14 | + |
| 15 | +```bash |
| 16 | +# Cloner et configurer |
| 17 | +git clone <votre-repo> learning-system |
| 18 | +cd learning-system |
| 19 | + |
| 20 | +# Exécuter la configuration automatique |
| 21 | +chmod +x setup.sh |
| 22 | +./setup.sh |
| 23 | + |
| 24 | +# Configurer vos identifiants |
| 25 | +cp .env.template .env |
| 26 | +# Éditer .env avec vos clés API et emails |
| 27 | + |
| 28 | +# Tester le système |
| 29 | +python test_system.py |
| 30 | + |
| 31 | +# Lancer la génération |
| 32 | +python main.py |
| 33 | +``` |
| 34 | + |
| 35 | +## 🔧 Configuration |
| 36 | + |
| 37 | +### 1. Variables d'environnement (.env) |
| 38 | +```bash |
| 39 | +OPENAI_API_KEY=votre_cle_openai |
| 40 | +KINDLE_EMAIL=votrenom@kindle.com |
| 41 | +SENDER_EMAIL=votre.email@gmail.com |
| 42 | +SMTP_PASSWORD=mot_de_passe_app_gmail |
| 43 | +``` |
| 44 | + |
| 45 | +### 2. Flux RSS et chaînes YouTube (config.yaml) |
| 46 | +```yaml |
| 47 | +rss_feeds: |
| 48 | + - "https://blog.exemple.com/rss" |
| 49 | + - "https://autre-site.com/feed" |
| 50 | + |
| 51 | +youtube_channels: |
| 52 | + - "UCxxxxxxx" # ID de chaîne YouTube |
| 53 | +``` |
| 54 | +
|
| 55 | +### 3. Configuration Kindle |
| 56 | +1. Allez sur https://www.amazon.com/myk |
| 57 | +2. Ajoutez votre email expéditeur à la liste approuvée |
| 58 | +3. Notez votre adresse @kindle.com |
| 59 | +
|
| 60 | +## 🤖 Automatisation |
| 61 | +
|
| 62 | +Pour recevoir votre journal chaque matin à 7h: |
| 63 | +
|
| 64 | +```bash |
| 65 | +# Rendre le script exécutable |
| 66 | +chmod +x run_daily.sh |
| 67 | + |
| 68 | +# Ajouter au crontab |
| 69 | +crontab -e |
| 70 | + |
| 71 | +# Ajouter cette ligne: |
| 72 | +0 7 * * * /Users/pierre-henrysoria/Code/learning-system/run_daily.sh |
| 73 | +``` |
| 74 | + |
| 75 | +## 📱 Applications RSS Recommandées |
| 76 | + |
| 77 | +Pour lire vos flux sur macOS et iPad: |
| 78 | + |
| 79 | +### 🏆 **Reeder 5** (Recommandé) |
| 80 | +- App native macOS/iPad |
| 81 | +- Interface élégante sans distraction |
| 82 | +- Achat unique, pas d'abonnement |
| 83 | +- Synchronisation via iCloud/Feedbin |
| 84 | + |
| 85 | +### 🆓 **NetNewsWire** |
| 86 | +- Gratuit et open source |
| 87 | +- Rapide et léger |
| 88 | +- Parfait pour un usage minimaliste |
| 89 | + |
| 90 | +### ✨ **Readwise Reader** |
| 91 | +- Résumés IA intégrés |
| 92 | +- Gestion newsletters + RSS + PDF |
| 93 | +- Envoi automatique vers Kindle |
| 94 | +- Abonnement ~10€/mois |
| 95 | + |
| 96 | +## 🛠️ Structure du Projet |
| 97 | + |
| 98 | +``` |
| 99 | +learning-system/ |
| 100 | +├── main.py # Script principal |
| 101 | +├── config.yaml # Configuration |
| 102 | +├── requirements.txt # Dépendances Python |
| 103 | +├── setup.sh # Script de configuration |
| 104 | +├── run_daily.sh # Script d'automatisation |
| 105 | +├── src/ |
| 106 | +│ ├── config.py # Gestion configuration |
| 107 | +│ ├── rss_aggregator.py # Collecte RSS |
| 108 | +│ ├── youtube_summarizer.py # Résumés YouTube |
| 109 | +│ ├── pdf_generator.py # Génération PDF + QR |
| 110 | +│ └── kindle_sender.py # Envoi email Kindle |
| 111 | +├── output/ # PDFs générés |
| 112 | +└── logs/ # Fichiers de log |
| 113 | +``` |
| 114 | + |
| 115 | +## 🎨 Exemple de Sortie |
| 116 | + |
| 117 | +Le PDF généré contient: |
| 118 | +- **En-tête stylé** avec date du jour |
| 119 | +- **Résumé du contenu** (nombre d'articles, vidéos) |
| 120 | +- **Articles RSS** avec source et date |
| 121 | +- **Résumés vidéos IA** en français |
| 122 | +- **QR codes** pour chaque source |
| 123 | +- **Mise en page optimisée** pour Kindle |
| 124 | + |
| 125 | +## 🔍 Comment Inclure les QR Codes |
| 126 | + |
| 127 | +Les QR codes sont automatiquement générés pour chaque article: |
| 128 | + |
| 129 | +```python |
| 130 | +# Dans pdf_generator.py |
| 131 | +def generate_qr_code(self, url: str) -> Image: |
| 132 | + qr = qrcode.QRCode( |
| 133 | + version=1, |
| 134 | + error_correction=qrcode.constants.ERROR_CORRECT_L, |
| 135 | + box_size=4, |
| 136 | + border=2, |
| 137 | + ) |
| 138 | + qr.add_data(url) |
| 139 | + qr.make(fit=True) |
| 140 | + |
| 141 | + qr_img = qr.make_image(fill_color="black", back_color="white") |
| 142 | + # Conversion en Image ReportLab... |
| 143 | +``` |
| 144 | + |
| 145 | +## 🚨 Dépannage |
| 146 | + |
| 147 | +### Problème d'authentification Gmail |
| 148 | +- Activez l'authentification à 2 facteurs |
| 149 | +- Générez un mot de passe d'application |
| 150 | +- Utilisez ce mot de passe dans .env |
| 151 | + |
| 152 | +### Kindle ne reçoit pas les emails |
| 153 | +- Vérifiez que votre email est autorisé sur Amazon |
| 154 | +- Confirmez l'adresse @kindle.com |
| 155 | +- Vérifiez les dossiers spam |
| 156 | + |
| 157 | +### Pas de résumés de vidéos |
| 158 | +- Vérifiez votre clé OpenAI API |
| 159 | +- Ajoutez des IDs de chaînes YouTube valides |
| 160 | +- Vérifiez les quotas API |
| 161 | + |
| 162 | +## 📈 Prochaines Améliorations |
| 163 | + |
| 164 | +- [ ] Support EPUB pour un meilleur rendu Kindle |
| 165 | +- [ ] Interface web de configuration |
| 166 | +- [ ] Filtres intelligents par mots-clés |
| 167 | +- [ ] Intégration newsletters automatique |
| 168 | +- [ ] Support de plus de sources (Reddit, Hacker News) |
| 169 | + |
| 170 | +## 🤝 Contribution |
| 171 | + |
| 172 | +Les contributions sont bienvenues ! N'hésitez pas à ouvrir une issue ou proposer une pull request. |
| 173 | + |
| 174 | +--- |
| 175 | + |
| 176 | +**🧠 Bon apprentissage automatique ! 📚✨** |
0 commit comments