Tous les guides
IntermédiaireÀ votre rythmeGuide gratuitSection 81/95

Architecture technique — Concevoir sa solution

Pratiquez les fondations du développement : programmation, web, API, données et usages de l’IA. Des sections et exercices pour construire vos premiers projets.

💡

Contenu gratuit, accessible sans compte. Les outils et modèles évoluent : consultez le dossier actuel pour vérifier leurs versions. Modèles et sources

Section 11.5.3 : Architecture technique — Concevoir sa solution

🎯 Objectif pédagogique

Concevoir l'architecture technique d'une application IA : diagramme de composants, choix de stack, flux de données, et points d'intégration. Vous serez capable de dessiner l'architecture de votre projet avant de coder.


Dessiner avant de coder

Marc a son cadrage. Maintenant, il dessine l'architecture : quels composants, comment ils communiquent, quelles technologies. Un diagramme d'architecture, c'est le plan de l'architecte — sans lui, vous construisez à l'aveugle.

Architecture globale

┌──────────────────────────────────────────────────────────┐
│                    CareerBot Pro — Architecture           │
├──────────────────────────────────────────────────────────┤
│                                                          │
│  ┌──────────────┐    ┌────────────────────────────┐     │
│  │   FRONTEND   │    │        BACKEND              │     │
│  │  (Streamlit) │    │                              │     │
│  │              │───▶│  app.py                      │     │
│  │  - Chat UI   │    │   ├── agent.py (ReAct loop)  │     │
│  │  - Sidebar   │    │   ├── tools.py (functions)   │     │
│  │  - Stats     │    │   ├── guardrails.py          │     │
│  │  - Upload    │    │   ├── memory.py              │     │
│  └──────────────┘    │   └── knowledge.py           │     │
│                      └──────┬────────┬──────────────┘     │
│                             │        │                     │
│                      ┌──────▼──┐  ┌──▼───────────┐       │
│                      │ OpenAI  │  │  ChromaDB     │       │
│                      │   API   │  │  (Vectors)    │       │
│                      │         │  │               │       │
│                      │ GPT-4o  │  │ Embeddings    │       │
│                      │ Embed   │  │ Collections   │       │
│                      └─────────┘  └───────────────┘       │
│                                                          │
└──────────────────────────────────────────────────────────┘

Flux de données détaillé

# Flux pour une question utilisateur :

# 1. INPUT : User tape "Quel salaire pour un Data Analyst ?"
#    → Streamlit capture via st.chat_input()
#    → Passe à guardrails.check_input()

# 2. GUARDRAILS INPUT :
#    → PII filter : masque emails, téléphones
#    → Injection check : bloc les patterns dangereux
#    → Length check : max 5000 chars
#    → Si bloqué → message d'erreur, pas d'appel API

# 3. AGENT :
#    → System prompt + historique + user message
#    → Appel OpenAI avec tools
#    → Le modèle décide : tool_call "search_knowledge_base"(query="salaire Data Analyst")

# 4. TOOL EXECUTION :
#    → knowledge.py : ChromaDB.query(query, n_results=3)
#    → Retourne les 3 chunks les plus pertinents

# 5. AGENT (suite) :
#    → Reçoit les chunks comme contexte
#    → Génère une réponse sourcée
#    → Pas de tool_call → réponse finale

# 6. GUARDRAILS OUTPUT :
#    → Vérifie que la réponse ne contient pas le system prompt
#    → Vérifie le ton et la cohérence

# 7. OUTPUT : Streamlit affiche la réponse en streaming

Choix de stack justifiés

ComposantTechnologieJustification
FrontendStreamlitPrototypage rapide, Python natif, zéro JS
LLMOpenAI GPT-4oMeilleur rapport qualité/prix, function calling natif
Embeddingstext-embedding-3-smallPas cher (0.02$/M tokens), bonne qualité
Vector DBChromaDBSimple, local, Python natif, pas de serveur
LangagePython 3.11+Écosystème IA dominant, bibliothèques matures
DéploiementStreamlit CloudGratuit, déploiement Git push, zéro DevOps
Secrets.env + dotenvStandard, sécurisé (.gitignore)

Structure des données

# Modèles de données (pas besoin d'ORM pour un MVP)

# Message de conversation
message = \{
    "role": "user" | "assistant" | "system" | "tool",
    "content": "texte du message",
    "timestamp": "2025-01-15T14:30:00",
    "tool_calls": None | [...]
\}

# Profil utilisateur
user_profile = \{
    "background": "Finance, 8 ans",
    "target_role": "Data Analyst",
    "skills": ["Python", "SQL", "Excel"],
    "location": "Paris",
    "salary_expectation": "45-55k€"
\}

# Document de la base de connaissances
knowledge_doc = \{
    "id": "salary_data_analyst_2025",
    "content": "Le salaire moyen...",
    "metadata": \{
        "category": "salaires",
        "last_updated": "2025-01",
        "source": "Glassdoor + INSEE"
    \}
\}

Architecture = Communication

Le diagramme d'architecture n'est pas juste pour vous — c'est un outil de communication. En entretien, si on vous demande "Comment est architecturé votre projet ?", vous montrez le diagramme et expliquez en 2 minutes. C'est ce qui distingue un codeur d'un ingénieur.

🏋️ Exercice pratique (25 minutes)

  1. →Dessinez le diagramme d'architecture de votre projet (papier ou outil en ligne)
  2. →Listez chaque composant et justifiez votre choix de technologie
  3. →Documentez le flux de données pour une requête utilisateur
  4. →Identifiez les points de défaillance possibles (API down, ChromaDB vide)
Vérification rapide

Pourquoi dessiner l'architecture AVANT de coder ?

Votre progression

Cette progression est déclarative et conservée dans votre navigateur. L’attestation finale ne constitue pas un diplôme ni une évaluation indépendante.

Voir ma progression et mon attestation

Apprendre l’IA, du premier prompt aux agents

15 guides gratuitsQuiz, schémas et ateliersSans compte

Un cas pratique IA dans votre boîte mail

Méthodes, ressources et nouveaux exercices. Gratuit, avec désinscription à tout moment.