Agents & SystèmesMatchmaker
Architecture
Architecture technique de Matchmaker : pipeline de matching, services IA, stockage vectoriel.
REF-SPEC/AG003-ARCH v1.0 — 2026-04-09
1. Vue d'ensemble
Matchmaker est conçu comme une API de matching avec un frontend de recherche. Le pipeline orchestre l'extraction de critères, la vectorisation, le calcul de scores multi-axes et la restitution avec radar explicable.
┌─────────────────────────────────────────────────┐
│ Client (React + Vite) │
│ Recherche ◄── API REST ──► Services │
│ Résultats /api/* externes │
│ Radar │
└───────────────────────┬─────────────────────────┘
│
┌──────────────┼──────────────┐
│ │ │
┌────▼────┐ ┌─────▼─────┐ ┌────▼────┐
│ SQLite │ │ OpenAI │ │ Groq │
│ / Turso │ │ Embeddings│ │ LLM │
└─────────┘ └───────────┘ └─────────┘
│
┌─────▼─────┐
│ Anthropic │
│ (fallback)│
└───────────┘2. Pipeline de matching
Besoin utilisateur
│
├──▶ [1] Embedding du besoin (OpenAI text-embedding-3-small, 1536 dims)
│
├──▶ [2] Extraction de critères (Groq / Claude / regex fallback)
│ → compétences[], secteurs[], typeMission, motsCles[]
│
└──▶ [3] Évaluation de chaque ressource active
│
├──▶ [A] Similarité sémantique (cosinus profil vs besoin) × 0.40
├──▶ [B] Compétences matchées (overlap + pondération niveau) × 0.25
├──▶ [C] Références sectorielles (profil + missions passées) × 0.15
├──▶ [D] Similarité de missions (cosinus références vs besoin) × 0.10
└──▶ [E] Disponibilité (capacité libre sur la période) × 0.10
│
▼
Score global = A + B + C + D + E
│
▼
Tri décroissant → Persistance → Résultats + Radar3. API routes
| Méthode | Route | Rôle |
|---|---|---|
| POST | /api/matching/search | Recherche par texte, retourne résultats scorés |
| POST | /api/matching/upload | Recherche par document uploadé |
| GET | /api/matching/history | 50 dernières recherches avec scores |
| GET | /api/matching/request/:id | Détail d'une recherche passée |
4. Frontend — Structure
| Composant | Rôle |
|---|---|
| MatchingPageClient | Orchestrateur principal (onglets recherche/historique) |
| MatchingResults | Affichage des résultats avec cards et radar |
| MatchingUploader | Upload de documents (PDF, DOCX, PPTX, TXT) |
| ScoreRadar | Diagramme radar Recharts à 5 axes |
5. Services externes
| Service | Usage | Fallback |
|---|---|---|
| OpenAI | Embeddings text-embedding-3-small (1536 dims) | — |
| Groq | Extraction de critères (Llama 3.3 70B, gratuit) | Claude |
| Anthropic | Fallback extraction de critères | — |
6. Contrôle d'accès
| Mesure | Implémentation |
|---|---|
| Rôle minimum | Associé ou liste d'emails autorisés |
| Rate limiting | 10 requêtes/minute par utilisateur |
| Redirection | Utilisateurs non autorisés redirigés vers l'accueil |