Commit graph

5 commits

Author SHA1 Message Date
0582822a78 feat(api): ajoute le pendant node-nlp du benchmark tech-step
Nouveau script apps/api/src/scripts/bench-tech-step-classifier.ts, calqué
sur experiments/llm-tech-step-poc/src/llm-tech-step-poc.ts : mêmes 7
phrases de TEST_SENTENCES (recopiées à l'identique), même structure de
sortie (logs itératifs par répétition, tableau récapitulatif
latence/RSS/nombre de détections), pour que les deux pipelines soient
directement comparables phrase par phrase.

Réutilise techStepClassifier.warmUp() (déjà prévu pour absorber le coût de
l'entraînement + l'init paresseuse de node-nlp) et résout les techStepId en
key lisible pour l'affichage détaillé. Nécessite une base Postgres avec
TechStep seedée (matchTechStepSpans résout ses uid vers de vrais ids).

README du PoC LLM mis à jour : la section "Méthodologie de comparaison"
pointe vers ce script réel plutôt que le snippet REPL manuel qu'elle
suggérait avant.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-21 19:47:15 +02:00
6574d8e4a8 fix(experiments): ajoute un warm-up et des logs itératifs au benchmark LLM
- LocalLlmStepAnalyzer.warmUp() : force le coût caché du tout premier appel
  d'inférence (spin-up threads llama.cpp, cache KV, tokenizer) avant le
  benchmark, plutôt que de laisser la première phrase l'absorber — constaté
  sur des runs réels (Qwen/Llama) où fr-multi-action montait jusqu'à ~28s
  contre ~5s pour ses autres répétitions.
- initialize() et runBenchmark() journalisent maintenant chaque sous-étape
  (résolution du modèle, chargement des poids, contexte, grammaire, puis
  chaque répétition avec son résultat immédiat) au lieu de rester muets
  plusieurs minutes avant le récapitulatif final.
- RECOMMENDED_MODELS / README corrigés suite aux runs réels de l'utilisateur :
  Qwen2.5-1.5B s'est montré systématiquement plus rapide que Llama-3.2-1B
  sur les deux machines testées, contredisant l'hypothèse a priori du README
  ("moins de paramètres = plus rapide") — gardé comme résultat empirique
  plutôt que corrigé silencieusement.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-21 19:32:37 +02:00
f0ffd9644e docs(experiments): documente le --ignore-workspace nécessaire à l'install
pnpm install seul, lancé depuis experiments/llm-tech-step-poc, remonte au
monorepo (pnpm-workspace.yaml) et n'installe rien pour ce dossier hors
workspace — sans erreur visible. --ignore-workspace force pnpm à traiter
le dossier comme un package standalone.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-21 19:10:44 +02:00
0c1743c614 feat(experiments): ajoute 4 phrases de test hyper complexes au PoC LLM
Complète les 3 phrases initiales de TEST_SENTENCES avec 4 cas cherchant
volontairement le point de rupture (au lieu de juste confirmer le cas
courant) : actions simultanées plutôt que séquentielles ("pendant que..."),
action conditionnelle noyée dans des actions fermes, négation explicite
d'action ("sans jamais laisser bouillir"), fin de cuisson par état/test de
résultat plutôt que par durée, et un champ température qui désigne un seuil
de cuisson à cœur plutôt qu'un réglage de feu. README mis à jour (7 phrases,
4 FR + 3 EN).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-21 19:04:00 +02:00
4c3e00a08a feat(experiments): ajoute un PoC de détection d'actions culinaires par mini LLM local
Fichier TypeScript autonome (hors du workspace pnpm) qui compare le
pipeline node-nlp existant (tech-step-matcher.ts) à un mini LLM instruct
local via node-llama-cpp : sortie JSON strictement contrainte par schéma
(grammaire GBNF, createGrammarForJsonSchema), interfaces RecipeStepAnalysis/
KitchenAction, recommandation de modèle (Qwen2.5-1.5B-Instruct Q4_K_M par
défaut, Llama-3.2-1B-Instruct Q4_K_M en alternative), et un benchmark simple
(performance.now() + delta RSS) sur 3 phrases complexes FR/EN, dont le cas
piège sans verbe littéral déjà documenté dans tech-step-matcher.ts.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-21 18:58:28 +02:00