Application Streamlit pédagogique pour illustrer les principes fondamentaux des LLMs et chatbots d'IA, conçue pour un atelier lycéens. Chaque mode décompose une brique de plus en plus complexe, de la complétion brute jusqu'à la boucle agentique.
| Mode | Ce qu'on montre |
|---|---|
| ① Complétion de texte | Le modèle prédit les tokens suivants un par un, en streaming |
| ② Dialogue | Un chatbot n'est qu'une complétion d'historique de conversation passé en texte brut |
| ③ Raisonnement | Un prompt force le modèle à écrire ses étapes de réflexion avant de répondre |
| ④ Agent avec outils | Raisonnement + appel d'outil (calculatrice, météo) + boucle |
git clone <your-repo-url>
cd <your-repo>
pip install -r requirements.txtstreamlit
openai
python-dotenv
httpx
truststore
L'app supporte deux modes de configuration, par ordre de priorité :
Créez un fichier .env à la racine :
DS_LLM_API_URL=https://your-api-endpoint/v1
DS_LLM_API_KEY=your-api-keySi les variables d'environnement ne sont pas définies, l'app affiche un formulaire dans la barre latérale pour saisir l'URL et la clé API directement. Utile pour un usage dans différents contextes (réseau interne, cloud, OpenAI, Mistral, Infomaniak...).
Les valeurs saisies manuellement sont stockées en
session_state— elles ne persistent pas au redémarrage de l'app.
streamlit run app.pyL'app filtre les modèles disponibles sur l'endpoint pour n'afficher que les LLMs de génération de texte. La liste autorisée est définie dans get_model_list() :
authorized_models = [
"Apertus-70B-Instruct-2509",
"mistralai/Ministral-3-14B-Instruct-2512",
"Qwen/Qwen3.5-122B-A10B-FP8",
"google/gemma-4-31B-it",
"moonshotai/Kimi-K2.6",
"nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-FP8",
"mistralai/Mistral-Small-4-119B-2603",
]Seuls les modèles présents à la fois dans cette liste et sur l'endpoint configuré sont proposés à la sélection.
Accessibles dans la barre latérale pour les modes Complétion, Dialogue et Raisonnement :
| Paramètre | Défaut | Description |
|---|---|---|
| Modèle | premier disponible | Choix du LLM |
| Tokens à générer | 150 | Longueur max de la réponse |
| Température | 0.7 | Créativité (0 = déterministe, 1.5 = très créatif) |
- Streaming token par token en mode Complétion
- Dialogue pré-amorcé éditable — reproduit la technique de prompt engineering de 2022 sur les modèles de complétion
- Prompt système visible et modifiable en mode Raisonnement — les élèves voient exactement l'astuce
- Compatible tout endpoint OpenAI-compatible (DS platform, OpenAI, Mistral, Infomaniak, Ollama...)
- SSL truststore pour les environnements d'entreprise avec PKI interne
Développé pour un atelier de sensibilisation à l'IA générative pour lycéens, dans le cadre d'une démarche pédagogique visant à démystifier le fonctionnement des LLMs — de la complétion de texte jusqu'aux agents.