Skip to content

feat(update): matching#10

Merged
SachaHenneveux merged 1 commit intomainfrom
feat/matching
Mar 16, 2026
Merged

feat(update): matching#10
SachaHenneveux merged 1 commit intomainfrom
feat/matching

Conversation

@Antoine0703
Copy link
Copy Markdown
Collaborator

Contenu

Description

Implémentation d'un système de dispatch intelligent d'articles aux utilisateurs basé sur la similarité sémantique des embeddings vectoriels. Les articles scrapés sont automatiquement dispatchés aux utilisateurs dont les mots-clés matchent (≥70% similarité cosinus).

Fonctionnalités Ajoutées

Moteur de Matching Intelligent

  • Calcul d'embeddings vectoriels (OpenAI text-embedding-3-small, 1536 dimensions)
  • Matching via similarité cosinus avec pgvector (PostgreSQL)
  • Flexibilité sémantique : "GPT 3", "GPT-3", "GPT3" matchent tous
  • Threshold de similarité configurable (défaut: 0.7 = 70%)
  • Dispatch automatique à chaque article scrapé

Base de Données

4 nouvelles tables PostgreSQL :

  • users - Gestion des utilisateurs
  • user_keywords - Mots-clés centralisés
  • user_keyword_embeddings - Embeddings vectoriels des keywords
  • user_article_delivery - Historique des dispatches avec scores de similarité

API (Serveur Rust)

13 routes ajoutées :

Articles (3 routes)

  • GET /articles - Liste des articles
  • GET /articles/:id - Détails d'un article
  • GET /articles/count - Nombre total d'articles

Authentification (2 routes)

  • POST /auth/register - Création de compte utilisateur
  • POST /auth/login - Connexion avec JWT (60min)

Gestion des Mots-clés (3 routes)

  • GET /users/:id/keywords - Liste des keywords d'un utilisateur
  • POST /users/:id/keywords - Ajouter un keyword
  • DELETE /users/:user_id/keywords/:keyword_id - Supprimer un keyword

Feed Personnalisé (1 route)

  • GET /users/:id/feed - Feed personnalisé avec articles matchés

Statistiques (3 routes)

  • GET /users/:id/stats - Stats utilisateur (articles, keywords, avg similarity)
  • GET /delivery/stats - Stats globales du système
  • GET /delivery/recent - 20 dernières deliveries système

@SachaHenneveux SachaHenneveux merged commit cc0d761 into main Mar 16, 2026
1 check passed
@SachaHenneveux SachaHenneveux deleted the feat/matching branch March 16, 2026 21:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants