feat(rag): embedder dédié nomic-embed-text (768) au lieu de qwen3-8b

funk-docs utilisait le modèle de CHAT qwen3-8b (:1234, 4096 dim) comme
embedder → similarités quasi indiscernables (tous les scores ~0.96, ranking
médiocre). Bascule sur l'instance dédiée nomic-embed-text (:1238, 768 dim) —
la même que la mémoire STT — déjà identifiée comme roadmap dans le README.

rag-ingest ET rag-query alignés (même modèle/dim). Seuil rag-query abaissé
0.60→0.40 (nomic étale les scores plus bas). Collection recréée en 768.

Mesure : scores désormais étalés 0.61-0.74, et les bons docs ressortent en
tête (dnsmasq→dnsmasq.md, nftables→phase gateway, wedge→llama_server.md).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
alkatrazz 2026-06-19 21:29:38 +02:00
parent 2f8ffdbbd1
commit 0d4dfcc3f5
3 changed files with 21 additions and 11 deletions

View file

@ -15,10 +15,14 @@ Déploie la chaîne RAG sur storage-01 : scripts d'ingestion/requête + copie de
|---|---|
| `rag_docs_dir` | `/srv/data/rag/docs` |
| `qdrant_url` | `http://127.0.0.1:6333` |
| `embed_url` | `http://192.168.10.20:1234/v1/embeddings` (llama-server GPU) |
| `embed_model` | `qwen3-8b` |
| `embed_url` | `http://192.168.10.20:1238/v1/embeddings` (instance **llama-embed** dédiée) |
| `embed_model` / dim | `nomic-embed-text` / 768 |
| `rag_collection` | `funk-docs` |
> Ces valeurs sont les défauts codés dans `rag-ingest`/`rag-query` (surchargeables par env :
> `EMBED_URL`, `EMBED_MODEL`, `RAG_VECTOR_DIM`, `RAG_MIN_SCORE`, `RAG_EXCLUDE`). **`rag-ingest`
> et `rag-query` doivent utiliser le même modèle/dim**, sinon la recherche renvoie n'importe quoi.
## Workflow après modification de `admin/`
```bash
@ -30,6 +34,6 @@ ssh storage-01 /usr/local/bin/rag-ingest # ré-in
## Caveats
- **Dépendances fortes** : Qdrant up (`:6333`) et llama-server GPU up (`:1234`) — sinon connection refused
- `rag-ingest` parcourt **tout** `/srv/data/rag/docs` y compris `hermes/builtin/` (rapports du bot) — pollution potentielle des résultats, exclusion à prévoir
- Les embeddings viennent du modèle de génération (Qwen3-8B) — un modèle d'embedding dédié (nomic-embed, bge-m3) est dans la roadmap
- **Dépendances fortes** : Qdrant up (`:6333`) et l'instance **llama-embed** up (`:1238`, `nomic-embed-text`) — sinon connection refused
- `rag-ingest` **exclut** `hermes/builtin/` (rapports auto-générés par hermes-auto-improve) via `RAG_EXCLUDE` — ils noyaient sinon la vraie doc (~84% des points)
- **Changement de modèle d'embedding** = changement de dimension → il faut **supprimer puis recréer** la collection (`curl -X DELETE …/collections/funk-docs` avant `rag-ingest`), sinon Qdrant refuse un vecteur de dim différente