feat(search): recherche semantique - embeddings vectoriels + hybride RRF (#70)
This commit is contained in:
@@ -14,6 +14,22 @@ et [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
### Ajouté
|
||||
|
||||
- **#70 Recherche sémantique — Embeddings vectoriels** — la recherche comprend désormais le
|
||||
**sens** de la requête en plus des mots-clés. **Embeddings** : chaque document est découpé en
|
||||
chunks de 512 mots (recouvrement 64) puis vectorisé (384 dim) via `all-MiniLM-L6-v2`
|
||||
(`sentence-transformers`), un endpoint `/embeddings` compatible OpenAI, ou un provider de repli
|
||||
**sans dépendance** (hachage déterministe). **Stockage vectoriel** : `numpy`/`faiss`
|
||||
(`IndexFlatIP`) si disponibles, sinon cosinus pur Python. **Recherche hybride** : fusion du
|
||||
classement TF-IDF et du classement sémantique par **RRF** (Reciprocal Rank Fusion), avec
|
||||
`semantic_score` par résultat. **Indexation incrémentale** branchée sur le watcher (un fichier
|
||||
modifié régénère son embedding). **UI** : toggle « Recherche sémantique » (`~`, raccourci
|
||||
`Alt+S`) dans la barre de résultats + affichage du score de similarité, clés i18n FR/EN.
|
||||
Nouveau module `backend/semantic_search.py`, paramètre `semantic` sur
|
||||
`/api/search/advanced`, dépendances **optionnelles** dans
|
||||
`backend/requirements-semantic.txt`. Tests : `tests/test_semantic_search.py` (27) +
|
||||
`tests/frontend/semantic-search.test.mjs` (4). Détail :
|
||||
[docs/features/semantic-search.md](./docs/features/semantic-search.md).
|
||||
|
||||
- **#69 Éditeur mobile natif — Interface tactile optimisée** — refonte de l'expérience
|
||||
d'édition sur téléphone/tablette. **Barre d'outils flottante** dans l'éditeur (gras, italique,
|
||||
code, liste à puces, lien) opérant directement sur la sélection CodeMirror (ou le textarea de
|
||||
|
||||
Reference in New Issue
Block a user