All guides
IntermediateSelf-pacedFree GuideSection 81/95

Architecture technique — Concevoir sa solution

Practise development foundations: programming, web, APIs, data and AI tools. Work through sections and exercises to build your first projects.

The full lessons for this course are currently available in French. Use the section menu to navigate the French course.

💡

Free content, available without an account. Tools and models change: use the current model guide to check their versions. Models and 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)
Quick Check

Pourquoi dessiner l'architecture AVANT de coder ?

Your progress

Progress is self-reported and stored in your browser. The final completion record is not a qualification or an independent assessment.

View progress and completion record

Learn AI, from prompts to agents

15 free guidesQuizzes, diagrams and workshopsNo account needed

One practical AI workflow in your inbox

Methods, resources and new exercises. Free, unsubscribe at any time.