Skip to content

Latest commit

 

History

History
56 lines (35 loc) · 2.09 KB

File metadata and controls

56 lines (35 loc) · 2.09 KB

RAG classifier for product

Using coicop classification.

Starting

uv sync

Workflow

Le pipeline est orchestré via Argo Workflows (argo/pipeline.yaml) selon le DAG suivant :

                   ┌──→ prune-coicop ──→ create-vector-db ──┐
preprocessing ─────┤                                         ├──→ run-rag
                   └──→ prune-annotations ───────────────────┘

preprocessing (construction-dataset)

Construit le dataset d'annotations à partir des sources brutes (COPAIN, historique, suggester).

  • Clone et exécute le repo construction-dataset
  • Exporte le dataset consolidé sur S3

0_prunning_coicop.py

Élague les hiérarchies linéaires de la nomenclature COICOP brute et exporte les notices filtrées ainsi qu'une table de correspondance vers S3.

  • Supprime le niveau 5 (Poste) de la nomenclature
  • Produit les notices prunées et la table de mapping niveau 4

0_create_vector_db.py

Encode les notices COICOP dans une base vectorielle Qdrant (plusieurs stratégies d'indexation).

  1. Génération des embeddings : les notices sont encodées via le modèle VLLM (VLLM_EMBEDDING_URL, VLLM_EMBEDDING_API_KEY)
  2. Stockage vectoriel : les embeddings sont indexés dans Qdrant (QDRANT_URL, QDRANT_API_KEY, QDRANT_API_PORT)

1_prune_annotations.py

Tronque les codes d'annotation au niveau 4 et applique la table de correspondance COICOP pour normaliser les codes de vérité terrain.

  • Dépend de 0_prunning_coicop.py (requiert la table de mapping sur S3)

2_run_rag.py

Classifie les annotations via le pipeline RAG.

  1. Gestion des prompts : les templates sont stockés dans Langfuse (LANGFUSE_BASE_URL, LANGFUSE_PUBLIC_KEY, LANGFUSE_SECRET_KEY)
  2. Retrieval et génération :
    • Les contextes pertinents sont récupérés depuis Qdrant
    • La génération finale utilise le modèle VLLM (VLLM_GENERATION_URL, VLLM_GENERATION_API_KEY)
  3. Logging MLflow : les métriques sont enregistrées dans MLflow (MLFLOW_TRACKING_URI)