Section 11.5.11 : Déploiement et mise en production
🎯 Objectif pédagogique
Déployer votre application IA sur le cloud pour qu'elle soit accessible publiquement. Vous serez capable de mettre en production un chatbot Streamlit avec toutes ses dépendances.
Du localhost au monde réel
Marc a un chatbot qui fonctionne parfaitement en local. Mais tant qu'il tourne sur son ordinateur, personne ne peut le tester. Le déploiement rend l'application accessible à tous — c'est la ligne d'arrivée du développement.
Préparer le déploiement
# 1. requirements.txt — Toutes les dépendances
pip freeze > requirements.txt
# Nettoyez le fichier — gardez SEULEMENT ce qui est nécessaire :
# requirements.txt
streamlit==1.40.0
openai==1.55.0
anthropic==0.39.0
chromadb==0.5.23
python-dotenv==1.0.1
requests==2.32.3
# .streamlit/config.toml — Configuration Streamlit
[theme]
primaryColor = "#0891B2"
backgroundColor = "#FFFFFF"
secondaryBackgroundColor = "#F0F9FF"
textColor = "#1F2937"
font = "sans serif"
[server]
maxUploadSize = 5
headless = true
Structure de fichiers pour le déploiement
careerbot-pro/
├── app.py # Point d'entrée
├── config.py # Configuration
├── agent.py # Agent RAG
├── knowledge.py # Base de connaissances
├── tools.py # Définition des outils
├── guardrails.py # Filtres de sécurité
├── analytics.py # Tracking
├── webhook_client.py # Automatisations
├── pages/
│ ├── 1_Chat.py # Page chatbot
│ └── 2_Dashboard.py # Page analytics
├── data/
│ ├── knowledge/ # Fichiers à indexer
│ └── analytics.json # Données de tracking
├── .streamlit/
│ └── config.toml # Configuration Streamlit
├── requirements.txt # Dépendances
├── .gitignore # Fichiers à ignorer
└── README.md # Documentation
Déployer sur Streamlit Community Cloud
## Étapes de déploiement
### 1. Pousser sur GitHub
git init
git add .
git commit -m "feat: CareerBot Pro MVP ready for deployment"
git remote add origin https://github.com/votre-user/careerbot-pro.git
git push -u origin main
### 2. Streamlit Community Cloud
- Aller sur share.streamlit.io
- Connecter votre compte GitHub
- Sélectionner le repository "careerbot-pro"
- Fichier principal : app.py
- Cliquer "Deploy"
### 3. Secrets
Dans les Settings de l'app Streamlit :
- Ajouter OPENAI_API_KEY = "sk-..."
- Ajouter ANTHROPIC_API_KEY = "sk-ant-..."
- Format TOML (pas .env)
Protocole de mise en production
CHECKLIST AVANT DÉPLOIEMENT :
□ requirements.txt à jour (pip freeze)
□ Aucun secret dans le code (API keys dans .env / Secrets)
□ .gitignore inclut : .env, __pycache__/, data/chroma_db/
□ README.md avec instructions d'installation
□ Tests passent (pytest tests/ -v)
□ Application testée localement (streamlit run app.py)
□ Données de démonstration disponibles
□ Config Streamlit (.streamlit/config.toml)
□ GitHub repository propre (pas de gros fichiers)
□ URL personnalisée choisie
JAMAIS de secrets dans le code
OPENAI_API_KEY = "sk-proj-abc123..." dans votre code = clé exposée sur GitHub = facture surprise de 500€+. Utilisez TOUJOURS des variables d'environnement ou les Secrets Streamlit. Même dans des repos privés — les accidents d'exposition sont fréquents (push sur le mauvais repo, changement de visibilité...).
🏋️ Exercice pratique (30 minutes)
- →Créez le
requirements.txtet leconfig.toml - →Créez un repository GitHub avec la structure complète
- →Déployez sur Streamlit Community Cloud
- →Testez l'application en production : est-ce que tout marche ?
- →Partagez l'URL avec un ami pour un test réel
Quel est le risque principal d'un déploiement précipité sans checklist ?
Pourquoi Streamlit Community Cloud est-il recommandé pour un MVP plutôt que Docker + AWS ?