personal_shopper_api

Backend Node.js/Express de personal shopper produit.

L'application expose :

  • POST /api/chat pour le parcours conversationnel
  • POST /api/search-products pour la recherche ranked directe
  • POST /api/search-products-ranked comme alias ranked
  • POST /api/search-products-legacy pour l'ancien contrat

Documentation

Documentation détaillée équipe :

Documents complémentaires :

Installation rapide

Prérequis :

  • Node.js >= 18
  • npm
  • accès Snowflake
  • OPENAI_API_KEY si le chat doit être actif

Sous Unix-like :

cp .env.example .env
npm install

Sous PowerShell :

Copy-Item .env.example .env npm install

Renseigner ensuite .env à partir de .env.example.

Lancement

Développement :

npm run dev

Production simple :

npm start

Production via PM2 :

npm run prod

Endpoints principaux

  • GET /health
  • POST /api/chat
  • POST /api/search-products
  • POST /api/search-products-ranked
  • POST /api/search-products-legacy

Contrat ranked direct

/api/search-products et /api/search-products-ranked attendent le contrat 12 champs suivant :

{  "famille": null,  "carac_technique": null,  "comp_1": null,  "comp_2": null,  "coloris_secondaire": "BLEU",  "coloris_tertiaire": null,  "genre": "HOUSSE DE COUETTE",  "matiere_web": null,  "type_produit_web": "HOUSSE DE COUETTE",  "desc_inspi_1": "montagne",  "desc_inspi_2": null,  "desc_inspi_3": null
}

Contrat chat

{  "message": "je cherche une housse de couette rose en satin esprit plage",  "conversationId": "chat-001"
}

Notes d'exploitation

  • la mémoire conversationnelle est stockée en RAM par conversationId
  • la configuration PM2 reste en instances: 1
  • la validation metadata stricte est appliquée dans le flux chat, pas sur la route ranked directe