Bienvenue dans le dépôt CoursIA, qui contient les ressources et TPs pour le cours d'intelligence artificielle en C# et Python.
- Introduction
- Structure du dépôt
- Mise en route
- Parcours d'apprentissage
- Contenu des modules
- Suivis Projets
- Contribution
- Licence
Ce dépôt contient un ensemble de notebooks Jupyter interactifs et de ressources pour l'apprentissage de l'intelligence artificielle, couvrant un large éventail de sujets allant du machine learning classique aux techniques d'IA générative modernes, en passant par l'IA symbolique et les algorithmes de recherche.
Les notebooks sont principalement en C# (utilisant .NET Interactive) et Python, offrant une approche pratique et hands-on pour comprendre les concepts d'IA.
Le dépôt est organisé en plusieurs sections thématiques :
MyIA.AI.Notebooks/
├── GenAI/ # IA Générative (OpenAI, LLMs, RAG, etc.)
├── ML/ # Machine Learning avec ML.NET
├── IIT/ # Integrated Information Theory
├── Probas/ # Probabilités et inférence bayésienne
├── Search/ # Algorithmes de recherche et optimisation
├── Sudoku/ # Résolution de Sudoku avec différentes approches
├── SymbolicAI/ # IA Symbolique (RDF, Z3, OR-Tools)
└── Config/ # Configuration pour les notebooks
Avant de commencer, assurez-vous d'avoir installé :
- Python 3.9+
- Visual Studio Code
- L'extension Python et Jupyter dans VSCode
- Extension .Net extension pack
- .NET 9.0 SDK (pour les notebooks C#)
- OpenAI API key (pour les notebooks GenAI)
-
Créer et activer un environnement virtuel Python :
python -m venv venv source venv/bin/activate # macOS/Linux venv\Scripts\activate # Windows
-
Installer Jupyter et les bibliothèques nécessaires :
pip install --upgrade pip pip install jupyter openai
-
Ajouter l'environnement à Jupyter :
python -m ipykernel install --user --name=coursia --display-name "Python (CoursIA)" -
Configurer les clés API (pour GenAI) :
Créez un fichier
.envdans le dossierMyIA.AI.Notebooks/GenAI/en vous basant sur le fichier.env.example.
Pour les notebooks C#, vous devez également :
-
Restaurer les packages NuGet :
dotnet restore MyIA.CoursIA.sln
-
Configurer les paramètres API :
Copiez
MyIA.AI.Notebooks/Config/settings.json.openai-exampleversMyIA.AI.Notebooks/Config/settings.jsonet ajoutez votre clé API.
Voici un parcours d'apprentissage suggéré pour explorer ce dépôt :
- Introduction au Machine Learning - Commencez par les notebooks dans
ML/ - Algorithmes de recherche - Explorez les notebooks dans
Search/etSudoku/ - IA Symbolique - Découvrez les notebooks dans
SymbolicAI/ - Probabilités et inférence - Étudiez les notebooks dans
Probas/ - IA Générative - Terminez avec les notebooks dans
GenAI/
Notebooks sur l'IA générative, les grands modèles de langage (LLMs), et les techniques associées :
OpenAI_Intro.ipynb- Introduction à l'API OpenAIPromptEngineering.ipynb- Techniques d'ingénierie de promptsRAG.ipynb- Retrieval Augmented GenerationLocalLlama.ipynb- Utilisation de modèles locaux comme LlamaSemanticKernel/- Notebooks sur Microsoft Semantic Kernel
Série de notebooks sur le machine learning avec ML.NET :
ML-1-Introduction.ipynb- Introduction au ML avec ML.NETML-2-Data&Features.ipynb- Préparation des données et ingénierie des caractéristiquesML-3-Entrainement&AutoML.ipynb- Entraînement de modèles et AutoMLML-4-Evaluation.ipynb- Évaluation des modèlesTP-prevision-ventes.ipynb- TP sur la prévision des ventes
Notebooks illustrant différentes approches pour résoudre des Sudokus :
Sudoku-0-Environment.ipynb- Mise en place de l'environnementSudoku-1-Backtracking.ipynb- Résolution par backtrackingSudoku-2-Genetic.ipynb- Algorithmes génétiquesSudoku-3-ORTools.ipynb- Utilisation d'OR-ToolsSudoku-4-Z3.ipynb- Résolution avec le solveur Z3Sudoku-5-DancingLinks.ipynb- Algorithme de Dancing LinksSudoku-6-Infer.ipynb- Inférence probabiliste
Notebooks sur les algorithmes de recherche et d'optimisation :
GeneticSharp-EdgeDetection.ipynb- Détection de contours avec algorithmes génétiquesPortfolio_Optimization_GeneticSharp.ipynb- Optimisation de portefeuillePyGad-EdgeDetection.ipynb- Détection de contours avec PyGad
Notebooks sur l'IA symbolique et les approches formelles :
Linq2Z3.ipynb- Utilisation du solveur Z3 avec LINQOR-tools-Stiegler.ipynb- Résolution de problèmes avec OR-ToolsRDF.Net/- Utilisation de RDF avec .NET
Notebooks sur les probabilités et l'inférence bayésienne :
Infer-101.ipynb- Introduction à l'inférence probabiliste
Notebooks sur la théorie de l'information intégrée :
Intro_to_PyPhi.ipynb- Introduction à PyPhi pour IIT
Cette section contient les scripts pour l'installation, la validation et la gestion de l'écosystème ComfyUI-Qwen avec authentification sécurisée.
Pour installer l'écosystème complet de manière automatisée :
# Installation complète automatisée
python scripts/genai-auth/core/setup_complete_qwen.pyPour valider et diagnostiquer l'écosystème :
# Validation complète de l'écosystème
python scripts/genai-auth/core/validate_genai_ecosystem.py --verbose
# Diagnostic de l'authentification
python scripts/genai-auth/core/diagnose_comfyui_auth.py
# Synchronisation des tokens
python scripts/genai-auth/utils/token_synchronizer.py --unifyLa documentation complète de l'écosystème est disponible dans :
- Index de l'écosystème : Vue d'ensemble et navigation
- Guide d'utilisation : Instructions complètes (567 lignes)
- Architecture technique : Architecture détaillée (456 lignes)
- Rapport de mission : Mission accomplie (334 lignes)
L'écosystème est organisé de manière modulaire et maintenable :
scripts/genai-auth/
├── README.md (376 lignes - Documentation complète)
├── core/ Scripts principaux
│ ├── setup_complete_qwen.py (527 lignes - Installation complète)
│ ├── validate_genai_ecosystem.py (Validation écosystème)
│ ├── diagnose_comfyui_auth.py (Diagnostic authentification)
│ └── install_comfyui_login.py (Installation ComfyUI-Login)
├── utils/ Utilitaires spécialisés
│ ├── token_synchronizer.py (608 lignes - Synchroniseur unifié)
│ ├── comfyui_client_helper.py (1305 lignes - Client HTTP)
│ ├── workflow_utils.py (489 lignes - Manipulation workflows)
│ └── diagnostic_utils.py (426 lignes - Utilitaires diagnostic)
└── tests/ Scripts de test
└── genai-improvements/ Tests et débogage
La configuration Docker est organisée dans docker-configurations/ :
docker-configurations/
├── README.md (170 lignes - Documentation infrastructure)
├── comfyui-qwen/ (Configuration principale)
│ ├── docker-compose.yml
│ ├── .env
│ └── workspace/
├── models/ (Modèles partagés)
├── cache/ (Cache partagé)
└── orchestrator/ (Service d'orchestration)
## 📂 Suivis Projets
Cette section regroupe les suivis détaillés des projets en cours et terminés.
### 🖼️ Projet GenAI Image
- **Description** : Déploiement d'une infrastructure locale ComfyUI + Qwen pour la génération et l'édition d'images par IA. Inclut la mise en production SSL/IIS, le monitoring et le design de workflows pédagogiques.
- **Statut** : Phase 13A complétée, Phase 13B en planification
- **Accès** : [`docs/suivis/genai-image/README.md`](docs/suivis/genai-image/README.md)
## 👥 Contribution
Les contributions à ce dépôt sont les bienvenues ! Si vous souhaitez contribuer :
1. Forkez le dépôt
2. Créez une branche pour votre fonctionnalité (`git checkout -b feature/nouvelle-fonctionnalite`)
3. Committez vos changements (`git commit -m 'Ajout d'une nouvelle fonctionnalité'`)
4. Poussez vers la branche (`git push origin feature/nouvelle-fonctionnalite`)
5. Ouvrez une Pull Request
## 📄 Licence
Ce projet est sous licence MIT - voir le fichier [LICENSE](LICENSE) pour plus de détails.
---
🚀 Bon apprentissage et bonnes expérimentations avec l'IA !