Skip to content
Open

V5 #61

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
048861c
Update work
webmaster-vadf Sep 10, 2025
c360725
fly
webmaster-vadf Sep 15, 2025
cdad7da
uddate fr
webmaster-vadf Sep 15, 2025
6d58b91
update Booléen fly
webmaster-vadf Sep 15, 2025
7915877
update VADF
webmaster-vadf Sep 29, 2025
f24a601
date1
webmaster-vadf Sep 29, 2025
2847621
dockerfile
webmaster-vadf Sep 29, 2025
222183b
da
webmaster-vadf Sep 29, 2025
7216582
texte
webmaster-vadf Sep 29, 2025
c5b7242
date
webmaster-vadf Oct 1, 2025
6b88c99
update
webmaster-vadf Oct 2, 2025
abe1861
test
webmaster-vadf Oct 3, 2025
bd844ce
test claude MCP
webmaster-vadf Oct 3, 2025
a15dfa3
mcp claude
webmaster-vadf Oct 3, 2025
a789004
Fix: Import vadf_reponses.json directly instead of fs.readFile
webmaster-vadf Oct 6, 2025
c40583b
Update: Optimize VADF chatbot tone and responses
webmaster-vadf Oct 6, 2025
afc0f4d
Add: Creation compte intent and FAQ redirection
webmaster-vadf Oct 6, 2025
8aeb1e0
texte
webmaster-vadf Oct 31, 2025
8c6658a
update log
webmaster-vadf Nov 6, 2025
0d2a1e0
logs
webmaster-vadf Nov 6, 2025
369cb5e
max-height
webmaster-vadf Nov 7, 2025
9516005
clean log
webmaster-vadf Nov 7, 2025
9e1b19e
clean test
webmaster-vadf Nov 7, 2025
f70f046
Add: Comprehensive logging for VADF flow debugging and improve docume…
webmaster-vadf Nov 7, 2025
df3ff1d
sans log work
webmaster-vadf Nov 7, 2025
7c2a1fd
Fix: Add missing FAQ intents to keyword mapping and improve activatio…
webmaster-vadf Nov 7, 2025
5e1262d
test
webmaster-vadf Nov 7, 2025
5c3d773
Fix: Improve activation_compte intent handling and add comprehensive …
webmaster-vadf Nov 7, 2025
0744066
work
webmaster-vadf Nov 10, 2025
1806f9c
Add: Auto-detect local vs production environment for API URL
webmaster-vadf Nov 10, 2025
11d25e1
Update: Improve welcome message and UI adjustments
webmaster-vadf Nov 10, 2025
1e92ee1
Fix: Restore default filter for welcome message
webmaster-vadf Nov 10, 2025
ac239f3
Update: mise_a_jour_infos_entreprise intent with complete instructions
webmaster-vadf Nov 10, 2025
d2d9e75
Add: Comprehensive FAQ-based intents and responses
webmaster-vadf Nov 10, 2025
1a11aa9
Update: mot_de_passe_oublie intent with self-service instructions
webmaster-vadf Nov 10, 2025
5e53bd2
Update: mot_de_passe_oublie with step-by-step password reset instruct…
webmaster-vadf Nov 10, 2025
0e4a972
Update: decouvrir_produits intent with simplified response
webmaster-vadf Nov 10, 2025
b3c9e51
Refactor: Remove obsolete vadf-intent-matcher.js file
webmaster-vadf Nov 10, 2025
1639612
Add: Comprehensive logging for chat response flow debugging
webmaster-vadf Nov 10, 2025
1bb0f4a
Update: CLAUDE.md documentation with latest changes
webmaster-vadf Nov 10, 2025
5bd2e5f
Fix: Update VADF intent detection with all 22 intents and fix priority
webmaster-vadf Nov 10, 2025
e0327c5
Add: Enhanced MCP fallback logging and shop data search verification
webmaster-vadf Nov 12, 2025
d5939c1
Update: Document MCP fallback and tool logging in CLAUDE.md
webmaster-vadf Nov 12, 2025
be3e30d
Add: Frontend console logging for chat events and debugging
webmaster-vadf Nov 12, 2025
d124b13
Update: Shorten system prompts for concise responses
webmaster-vadf Nov 12, 2025
51beb2d
Update: Add FAQ sources and replace contact email with support email
webmaster-vadf Nov 12, 2025
7b3bdd2
Improve: Typing indicator timing and add comprehensive logging
webmaster-vadf Nov 12, 2025
0d89d2f
Change: Typing indicator removed at end_turn instead of first content
webmaster-vadf Nov 12, 2025
6754b1b
clean console
webmaster-vadf Nov 12, 2025
42dbfae
Parfait
webmaster-vadf Nov 12, 2025
36db050
Update css
webmaster-vadf Nov 12, 2025
2e0c274
update question & hauter UI
webmaster-vadf Nov 21, 2025
c0f7ac5
update
webmaster-vadf Nov 21, 2025
d58acd5
Refactor dashboard: improve code organization and add chatbot responses
webmaster-vadf Nov 24, 2025
1b519d1
Added conversationContext parameter, enriches system prompt with cust…
webmaster-vadf Feb 3, 2026
9065b92
Architecture de routing
webmaster-vadf Feb 3, 2026
86ce9a8
Ticket 1 — ContextManager centralisé
webmaster-vadf Feb 4, 2026
24d117e
Ticket 2 — Mémoire long-terme (facts + résumé)
webmaster-vadf Feb 4, 2026
4be61b1
Ticket 4 — Log routage + confiance
webmaster-vadf Feb 4, 2026
a046e96
Ticket 5 — Routage hybride avec score
webmaster-vadf Feb 4, 2026
9992ac4
Ticket 6 - Feedback utilisateur
webmaster-vadf Feb 4, 2026
97e943d
Ticket 7 - A/B Testing is complete
webmaster-vadf Feb 4, 2026
57e1b5c
Ticket 8 - Reporting de patterns
webmaster-vadf Feb 4, 2026
eb990c3
Prediction conversion (heuristique)
webmaster-vadf Feb 4, 2026
9e832c2
10- Dashboard enrichi (A/B + feedback + agents)
webmaster-vadf Feb 4, 2026
6888e11
Prisma improvements
webmaster-vadf Feb 4, 2026
c7ac4f7
Update md
webmaster-vadf Feb 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions .github/workflows/fly-deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# See https://fly.io/docs/app-guides/continuous-deployment-with-github-actions/

name: Fly Deploy
on:
push:
branches:
- main
jobs:
deploy:
name: Deploy app
runs-on: ubuntu-latest
concurrency: deploy-group # optional: ensure only one action runs at a time
steps:
- uses: actions/checkout@v4
- uses: superfly/flyctl-actions/setup-flyctl@master
- run: flyctl deploy --remote-only
env:
FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }}
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@ database.sqlite

/extensions/*/dist

# Generated reports
/reports

# Ignore shopify files created during app dev
.shopify/*
.shopify.lock
14 changes: 14 additions & 0 deletions .vscode/mcp.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"servers": {
"my-mcp-server-b50f43c8": {
"type": "stdio",
"command": "npx",
"args": [
"@shopify/dev-mcp@latest",
"-s",
"project"
]
}
},
"inputs": []
}
543 changes: 543 additions & 0 deletions CLAUDE.md

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
FROM node:18-alpine
RUN apk add --no-cache openssl

EXPOSE 3000
EXPOSE 8080

WORKDIR /app

Expand Down
332 changes: 332 additions & 0 deletions LOGS-ACTIVATION-COMPTE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,332 @@
# Guide des logs pour l'intention "activation_compte"

Ce document explique tous les logs qui seront affichés lors du traitement de l'intention `activation_compte`.

## Flux complet des logs

### 1. Activation du mode VADF (chat.jsx:217-237)

```
════════════════════════════════════════════════════════
🎯 [CHAT] VADF MODE ACTIVATED
📝 [CHAT] User message: Activer votre compte professionnel
════════════════════════════════════════════════════════
✅ [CHAT] VADF Manager loaded
🔍 [CHAT] Intent detection result: activation_compte
✅ [CHAT] VADF-specific intent detected: activation_compte
════════════════════════════════════════════════════════
```

**Signification :**
- Le mode VADF est activé car `promptType === 'vadfAssistant'`
- Le gestionnaire VADF est chargé avec succès
- L'intention détectée est `activation_compte`

---

### 2. Détection d'intention (vadf-response-manager.js:32-121)

```
════════════════════════════════════════════════════════
🔍 [VADF INTENT] Starting intent detection
📝 [VADF INTENT] Original message: Activer votre compte professionnel
📝 [VADF INTENT] Lowercase message: activer votre compte professionnel
════════════════════════════════════════════════════════
🔎 [VADF INTENT] Step 1: Checking product keywords
⚪ [VADF INTENT] No product keywords found
🔎 [VADF INTENT] Step 2: Checking specific VADF intents
✅ [VADF INTENT] Specific intent matched!
- Intent: "activation_compte"
- Keyword: "activer"
════════════════════════════════════════════════════════
```

**Signification :**
- Le message est converti en minuscules pour la recherche
- **Step 1 :** Vérifie si le message contient des mots-clés produit → Non
- **Step 2 :** Vérifie les intentions VADF spécifiques → Match trouvé !
- Le keyword `"activer"` correspond à l'intention `activation_compte`

---

### 3. Vérification du compte (chat.jsx:242-271)

#### Cas A : Message sans email (ex: "Activer votre compte professionnel")

```
👤 [CHAT] Account-related intent detected: activation_compte
📝 [CHAT] User message: Activer votre compte professionnel
📧 [CHAT] Email extraction attempt - Match found: false
📧 [CHAT] Extracted email: none
⚠️ [CHAT] No email found in message, skipping account check
⚠️ [CHAT] Will use default VADF response without account override
⚪ [CHAT] Account status is neither active nor inactive: null
```

**Signification :**
- L'intention nécessite une vérification de compte
- Aucun email trouvé dans le message (regex ne match pas)
- **La vérification de compte est SKIPPÉE**
- Pas de statut de compte (null)

#### Cas B : Message avec email (ex: "Je veux activer jean.dupont@example.com")

```
👤 [CHAT] Account-related intent detected: activation_compte
📝 [CHAT] User message: Je veux activer jean.dupont@example.com
📧 [CHAT] Email extraction attempt - Match found: true
📧 [CHAT] Extracted email: jean.dupont@example.com
✅ [CHAT] Email found, calling checkVadfCustomerAccount with: { email: 'jean.dupont@example.com' }
✅ [CHAT] Account check completed
✅ [CHAT] Account check result: {
"status": "not_found",
"message": "Compte introuvable. Redirection vers la page d'inscription.",
"redirectToSignup": true
}
⚪ [CHAT] Account status is neither active nor inactive: not_found
```

**Signification :**
- Email trouvé dans le message
- Vérification de compte effectuée via API Shopify
- Résultat : compte introuvable
- Un message spécifique sera retourné

---

### 4. Enrichissement du contexte (chat.jsx:275-287)

#### Cas A : Sans vérification de compte

```
📝 [CHAT] Using base context (no account check result to enrich)
```

#### Cas B : Avec vérification de compte

```
🔄 [CHAT] Enriching context with account check result
📝 [CHAT] Enriched context: {
"isFirstMessage": false,
"email": "jean.dupont@example.com",
"statut_pro": "not_found"
}
```

---

### 5. Génération de la réponse VADF (chat.jsx:289-312)

```
🎯 [CHAT] Calling vadfManager.getResponse with: {
"intent": "activation_compte",
"context": {}
}
📤 [CHAT] Generated VADF response:
- Type: activation_compte
- Text preview: Merci d'écrire à support@vadf.fr en indiquant le nom de votre entreprise...
- Full text length: 183
```

**Signification :**
- Le gestionnaire VADF sélectionne la meilleure réponse selon le contexte
- Réponse par défaut (première sans conditions) est sélectionnée

---

### 6. Vérification de l'override (chat.jsx:301-312)

#### Cas A : Pas d'override (message sans email)

```
🔍 [CHAT] Checking if account message should override VADF response
- accountCheckResult exists: false
- accountCheckResult.message exists: false
✅ [CHAT] NO OVERRIDE: Using VADF response as-is
```

**Signification :**
- Pas de résultat de vérification de compte
- **La réponse VADF est utilisée telle quelle**

#### Cas B : Override (message avec email)

```
🔍 [CHAT] Checking if account message should override VADF response
- accountCheckResult exists: true
- accountCheckResult.message exists: true
⚠️ [CHAT] OVERRIDE: Using account check message instead of VADF response
- Original VADF text: Merci d'écrire à support@vadf.fr...
- Override text: Compte introuvable. Redirection vers la page d'inscription.
```

**Signification :**
- Un résultat de vérification de compte existe avec un message
- **Le message du compte remplace la réponse VADF**

---

### 7. Envoi de la réponse finale (chat.jsx:320-333)

```
════════════════════════════════════════════════════════
📡 [CHAT] SENDING FINAL RESPONSE TO CLIENT
- Event type: vadf_response
- Intent: activation_compte
- Response type: activation_compte
- Response text: Merci d'écrire à support@vadf.fr en indiquant le nom de votre entreprise...
════════════════════════════════════════════════════════
```

**Signification :**
- Envoi de l'événement SSE `vadf_response` au frontend
- Le client reçoit la réponse finale

---

## Scénarios de test

### Scénario 1 : "Activer votre compte professionnel" (sans email)

**Logs attendus :**
1. ✅ VADF mode activé
2. ✅ Intention détectée : `activation_compte`
3. ⚠️ Aucun email trouvé
4. ⚠️ Vérification de compte skippée
5. ✅ Réponse VADF par défaut sélectionnée
6. ✅ Pas d'override
7. 📡 Envoi : "Merci d'écrire à support@vadf.fr..."

**Réponse attendue :**
```
Merci d'écrire à support@vadf.fr en indiquant le nom de votre entreprise,
ainsi que l'adresse e-mail ou le numéro de téléphone associé à votre compte.
Cela nous permettra de vérifier si votre compte est bien enregistré en tant
que client professionnel sur notre site.
```

---

### Scénario 2 : "Je veux activer mon compte avec jean.dupont@example.com"

**Logs attendus :**
1. ✅ VADF mode activé
2. ✅ Intention détectée : `activation_compte`
3. ✅ Email trouvé : `jean.dupont@example.com`
4. ✅ Vérification de compte effectuée
5. ✅ Résultat : `not_found`
6. ✅ Réponse VADF générée
7. ⚠️ Override avec message du compte
8. 📡 Envoi : "Compte introuvable. Redirection vers la page d'inscription."

**Réponse attendue :**
```
Compte introuvable. Redirection vers la page d'inscription.
```

---

## Comment utiliser ces logs pour déboguer

### 1. Vérifier que l'intention est bien détectée

Cherchez :
```
✅ [VADF INTENT] Specific intent matched!
- Intent: "activation_compte"
```

Si vous voyez `⚠️ [VADF INTENT] No intent detected anywhere`, vérifiez que le message contient un des keywords de `activation_compte`.

---

### 2. Vérifier l'extraction d'email

Cherchez :
```
📧 [CHAT] Email extraction attempt - Match found: true/false
📧 [CHAT] Extracted email: xxx@xxx.com / none
```

Si l'email n'est pas extrait alors qu'il est présent, vérifiez le regex : `/[\w.-]+@[\w.-]+\.[A-Za-z]{2,}/`

---

### 3. Vérifier si la vérification de compte est effectuée

Cherchez :
```
✅ [CHAT] Email found, calling checkVadfCustomerAccount with: { email: '...' }
```
OU
```
⚠️ [CHAT] No email found in message, skipping account check
```

---

### 4. Vérifier la réponse sélectionnée

Cherchez :
```
📤 [CHAT] Generated VADF response:
- Type: activation_compte
- Text preview: ...
```

---

### 5. Vérifier si l'override est appliqué

Cherchez :
```
✅ [CHAT] NO OVERRIDE: Using VADF response as-is
```
OU
```
⚠️ [CHAT] OVERRIDE: Using account check message instead of VADF response
```

---

## Résumé des modifications apportées

1. **chat.jsx (lignes 217-237)** : Logs d'activation VADF et détection d'intention
2. **chat.jsx (lignes 242-271)** : Logs de vérification de compte avec email extraction
3. **chat.jsx (lignes 275-287)** : Logs d'enrichissement du contexte
4. **chat.jsx (lignes 289-312)** : Logs de génération de réponse et vérification d'override
5. **chat.jsx (lignes 320-333)** : Logs d'envoi de la réponse finale
6. **vadf-response-manager.js (lignes 36-121)** : Logs détaillés de détection d'intention

---

## Fichiers modifiés

- ✅ `/app/routes/chat.jsx` : Logique principale avec logs complets
- ✅ `/app/services/vadf-response-manager.js` : Détection d'intention avec logs
- ✅ `/test-activation-intent.js` : Script de test autonome
- ✅ `/LOGS-ACTIVATION-COMPTE.md` : Ce document

---

## Commandes utiles

### Tester localement
```bash
node test-activation-intent.js
```

### Visualiser les logs en temps réel
```bash
npm run dev | grep "VADF\|CHAT"
```

### Filtrer uniquement les logs d'activation
```bash
npm run dev | grep "activation_compte"
```

### Filtrer uniquement les logs d'email
```bash
npm run dev | grep "📧"
```
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ A Shopify template app that lets you embed an AI-powered chat widget on your sto
- Natural-language product discovery
- Store policy & FAQ lookup
- Create carts, add or remove items, and initiate checkout
- Track orders and initiate returns
- Track orders.

## Developer Docs
- Everything from installation to deep dives lives on https://shopify.dev/docs/apps/build/storefront-mcp.
Expand Down
Loading