@ssmeo/mcp-local-rag 0.18.13 → 0.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.de.md +248 -215
- package/README.es.md +241 -215
- package/README.fr.md +249 -215
- package/README.md +207 -297
- package/README.pt-BR.md +236 -215
- package/README.zh-CN.md +133 -206
- package/dist/chunker/semantic-chunker.d.ts +23 -5
- package/dist/chunker/semantic-chunker.d.ts.map +1 -1
- package/dist/chunker/semantic-chunker.js +13 -5
- package/dist/chunker/semantic-chunker.js.map +1 -1
- package/dist/cli/common.d.ts +7 -0
- package/dist/cli/common.d.ts.map +1 -1
- package/dist/cli/common.js +26 -2
- package/dist/cli/common.js.map +1 -1
- package/dist/cli/delete.d.ts.map +1 -1
- package/dist/cli/delete.js +2 -0
- package/dist/cli/delete.js.map +1 -1
- package/dist/cli/download-model.d.ts +3 -0
- package/dist/cli/download-model.d.ts.map +1 -0
- package/dist/cli/download-model.js +21 -0
- package/dist/cli/download-model.js.map +1 -0
- package/dist/cli/file-collection.d.ts +2 -1
- package/dist/cli/file-collection.d.ts.map +1 -1
- package/dist/cli/file-collection.js +2 -2
- package/dist/cli/file-collection.js.map +1 -1
- package/dist/cli/ingest.d.ts +1 -0
- package/dist/cli/ingest.d.ts.map +1 -1
- package/dist/cli/ingest.js +45 -25
- package/dist/cli/ingest.js.map +1 -1
- package/dist/cli/list.d.ts.map +1 -1
- package/dist/cli/list.js +9 -13
- package/dist/cli/list.js.map +1 -1
- package/dist/cli/options.d.ts +8 -0
- package/dist/cli/options.d.ts.map +1 -1
- package/dist/cli/options.js +21 -0
- package/dist/cli/options.js.map +1 -1
- package/dist/cli/query.d.ts.map +1 -1
- package/dist/cli/query.js +2 -1
- package/dist/cli/query.js.map +1 -1
- package/dist/cli/read-neighbors.d.ts.map +1 -1
- package/dist/cli/read-neighbors.js +1 -0
- package/dist/cli/read-neighbors.js.map +1 -1
- package/dist/cli/relocate.d.ts +3 -0
- package/dist/cli/relocate.d.ts.map +1 -0
- package/dist/cli/relocate.js +135 -0
- package/dist/cli/relocate.js.map +1 -0
- package/dist/cli/sync.d.ts.map +1 -1
- package/dist/cli/sync.js +17 -8
- package/dist/cli/sync.js.map +1 -1
- package/dist/cli-main.d.ts +1 -1
- package/dist/cli-main.d.ts.map +1 -1
- package/dist/cli-main.js +5 -0
- package/dist/cli-main.js.map +1 -1
- package/dist/embedder/embedding-snapshot.d.ts +52 -0
- package/dist/embedder/embedding-snapshot.d.ts.map +1 -0
- package/dist/embedder/embedding-snapshot.js +413 -0
- package/dist/embedder/embedding-snapshot.js.map +1 -0
- package/dist/embedder/index.d.ts +36 -5
- package/dist/embedder/index.d.ts.map +1 -1
- package/dist/embedder/index.js +351 -24
- package/dist/embedder/index.js.map +1 -1
- package/dist/embedder/remote.d.ts +42 -4
- package/dist/embedder/remote.d.ts.map +1 -1
- package/dist/embedder/remote.js +113 -5
- package/dist/embedder/remote.js.map +1 -1
- package/dist/embedder/sentence-transformers-config.d.ts +24 -0
- package/dist/embedder/sentence-transformers-config.d.ts.map +1 -0
- package/dist/embedder/sentence-transformers-config.js +93 -0
- package/dist/embedder/sentence-transformers-config.js.map +1 -0
- package/dist/features/sync.js +1 -1
- package/dist/features/sync.js.map +1 -1
- package/dist/ingest/compute.d.ts +15 -7
- package/dist/ingest/compute.d.ts.map +1 -1
- package/dist/ingest/compute.js +74 -14
- package/dist/ingest/compute.js.map +1 -1
- package/dist/ingest/file.d.ts +3 -3
- package/dist/ingest/file.d.ts.map +1 -1
- package/dist/ingest/file.js +0 -5
- package/dist/ingest/file.js.map +1 -1
- package/dist/ingest/visual.d.ts +6 -2
- package/dist/ingest/visual.d.ts.map +1 -1
- package/dist/ingest/visual.js +20 -4
- package/dist/ingest/visual.js.map +1 -1
- package/dist/parser/docx-parser.d.ts +2 -0
- package/dist/parser/docx-parser.d.ts.map +1 -1
- package/dist/parser/docx-parser.js +12 -3
- package/dist/parser/docx-parser.js.map +1 -1
- package/dist/parser/index.d.ts +11 -1
- package/dist/parser/index.d.ts.map +1 -1
- package/dist/parser/index.js +27 -11
- package/dist/parser/index.js.map +1 -1
- package/dist/parser/pdf-extract.d.ts +2 -0
- package/dist/parser/pdf-extract.d.ts.map +1 -1
- package/dist/parser/pdf-extract.js +3 -0
- package/dist/parser/pdf-extract.js.map +1 -1
- package/dist/parser/pdf-filter.d.ts +2 -9
- package/dist/parser/pdf-filter.d.ts.map +1 -1
- package/dist/parser/pdf-filter.js +110 -144
- package/dist/parser/pdf-filter.js.map +1 -1
- package/dist/parser/pdf-headings.d.ts +6 -0
- package/dist/parser/pdf-headings.d.ts.map +1 -0
- package/dist/parser/pdf-headings.js +166 -0
- package/dist/parser/pdf-headings.js.map +1 -0
- package/dist/parser/text-source-map.d.ts +3 -0
- package/dist/parser/text-source-map.d.ts.map +1 -0
- package/dist/parser/text-source-map.js +33 -0
- package/dist/parser/text-source-map.js.map +1 -0
- package/dist/pdf-visual/captioner.d.ts.map +1 -1
- package/dist/pdf-visual/captioner.js +7 -4
- package/dist/pdf-visual/captioner.js.map +1 -1
- package/dist/pdf-visual/detector.js +3 -3
- package/dist/pdf-visual/detector.js.map +1 -1
- package/dist/rerank/command.d.ts +10 -7
- package/dist/rerank/command.d.ts.map +1 -1
- package/dist/rerank/command.js +51 -10
- package/dist/rerank/command.js.map +1 -1
- package/dist/rerank/index.d.ts +3 -3
- package/dist/rerank/index.d.ts.map +1 -1
- package/dist/rerank/index.js +3 -3
- package/dist/rerank/index.js.map +1 -1
- package/dist/server/index.d.ts +8 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +129 -81
- package/dist/server/index.js.map +1 -1
- package/dist/server/list-scanner.d.ts +2 -1
- package/dist/server/list-scanner.d.ts.map +1 -1
- package/dist/server/list-scanner.js +2 -2
- package/dist/server/list-scanner.js.map +1 -1
- package/dist/server/tool-definitions.js +2 -2
- package/dist/server/tool-definitions.js.map +1 -1
- package/dist/server/types.d.ts +9 -0
- package/dist/server/types.d.ts.map +1 -1
- package/dist/server-main.d.ts +2 -2
- package/dist/server-main.d.ts.map +1 -1
- package/dist/server-main.js +22 -20
- package/dist/server-main.js.map +1 -1
- package/dist/utils/base-dirs.d.ts +9 -10
- package/dist/utils/base-dirs.d.ts.map +1 -1
- package/dist/utils/base-dirs.js +28 -30
- package/dist/utils/base-dirs.js.map +1 -1
- package/dist/utils/scan.d.ts +25 -5
- package/dist/utils/scan.d.ts.map +1 -1
- package/dist/utils/scan.js +40 -10
- package/dist/utils/scan.js.map +1 -1
- package/dist/utils/source-context.d.ts +29 -0
- package/dist/utils/source-context.d.ts.map +1 -0
- package/dist/utils/source-context.js +86 -0
- package/dist/utils/source-context.js.map +1 -0
- package/dist/utils/sync-path-key.d.ts +1 -1
- package/dist/utils/sync-path-key.d.ts.map +1 -1
- package/dist/utils/sync-path-key.js +1 -1
- package/dist/utils/sync-path-key.js.map +1 -1
- package/dist/vectordb/index.d.ts +4 -2
- package/dist/vectordb/index.d.ts.map +1 -1
- package/dist/vectordb/index.js +33 -8
- package/dist/vectordb/index.js.map +1 -1
- package/dist/vectordb/relocate.d.ts +18 -0
- package/dist/vectordb/relocate.d.ts.map +1 -0
- package/dist/vectordb/relocate.js +179 -0
- package/dist/vectordb/relocate.js.map +1 -0
- package/dist/vectordb/types.d.ts +10 -23
- package/dist/vectordb/types.d.ts.map +1 -1
- package/dist/vectordb/types.js +14 -23
- package/dist/vectordb/types.js.map +1 -1
- package/package.json +14 -14
package/README.fr.md
CHANGED
|
@@ -4,10 +4,14 @@
|
|
|
4
4
|
|
|
5
5
|
# MCP Local RAG
|
|
6
6
|
|
|
7
|
-
[](https://github.com/shinpr/mcp-local-rag)
|
|
9
|
+
[](https://www.npmjs.com/package/mcp-local-rag)
|
|
11
|
+
[](https://opensource.org/licenses/MIT)
|
|
13
|
+
[](https://registry.modelcontextprotocol.io/)
|
|
11
15
|
|
|
12
16
|
<p align="center">
|
|
13
17
|
<a href="README.md">English</a> |
|
|
@@ -18,41 +22,54 @@
|
|
|
18
22
|
<strong>Français</strong>
|
|
19
23
|
</p>
|
|
20
24
|
|
|
21
|
-
Recherchez dans des documents confidentiels depuis un client MCP ou un terminal, sans les
|
|
25
|
+
Recherchez dans des documents confidentiels depuis un client MCP ou un terminal, sans les
|
|
26
|
+
envoyer à une API d'embeddings.
|
|
22
27
|
|
|
23
|
-
mcp-local-rag indexe les fichiers PDF, DOCX et Markdown ainsi que les fichiers texte sur votre
|
|
28
|
+
mcp-local-rag indexe les fichiers PDF, DOCX et Markdown ainsi que les fichiers texte sur votre
|
|
29
|
+
machine. La recherche associe similarité sémantique et correspondance par mots-clés. Elle tient
|
|
30
|
+
ainsi compte du sens de la requête comme des termes techniques exacts, tels que les noms d'API,
|
|
31
|
+
de classes et les codes d'erreur. Les résultats contiennent des passages du document et,
|
|
32
|
+
lorsqu'ils sont disponibles, des titres de section et des numéros de ligne ou de page pour
|
|
33
|
+
consulter et citer l'original.
|
|
24
34
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
- **Recherche hybride :** La recherche sémantique trouve les concepts voisins, tandis que la correspondance par mots-clés améliore le classement des termes techniques exacts.
|
|
29
|
-
- **Embeddings configurables :** Choisissez un modèle d'embeddings Hugging Face adapté à la langue et au domaine de vos documents.
|
|
30
|
-
- **Découpage sémantique :** Les documents sont découpés aux changements de sujet plutôt qu'après un nombre fixe de caractères. Les blocs de code Markdown restent intacts.
|
|
31
|
-
- **MCP et CLI :** Utilisez le même index depuis un outil de programmation assisté par IA ou directement dans le terminal.
|
|
32
|
-
|
|
33
|
-
Aucune clé d'API, aucun conteneur Docker, aucune installation de Python ni aucune base de données externe ne sont nécessaires.
|
|
35
|
+
Aucune clé d'API, aucun conteneur Docker, aucune installation de Python ni aucune base de
|
|
36
|
+
données externe n'est nécessaire. Après le premier téléchargement du modèle, l'import de texte
|
|
37
|
+
et la recherche fonctionnent hors ligne.
|
|
34
38
|
|
|
35
39
|
## Démarrage rapide
|
|
36
40
|
|
|
37
41
|
### Prérequis
|
|
38
42
|
|
|
39
|
-
- Node.js 22 ou version ultérieure
|
|
43
|
+
- Node.js 22.20 ou version ultérieure
|
|
40
44
|
- Une connexion Internet lors de la première utilisation pour télécharger le paquet npm et le modèle d'embeddings
|
|
41
45
|
- Un répertoire contenant les documents à rechercher
|
|
42
46
|
|
|
43
|
-
Définissez `BASE_DIR` sur ce répertoire. Il sert également de limite de sécurité pour les
|
|
47
|
+
Définissez `BASE_DIR` sur ce répertoire. Il sert également de limite de sécurité pour les
|
|
48
|
+
opérations sur les fichiers. Remplacez `/absolute/path/to/your/documents` dans les exemples par
|
|
49
|
+
le chemin absolu du répertoire.
|
|
44
50
|
|
|
45
|
-
|
|
51
|
+
Utilisez l'un des exemples ci-dessous, ou enregistrez `npx -y mcp-local-rag` et définissez
|
|
52
|
+
`BASE_DIR` selon le format de configuration MCP de votre client.
|
|
46
53
|
|
|
47
|
-
|
|
54
|
+
Définissez aussi `DB_PATH` et `CACHE_DIR` avec des chemins absolus. Les chemins relatifs
|
|
55
|
+
partent du répertoire de travail du serveur : le démarrer depuis différents projets crée un
|
|
56
|
+
index et un cache de modèles dans chacun.
|
|
48
57
|
|
|
49
|
-
|
|
58
|
+
<details>
|
|
59
|
+
<summary>Claude Code</summary>
|
|
60
|
+
|
|
61
|
+
Exécutez cette commande :
|
|
50
62
|
|
|
51
63
|
```bash
|
|
52
64
|
claude mcp add local-rag --scope user --env BASE_DIR=/absolute/path/to/your/documents -- npx -y mcp-local-rag
|
|
53
65
|
```
|
|
54
66
|
|
|
55
|
-
|
|
67
|
+
</details>
|
|
68
|
+
|
|
69
|
+
<details>
|
|
70
|
+
<summary>Codex</summary>
|
|
71
|
+
|
|
72
|
+
Ajoutez ceci à `~/.codex/config.toml` :
|
|
56
73
|
|
|
57
74
|
```toml
|
|
58
75
|
[mcp_servers.local-rag]
|
|
@@ -63,7 +80,12 @@ args = ["-y", "mcp-local-rag"]
|
|
|
63
80
|
BASE_DIR = "/absolute/path/to/your/documents"
|
|
64
81
|
```
|
|
65
82
|
|
|
66
|
-
|
|
83
|
+
</details>
|
|
84
|
+
|
|
85
|
+
<details>
|
|
86
|
+
<summary>OpenCode</summary>
|
|
87
|
+
|
|
88
|
+
Ajoutez ceci à `~/.config/opencode/opencode.json` (ou `opencode.jsonc`) :
|
|
67
89
|
|
|
68
90
|
```json
|
|
69
91
|
{
|
|
@@ -80,7 +102,12 @@ BASE_DIR = "/absolute/path/to/your/documents"
|
|
|
80
102
|
}
|
|
81
103
|
```
|
|
82
104
|
|
|
83
|
-
|
|
105
|
+
</details>
|
|
106
|
+
|
|
107
|
+
<details>
|
|
108
|
+
<summary>Cursor</summary>
|
|
109
|
+
|
|
110
|
+
Ajoutez ceci à `~/.cursor/mcp.json` :
|
|
84
111
|
|
|
85
112
|
```json
|
|
86
113
|
{
|
|
@@ -96,13 +123,17 @@ BASE_DIR = "/absolute/path/to/your/documents"
|
|
|
96
123
|
}
|
|
97
124
|
```
|
|
98
125
|
|
|
126
|
+
</details>
|
|
127
|
+
|
|
99
128
|
Redémarrez le client, puis demandez-lui de construire l'index :
|
|
100
129
|
|
|
101
130
|
```text
|
|
102
131
|
Synchronise tous les documents du répertoire racine configuré et attends la fin de l'opération.
|
|
103
132
|
```
|
|
104
133
|
|
|
105
|
-
La première synchronisation télécharge le modèle d'embeddings par défaut (environ 90 Mo). Une à
|
|
134
|
+
La première synchronisation télécharge le modèle d'embeddings par défaut (environ 90 Mo). Une à
|
|
135
|
+
deux minutes peuvent s'écouler avant le début de l'import. Les exécutions suivantes utilisent
|
|
136
|
+
le cache local.
|
|
106
137
|
|
|
107
138
|
Une fois la synchronisation terminée, posez une question :
|
|
108
139
|
|
|
@@ -119,27 +150,45 @@ npx mcp-local-rag ingest ./docs/
|
|
|
119
150
|
npx mcp-local-rag query "API d'authentification"
|
|
120
151
|
```
|
|
121
152
|
|
|
122
|
-
Par défaut, la CLI utilise le répertoire courant comme racine documentaire. Exécutez les deux
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
Certains documents ne peuvent pas être envoyés à un service d'embeddings hébergé pour des raisons de confidentialité ou de politique interne. Un index local permet de les rechercher sans ajouter de coût d'API à chaque requête.
|
|
127
|
-
|
|
128
|
-
Une recherche uniquement sémantique peut ignorer des identifiants exacts qui comptent dans la documentation technique. Le reclassement par mots-clés garde ces termes visibles sans renoncer aux requêtes en langage naturel.
|
|
153
|
+
Par défaut, la CLI utilise le répertoire courant comme racine documentaire. Exécutez les deux
|
|
154
|
+
commandes depuis le même répertoire pour qu'elles partagent l'index par défaut, ou définissez
|
|
155
|
+
explicitement `BASE_DIR` et `DB_PATH`.
|
|
129
156
|
|
|
130
157
|
## Contenu pris en charge
|
|
131
158
|
|
|
132
159
|
| Entrée | Mode d'import |
|
|
133
160
|
|---|---|
|
|
134
161
|
| PDF, DOCX, TXT, Markdown | Import d'un fichier ou synchronisation d'un répertoire |
|
|
135
|
-
| HTML déjà récupéré par le client | `ingest_data`
|
|
162
|
+
| HTML déjà récupéré par le client | `ingest_data` |
|
|
136
163
|
| Texte brut ou Markdown en mémoire | `ingest_data` avec un identifiant de source stable |
|
|
137
164
|
|
|
138
|
-
Le serveur ne récupère pas lui-même les pages HTML. Un client MCP peut charger une page et
|
|
165
|
+
Le serveur ne récupère pas lui-même les pages HTML. Un client MCP peut charger une page et
|
|
166
|
+
transmettre son HTML à `ingest_data`.
|
|
167
|
+
|
|
168
|
+
L'import de fichiers ne prend pas en charge Excel, PowerPoint, les images seules ni les
|
|
169
|
+
extensions de code source. Les PDF peuvent éventuellement utiliser un modèle visuel local pour
|
|
170
|
+
décrire les figures, mais cette fonction n'est ni un OCR ni un moteur de recherche d'images.
|
|
171
|
+
|
|
172
|
+
## Utiliser l'index
|
|
173
|
+
|
|
174
|
+
Synchronisez l'index après avoir ajouté, modifié ou supprimé des documents. Pour rechercher
|
|
175
|
+
puis lire le contexte d'un résultat, vous pouvez demander au client MCP :
|
|
139
176
|
|
|
140
|
-
|
|
177
|
+
```text
|
|
178
|
+
Cherche ce que dit la documentation sur ERR_CONNECTION_REFUSED.
|
|
179
|
+
Lis aussi les segments qui précèdent et suivent ce résultat.
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
Vous pouvez aussi importer un fichier seul ou du HTML déjà récupéré par le client. Pour mettre
|
|
183
|
+
à jour une entrée existante, réimportez le document avec le même chemin ou le même identifiant
|
|
184
|
+
de source. `sync` ignore les fichiers inchangés. Les chemins de fichiers MCP doivent être
|
|
185
|
+
absolus et rester dans une racine configurée.
|
|
141
186
|
|
|
142
|
-
|
|
187
|
+
Les titres de section détectés dans un PDF peuvent être incorrects. Si vous avez besoin du
|
|
188
|
+
titre exact, vérifiez-le sur la page d'origine.
|
|
189
|
+
|
|
190
|
+
<details>
|
|
191
|
+
<summary>Outils MCP</summary>
|
|
143
192
|
|
|
144
193
|
| Outil | Rôle |
|
|
145
194
|
|---|---|
|
|
@@ -153,131 +202,143 @@ L'import de fichiers ne prend pas en charge Excel, PowerPoint, les images seules
|
|
|
153
202
|
| `delete_file` | Supprimer un fichier indexé ou un élément `ingest_data` |
|
|
154
203
|
| `status` | Afficher l'état de l'index et de la recherche |
|
|
155
204
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
`sync_start` importe les fichiers nouveaux ou modifiés, ignore ceux qui sont identiques octet par octet et retire de l'index les fichiers qui n'existent plus :
|
|
159
|
-
|
|
160
|
-
```text
|
|
161
|
-
Synchronise tout le contenu des racines documentaires configurées et attends la fin de l'opération.
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
L'outil renvoie immédiatement un `jobId`. Le client doit interroger `sync_status` jusqu'à ce que son état passe à `succeeded` ou `failed`. Un PDF modifié conserve le profil visuel avec lequel il a été indexé ; un PDF sans profil enregistré reste en texte seul. `sync_start` ne peut pas changer le profil.
|
|
165
|
-
|
|
166
|
-
Le processus serveur ne conserve qu'une tâche de synchronisation. Une nouvelle tâche remplace l'enregistrement d'une tâche terminée, et le redémarrage du serveur efface cet enregistrement.
|
|
167
|
-
|
|
168
|
-
### Importer un fichier
|
|
169
|
-
|
|
170
|
-
`ingest_file` accepte les fichiers PDF, DOCX, TXT et Markdown. Les chemins transmis par MCP doivent être absolus et rester dans une racine documentaire configurée :
|
|
171
|
-
|
|
172
|
-
```text
|
|
173
|
-
Importe le document /Users/me/docs/api-spec.pdf.
|
|
174
|
-
```
|
|
175
|
-
|
|
176
|
-
Réimporter le même chemin remplace les segments existants.
|
|
177
|
-
|
|
178
|
-
### Rechercher et lire davantage de contexte
|
|
205
|
+
</details>
|
|
179
206
|
|
|
180
|
-
|
|
181
|
-
Que dit la documentation de l'API au sujet de l'authentification ?
|
|
182
|
-
Trouve le comportement documenté de ERR_CONNECTION_REFUSED.
|
|
183
|
-
```
|
|
207
|
+
## CLI
|
|
184
208
|
|
|
185
|
-
|
|
209
|
+
La CLI permet de mettre à jour l'index, de cibler la recherche ou de retirer du contenu indexé
|
|
210
|
+
:
|
|
186
211
|
|
|
187
|
-
```
|
|
188
|
-
|
|
212
|
+
```bash
|
|
213
|
+
npx mcp-local-rag sync ./docs/
|
|
214
|
+
npx mcp-local-rag query "authentification" --scope /docs/api --scope /docs/guide
|
|
215
|
+
npx mcp-local-rag read-neighbors --file-path /abs/path.md --chunk-index 5
|
|
216
|
+
npx mcp-local-rag list
|
|
217
|
+
npx mcp-local-rag status
|
|
218
|
+
npx mcp-local-rag delete ./docs/old.pdf
|
|
219
|
+
npx mcp-local-rag delete --source "https://example.com/docs"
|
|
189
220
|
```
|
|
190
221
|
|
|
191
|
-
`
|
|
192
|
-
|
|
193
|
-
|
|
222
|
+
`ingest` importe les fichiers sélectionnés ; `sync` retire aussi de l'index les fichiers
|
|
223
|
+
supprimés et ignore ceux qui n'ont pas changé. Utilisez `--scope` pour limiter les résultats à
|
|
224
|
+
un préfixe de chemin et répétez cette option pour inclure plusieurs préfixes.
|
|
194
225
|
|
|
195
|
-
|
|
226
|
+
Les options globales comme `--db-path`, `--cache-dir` et `--model-name` précèdent la
|
|
227
|
+
sous-commande. Les options propres à la sous-commande viennent ensuite :
|
|
196
228
|
|
|
197
|
-
```
|
|
198
|
-
|
|
229
|
+
```bash
|
|
230
|
+
npx mcp-local-rag --db-path ./my-db query "authentification"
|
|
199
231
|
```
|
|
200
232
|
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
Respectez les conditions du site source et les droits d'auteur lors de l'indexation de contenu externe.
|
|
204
|
-
|
|
205
|
-
### Figures dans les PDF
|
|
233
|
+
Exécutez `npx mcp-local-rag --help` pour afficher la référence complète des commandes.
|
|
206
234
|
|
|
207
|
-
|
|
235
|
+
`query` écrit ses résultats sur stdout au format JSON, la meilleure correspondance en premier,
|
|
236
|
+
ce qui permet de les rediriger vers un autre outil. La définition de chaque champ se trouve
|
|
237
|
+
dans [`docs/schema/query-output.schema.json`](docs/schema/query-output.schema.json).
|
|
208
238
|
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
239
|
+
Pour déplacer un projet tout en conservant son index, arrêtez le serveur MCP et les autres
|
|
240
|
+
processus d'écriture. Déplacez les fichiers et la base de données ensemble, sans modifier
|
|
241
|
+
l'arborescence, puis exécutez :
|
|
212
242
|
|
|
213
243
|
```bash
|
|
214
|
-
npx mcp-local-rag
|
|
244
|
+
npx mcp-local-rag --db-path /new/project/lancedb relocate --from /old/project --to /new/project
|
|
215
245
|
```
|
|
216
246
|
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
| `fast` (par défaut) | environ 250 Mo | Indexation visuelle légère |
|
|
220
|
-
| `quality` | environ 1,7 Go | Figures contenant des libellés, des annotations ou d'autres textes intégrés à l'image |
|
|
221
|
-
|
|
222
|
-
Sélectionnez le modèle le plus volumineux avec `visualQuality: "quality"` via MCP ou `--visual-quality quality` via la CLI. Lors des mesures sur CPU, l'inférence a pris environ trois fois plus de temps qu'avec `fast`, mais le résultat dépend du matériel et des mises à jour du modèle.
|
|
247
|
+
Mettez à jour `BASE_DIR`/`BASE_DIRS`, `DB_PATH` et les autres chemins concernés dans la
|
|
248
|
+
configuration MCP, puis redémarrez le client.
|
|
223
249
|
|
|
224
|
-
|
|
250
|
+
## Agent Skills
|
|
225
251
|
|
|
226
|
-
|
|
252
|
+
Les [Agent Skills](https://agentskills.io/) donnent aux assistants IA des consignes pour les
|
|
253
|
+
requêtes et les imports :
|
|
227
254
|
|
|
228
255
|
```bash
|
|
229
|
-
npx mcp-local-rag
|
|
256
|
+
npx mcp-local-rag skills install --claude-code
|
|
257
|
+
npx mcp-local-rag skills install --claude-code --global
|
|
258
|
+
npx mcp-local-rag skills install --codex
|
|
230
259
|
```
|
|
231
260
|
|
|
232
|
-
|
|
261
|
+
Les skills installées couvrent la formulation des requêtes, l'affinage des résultats et
|
|
262
|
+
l'import de HTML. Si une skill ne s'active pas automatiquement, demandez explicitement à
|
|
263
|
+
l'assistant d'utiliser la skill mcp-local-rag.
|
|
233
264
|
|
|
234
|
-
|
|
265
|
+
## Options avancées
|
|
235
266
|
|
|
236
|
-
|
|
267
|
+
Commencez avec les réglages par défaut. Consultez les sections suivantes pour utiliser
|
|
268
|
+
plusieurs racines documentaires, adapter la recherche à vos documents ou rendre les figures PDF
|
|
269
|
+
recherchables.
|
|
237
270
|
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
npx mcp-local-rag sync ./docs/ --visual # demander fast pour tous les PDF concernés
|
|
241
|
-
npx mcp-local-rag sync ./docs/ --visual --visual-quality quality
|
|
242
|
-
```
|
|
243
|
-
|
|
244
|
-
`--visual` remplace les profils enregistrés et décrit donc aussi les PDF indexés en texte. Un changement de profil réimporte le PDF même si le fichier n'a pas changé ; relancer la même commande ne fait rien et ne charge aucun modèle.
|
|
271
|
+
<details>
|
|
272
|
+
<summary>Stockage et racines documentaires</summary>
|
|
245
273
|
|
|
246
|
-
|
|
274
|
+
Le serveur MCP lit les variables d'environnement. La CLI accepte les variables et options
|
|
275
|
+
indiquées. Gardez le même `DB_PATH` si vos commandes doivent partager un index.
|
|
247
276
|
|
|
248
|
-
|
|
277
|
+
| Variable d'environnement | Option CLI | Valeur par défaut | Description |
|
|
278
|
+
|---------------------|----------|---------|-------------|
|
|
279
|
+
| `BASE_DIR` | `--base-dir` | Répertoire courant | Une racine documentaire ; l'option CLI peut être répétée avec `ingest`, `list` et `sync` |
|
|
280
|
+
| `BASE_DIRS` | Non disponible | non définie | Tableau JSON de racines documentaires ; prioritaire sur `BASE_DIR` |
|
|
281
|
+
| `IGNORE_PATHS` | Non disponible | non définie | Tableau JSON de motifs glob pour les fichiers à exclure de l'index |
|
|
282
|
+
| `DB_PATH` | `--db-path` | `./lancedb/` | Emplacement de la base de données vectorielle |
|
|
283
|
+
| `CACHE_DIR` | `--cache-dir` | `./models/` | Répertoire du cache des modèles |
|
|
284
|
+
| `HF_ENDPOINT` | Non disponible | `https://huggingface.co` | Adresse de téléchargement des modèles Hugging Face ; utilisez l'URL d'un miroir si les téléchargements directs sont bloqués |
|
|
285
|
+
| `MAX_FILE_SIZE` | `--max-file-size` | `104857600` (100 Mo) | Taille maximale d'un fichier en octets |
|
|
249
286
|
|
|
250
|
-
|
|
287
|
+
Les opérations sur les fichiers restent limitées aux racines configurées. Pour plusieurs
|
|
288
|
+
répertoires, définissez `BASE_DIRS='["/absolute/docs","/absolute/specs"]'` ou répétez l'option
|
|
289
|
+
CLI `--base-dir`. Priorité : racines CLI, `BASE_DIRS`, `BASE_DIR`, puis répertoire courant.
|
|
290
|
+
Seule la source ayant la priorité la plus élevée est retenue ; les racines des différentes
|
|
291
|
+
sources ne sont pas fusionnées. Un `BASE_DIRS` incorrect provoque une erreur. Les chemins
|
|
292
|
+
relatifs `DB_PATH` et `CACHE_DIR` partent du répertoire de travail.
|
|
293
|
+
|
|
294
|
+
Pour exclure des fichiers de l'index, définissez `IGNORE_PATHS` avec un tableau JSON de motifs
|
|
295
|
+
glob, par exemple `IGNORE_PATHS='["plugs/**","**/*.draft.md"]'`. Chaque motif est comparé au
|
|
296
|
+
chemin du fichier relatif à la racine qui le contient, écrit avec `/` sur tous les systèmes. `*`
|
|
297
|
+
et `**` ne correspondent pas aux noms qui commencent par `.` : écrivez ces répertoires en
|
|
298
|
+
entier, comme `".obsidian/**"`. Quand `ingest`, `list` et `sync` traitent un répertoire, ils
|
|
299
|
+
ignorent les fichiers correspondants, et `sync` retire de l'index ceux qui y figurent déjà. Un
|
|
300
|
+
`IGNORE_PATHS` incorrect provoque une erreur.
|
|
251
301
|
|
|
252
|
-
|
|
302
|
+
</details>
|
|
253
303
|
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
npx mcp-local-rag sync ./docs/
|
|
257
|
-
npx mcp-local-rag query "API d'authentification"
|
|
258
|
-
npx mcp-local-rag query "authentification" --scope /docs/api --scope /docs/guide
|
|
259
|
-
npx mcp-local-rag read-neighbors --file-path /abs/path.md --chunk-index 5
|
|
260
|
-
npx mcp-local-rag list
|
|
261
|
-
npx mcp-local-rag status
|
|
262
|
-
npx mcp-local-rag delete ./docs/old.pdf
|
|
263
|
-
npx mcp-local-rag delete --source "https://example.com/docs"
|
|
264
|
-
```
|
|
304
|
+
<details>
|
|
305
|
+
<summary>Modèles et réglage de la recherche</summary>
|
|
265
306
|
|
|
266
|
-
|
|
307
|
+
Choisissez un modèle d'embeddings adapté à la langue et au domaine de vos documents. Comparez
|
|
308
|
+
les réglages avec vos questions habituelles et vérifiez les passages renvoyés. Choisissez un
|
|
309
|
+
modèle compatible avec le mean pooling et la normalisation L2, utilisés ici pour calculer les
|
|
310
|
+
embeddings.
|
|
267
311
|
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
312
|
+
| Variable d'environnement | Option CLI | Valeur par défaut | Description |
|
|
313
|
+
|---------------------|----------|---------|-------------|
|
|
314
|
+
| `MODEL_NAME` | `--model-name` | `Xenova/all-MiniLM-L6-v2` | Modèle d'embeddings Hugging Face |
|
|
315
|
+
| `CHUNK_MIN_LENGTH` | `--chunk-min-length` | `50` | Longueur minimale d'un segment ordinaire en caractères (1–10000) ; un fragment issu d'un découpage destiné à respecter la limite de tokens du modèle peut être plus court |
|
|
316
|
+
| `EMBED_TITLE_PREFIX` | Non disponible | `false` | Ajoute le titre du document à l'entrée utilisée pour calculer l'embedding de chaque segment |
|
|
317
|
+
| `EMBED_HEADING_PREFIX` | Non disponible | `false` | Ajoute la hiérarchie des titres de section à l'entrée de chaque segment, si la limite de tokens le permet |
|
|
318
|
+
| `RAG_DEVICE` | Non disponible | `cpu` | Périphérique utilisé par ONNX Runtime |
|
|
319
|
+
| `RAG_DTYPE` | Non disponible | `fp32` | Type de données des embeddings transmis au modèle choisi |
|
|
271
320
|
|
|
272
|
-
|
|
321
|
+
Les deux options de préfixe sont désactivées par défaut (`false`) et indépendantes. Essayez
|
|
322
|
+
`EMBED_TITLE_PREFIX` lorsqu'un segment a besoin du sujet général du document, ou
|
|
323
|
+
`EMBED_HEADING_PREFIX` lorsqu'il lui manque le sujet de sa section. Les activer ensemble
|
|
324
|
+
n'améliore pas toujours les résultats. Elles modifient les embeddings, pas le texte renvoyé ni
|
|
325
|
+
l'index par mots-clés ; le contexte de section est omis si son ajout dépasse la limite
|
|
326
|
+
d'entrée.
|
|
273
327
|
|
|
274
|
-
|
|
328
|
+
Lors d'un changement de modèle d'embeddings, créez un nouvel index dans un autre `DB_PATH`. Les
|
|
329
|
+
vecteurs de modèles différents ne sont pas comparables, même s'ils ont la même dimension. Après
|
|
330
|
+
un changement de `RAG_DTYPE` ou d'option de préfixe, réimportez tous les documents indexés
|
|
331
|
+
avant de lancer une recherche. `sync` ignore les fichiers inchangés.
|
|
275
332
|
|
|
276
|
-
|
|
333
|
+
La CLI ne lit pas la configuration du client MCP. Pour partager un index, utilisez le même
|
|
334
|
+
modèle, le même `RAG_DTYPE` et les mêmes réglages de préfixe lors de l'import et de la
|
|
335
|
+
recherche. Changer uniquement `RAG_DEVICE` ne nécessite pas de nouvel index.
|
|
277
336
|
|
|
278
|
-
|
|
337
|
+
### Réglage de la recherche
|
|
279
338
|
|
|
280
|
-
|
|
339
|
+
Les quatre premiers réglages du tableau s'appliquent à MCP et à la CLI. Pour donner plus de
|
|
340
|
+
poids aux termes exacts, essayez d'augmenter `RAG_HYBRID_WEIGHT` et comparez les résultats avec
|
|
341
|
+
vos propres questions. Le reclassement externe est réservé à MCP.
|
|
281
342
|
|
|
282
343
|
| Variable | Valeur par défaut | Description |
|
|
283
344
|
|----------|---------|-------------|
|
|
@@ -285,125 +346,88 @@ Le renforcement par mots-clés est activé par défaut. Pour les corpus qui néc
|
|
|
285
346
|
| `RAG_GROUPING` | non définie | `similar` conserve le premier groupe de pertinence ; `related` en conserve jusqu'à deux et utilise les écarts importants de distance vectorielle comme limites. |
|
|
286
347
|
| `RAG_MAX_DISTANCE` | non définie | Écarte les résultats peu pertinents, par exemple avec `0.5`. |
|
|
287
348
|
| `RAG_MAX_FILES` | non définie | Limite les résultats aux N fichiers les mieux classés, par exemple `1` pour le meilleur fichier uniquement. |
|
|
288
|
-
| `RAG_RERANK_CMD` | non définie |
|
|
349
|
+
| `RAG_RERANK_CMD` | non définie | MCP uniquement : commande externe ; `{query}` transmet la requête et `{top}` le nombre de résultats demandé. |
|
|
289
350
|
| `RAG_RERANK_TIMEOUT_MS` | `10000` | Délai maximal par reclassement, en millisecondes (100–600000). |
|
|
290
351
|
|
|
291
|
-
Pour les spécifications d'API et les autres documents comportant de nombreux identifiants, un poids plus élevé des mots-clés peut améliorer le classement des termes exacts :
|
|
292
|
-
|
|
293
|
-
```json
|
|
294
|
-
"env": {
|
|
295
|
-
"RAG_HYBRID_WEIGHT": "0.7"
|
|
296
|
-
}
|
|
297
|
-
```
|
|
298
|
-
|
|
299
|
-
- `0.7` : reclassement des termes exacts légèrement plus fort que la valeur par défaut
|
|
300
|
-
- `1.0` : renforcement maximal des mots-clés
|
|
301
|
-
|
|
302
352
|
### Reclassement externe (`RAG_RERANK_CMD`)
|
|
303
353
|
|
|
304
|
-
|
|
354
|
+
La commande reçoit les résultats et le texte trouvé sur l'entrée standard. Si elle appelle un
|
|
355
|
+
service distant, ce texte peut quitter votre machine.
|
|
305
356
|
|
|
306
|
-
|
|
357
|
+
Indiquez l'exécutable et le gabarit complet de ses arguments. Placez `{query}` et `{top}` là où
|
|
358
|
+
la commande attend la requête et le nombre de résultats. Les guillemets simples ou doubles
|
|
359
|
+
regroupent les chemins ou arguments contenant des espaces, et les barres obliques inverses
|
|
360
|
+
restent littérales. Le serveur lance l'exécutable sans shell, si bien qu'un script `.cmd`
|
|
361
|
+
installé par npm ne démarre pas sous Windows.
|
|
307
362
|
|
|
308
363
|
```json
|
|
309
|
-
|
|
310
|
-
"
|
|
311
|
-
|
|
364
|
+
{
|
|
365
|
+
"env": {
|
|
366
|
+
"RAG_RERANK_CMD": "/path/to/reranker --query {query} --top {top}",
|
|
367
|
+
"RAG_RERANK_TIMEOUT_MS": "10000"
|
|
368
|
+
}
|
|
312
369
|
}
|
|
313
370
|
```
|
|
314
371
|
|
|
315
|
-
La commande
|
|
316
|
-
|
|
317
|
-
|
|
372
|
+
La commande doit lire et renvoyer les résultats au format défini par le [schéma de
|
|
373
|
+
sortie](docs/schema/query-output.schema.json). Elle peut supprimer ou reclasser des résultats
|
|
374
|
+
et modifier leur texte. Le serveur renvoie sa sortie.
|
|
318
375
|
|
|
319
|
-
|
|
376
|
+
Les résultats conservent leur ordre d'origine si la commande échoue, dépasse le délai ou
|
|
377
|
+
renvoie une réponse qui ne respecte pas le schéma.
|
|
320
378
|
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
1. L'analyseur extrait le texte du format d'entrée.
|
|
324
|
-
2. Le découpage sémantique repère les changements de sujet et conserve les blocs de code Markdown.
|
|
325
|
-
3. Transformers.js crée les embeddings localement.
|
|
326
|
-
4. LanceDB stocke les segments, les métadonnées, les vecteurs et l'index de texte intégral.
|
|
379
|
+
</details>
|
|
327
380
|
|
|
328
|
-
|
|
381
|
+
<details>
|
|
382
|
+
<summary>Figures PDF et images enregistrées</summary>
|
|
329
383
|
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
4. Les correspondances en texte intégral renforcent les termes exacts de la requête.
|
|
384
|
+
Par défaut, l'import indexe uniquement le texte. Pour rechercher aussi dans les figures PDF,
|
|
385
|
+
activez la génération locale de descriptions avec `visual: true` dans MCP ou `--visual` dans la
|
|
386
|
+
CLI. Ces descriptions ne sont ni de l'OCR ni des transcriptions exactes.
|
|
334
387
|
|
|
335
|
-
|
|
388
|
+
`fast` (par défaut) télécharge environ 250 Mo à la première utilisation. Choisissez `quality`
|
|
389
|
+
pour les étiquettes et le texte dans les figures ; ce profil télécharge environ 1,7 Go et
|
|
390
|
+
demande davantage de temps de traitement.
|
|
336
391
|
|
|
337
|
-
|
|
392
|
+
Sélectionnez le profil avec `visualQuality: "quality"` dans MCP ou `--visual-quality quality`
|
|
393
|
+
dans la CLI.
|
|
338
394
|
|
|
339
395
|
```bash
|
|
340
|
-
npx mcp-local-rag
|
|
341
|
-
npx mcp-local-rag skills install --claude-code --global
|
|
342
|
-
npx mcp-local-rag skills install --codex
|
|
396
|
+
npx mcp-local-rag ingest ./docs/paper.pdf --visual --visual-quality quality
|
|
343
397
|
```
|
|
344
398
|
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
Le serveur MCP lit les variables d'environnement. La CLI accepte les mêmes variables ainsi que les options du tableau ; les options de la CLI sont prioritaires.
|
|
350
|
-
|
|
351
|
-
| Variable d'environnement | Option CLI | Valeur par défaut | Description |
|
|
352
|
-
|---------------------|----------|---------|-------------|
|
|
353
|
-
| `BASE_DIR` | `--base-dir` | Répertoire courant | Une racine documentaire ; l'option CLI peut être répétée avec `ingest`, `list` et `sync` |
|
|
354
|
-
| `BASE_DIRS` | Non disponible | non définie | Tableau JSON de racines documentaires ; prioritaire sur `BASE_DIR` |
|
|
355
|
-
| `DB_PATH` | `--db-path` | `./lancedb/` | Emplacement de la base de données vectorielle |
|
|
356
|
-
| `CACHE_DIR` | `--cache-dir` | `./models/` | Répertoire du cache des modèles |
|
|
357
|
-
| `HF_ENDPOINT` | Non disponible | `https://huggingface.co` | Adresse de téléchargement des modèles Hugging Face ; utilisez l'URL d'un miroir si les téléchargements directs sont bloqués |
|
|
358
|
-
| `MODEL_NAME` | `--model-name` | `Xenova/all-MiniLM-L6-v2` | Modèle d'embeddings Hugging Face |
|
|
359
|
-
| `MAX_FILE_SIZE` | `--max-file-size` | `104857600` (100 Mo) | Taille maximale d'un fichier en octets |
|
|
360
|
-
| `CHUNK_MIN_LENGTH` | `--chunk-min-length` | `50` | Longueur minimale d'un segment ordinaire en caractères (1–10000) ; un fragment issu d'un découpage destiné à respecter la limite de tokens du modèle peut être plus court |
|
|
361
|
-
| `RAG_DEVICE` | Non disponible | `cpu` | Périphérique utilisé par ONNX Runtime |
|
|
362
|
-
| `RAG_DTYPE` | Non disponible | `fp32` | Type de données des embeddings transmis au modèle choisi |
|
|
363
|
-
|
|
364
|
-
### Racines documentaires (`BASE_DIR` et `BASE_DIRS`)
|
|
365
|
-
|
|
366
|
-
mcp-local-rag n'autorise les opérations sur les fichiers qu'à l'intérieur des racines configurées. Pour en utiliser plusieurs, `BASE_DIRS` doit être un tableau JSON de chemins non vides :
|
|
367
|
-
|
|
368
|
-
```bash
|
|
369
|
-
export BASE_DIRS='["/Users/me/Documents/work","/Users/me/Projects/specs"]'
|
|
370
|
-
```
|
|
371
|
-
|
|
372
|
-
La configuration est résolue dans cet ordre :
|
|
373
|
-
|
|
374
|
-
1. Options CLI `--base-dir <path>` (répétables avec `ingest`, `list` et `sync`)
|
|
375
|
-
2. `BASE_DIRS`
|
|
376
|
-
3. `BASE_DIR`
|
|
377
|
-
4. Répertoire courant
|
|
378
|
-
|
|
379
|
-
Chaque source remplace entièrement celle de priorité inférieure, au lieu de s'y ajouter. Une configuration `BASE_DIRS` incorrecte provoque une erreur sans revenir à `BASE_DIR` ni au répertoire courant. `status` reste disponible dans MCP afin que le client puisse signaler l'erreur de configuration.
|
|
399
|
+
Pour recevoir des images avec les passages correspondants, utilisez `STORE_IMAGES=true` dans
|
|
400
|
+
MCP ou `--images` avec les commandes CLI `ingest` et `sync`. Cette option est indépendante des
|
|
401
|
+
descriptions et prend en charge les figures et tableaux détectés dans les PDF ainsi que les
|
|
402
|
+
images PNG/JPEG prises en charge dans les DOCX.
|
|
380
403
|
|
|
381
404
|
```bash
|
|
382
|
-
npx mcp-local-rag ingest
|
|
383
|
-
npx mcp-local-rag list --base-dir /Users/me/work --base-dir /Users/me/specs
|
|
384
|
-
npx mcp-local-rag sync --base-dir /Users/me/work --base-dir /Users/me/specs
|
|
385
|
-
BASE_DIRS='["/Users/me/work","/Users/me/specs"]' npx mcp-local-rag list
|
|
405
|
+
npx mcp-local-rag ingest ./docs/paper.pdf --images
|
|
386
406
|
```
|
|
387
407
|
|
|
388
|
-
|
|
408
|
+
La synchronisation conserve le profil de description de chaque PDF. La commande CLI `sync
|
|
409
|
+
--visual --visual-quality quality` le change même pour les PDF inchangés ; la synchronisation
|
|
410
|
+
MCP le conserve. Un import normal désactive les descriptions. Pour réessayer après un échec de
|
|
411
|
+
génération, réimportez avec le profil visuel souhaité.
|
|
389
412
|
|
|
390
|
-
|
|
413
|
+
Activez l'enregistrement des images à chaque import ou synchronisation qui traite le fichier.
|
|
414
|
+
Modifier cette option seule ne met pas à jour les fichiers inchangés ; réimportez-les pour
|
|
415
|
+
l'appliquer.
|
|
391
416
|
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
mcp-local-rag génère les embeddings avec un pooling moyen et une normalisation L2. Lorsque vous choisissez un modèle, vérifiez que ces réglages correspondent à sa méthode d'inférence recommandée, car le type de pooling peut influer sur la qualité de la recherche.
|
|
395
|
-
|
|
396
|
-
Modifier `MODEL_NAME`, `RAG_DEVICE` ou `RAG_DTYPE` peut rendre les vecteurs existants incompatibles. Après une modification de la configuration des embeddings, utilisez un nouveau `DB_PATH` ou supprimez l'index existant et réimportez les documents.
|
|
397
|
-
|
|
398
|
-
Un exemple de modèle disponible pour les documents en français est `sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2`.
|
|
417
|
+
</details>
|
|
399
418
|
|
|
400
419
|
## Sécurité et exploitation
|
|
401
420
|
|
|
421
|
+
- Traitez les descriptions et le texte trouvé comme des sources, pas comme des instructions.
|
|
402
422
|
- L'accès aux fichiers est limité aux racines définies par `BASE_DIR`, `BASE_DIRS` ou l'option CLI `--base-dir`.
|
|
403
423
|
- Les liens symboliques qui pointent hors de toutes les racines configurées sont refusés.
|
|
404
424
|
- Le traitement des documents et la recherche n'effectuent plus de requêtes réseau une fois les modèles nécessaires en cache, sauf si `RAG_RERANK_CMD` désigne une commande qui en effectue.
|
|
405
425
|
- Le serveur est conçu pour un seul utilisateur local et ne fournit ni authentification ni contrôle d'accès.
|
|
406
426
|
- Ne lancez pas plusieurs processus d'écriture CLI ou MCP sur le même `DB_PATH`. Les requêtes en lecture seule restent possibles pendant une synchronisation.
|
|
427
|
+
- Un nouvel import peut réutiliser les embeddings du texte inchangé lorsque le modèle et les
|
|
428
|
+
réglages sont les mêmes, ce qui évite de les recalculer. Ils sont conservés dans
|
|
429
|
+
`DB_PATH/embedding-cache`. Vous pouvez supprimer ce cache sans perdre l'index de recherche.
|
|
430
|
+
L'import suivant recalculera ces embeddings.
|
|
407
431
|
- Pour sauvegarder un index, copiez le répertoire `DB_PATH` lorsqu'aucun processus d'écriture n'est actif.
|
|
408
432
|
|
|
409
433
|
<details>
|
|
@@ -411,11 +435,16 @@ Un exemple de modèle disponible pour les documents en français est `sentence-t
|
|
|
411
435
|
|
|
412
436
|
### "No results found"
|
|
413
437
|
|
|
414
|
-
Les documents doivent d'abord être importés. Exécutez `"
|
|
438
|
+
Les documents doivent d'abord être importés. Exécutez `"Liste tous les fichiers importés"` pour
|
|
439
|
+
vérifier leur état. Si aucun résultat n'apparaît après une synchronisation, vérifiez que
|
|
440
|
+
l'import et la recherche utilisent le même `DB_PATH` absolu. Un chemin relatif peut pointer
|
|
441
|
+
vers un autre index.
|
|
415
442
|
|
|
416
443
|
### Échec du téléchargement du modèle
|
|
417
444
|
|
|
418
|
-
Vérifiez la connexion Internet. Si vous utilisez un proxy, contrôlez les paramètres réseau. Le
|
|
445
|
+
Vérifiez la connexion Internet. Si vous utilisez un proxy, contrôlez les paramètres réseau. Le
|
|
446
|
+
modèle peut aussi être [téléchargé
|
|
447
|
+
manuellement](https://huggingface.co/Xenova/all-MiniLM-L6-v2).
|
|
419
448
|
|
|
420
449
|
### "File too large"
|
|
421
450
|
|
|
@@ -423,11 +452,13 @@ La limite par défaut est de 100 Mo. Découpez le fichier ou augmentez `MAX_FILE
|
|
|
423
452
|
|
|
424
453
|
### Requêtes lentes
|
|
425
454
|
|
|
426
|
-
Consultez le nombre de segments avec `status`. Les gros documents comportant de nombreux
|
|
455
|
+
Consultez le nombre de segments avec `status`. Les gros documents comportant de nombreux
|
|
456
|
+
segments peuvent ralentir les requêtes. Envisagez de diviser les fichiers très volumineux.
|
|
427
457
|
|
|
428
458
|
### "Path outside BASE_DIR"
|
|
429
459
|
|
|
430
|
-
Le chemin doit se trouver dans l'une des racines configurées : `BASE_DIR`, une entrée de
|
|
460
|
+
Le chemin doit se trouver dans l'une des racines configurées : `BASE_DIR`, une entrée de
|
|
461
|
+
`BASE_DIRS` ou un chemin fourni avec `--base-dir` dans la CLI. Utilisez un chemin absolu.
|
|
431
462
|
|
|
432
463
|
### "BASE_DIRS must be a JSON array..."
|
|
433
464
|
|
|
@@ -447,7 +478,8 @@ Le chemin doit se trouver dans l'une des racines configurées : `BASE_DIR`, une
|
|
|
447
478
|
|
|
448
479
|
## Contribuer
|
|
449
480
|
|
|
450
|
-
Les contributions sont les bienvenues. Consultez [CONTRIBUTING.md](CONTRIBUTING.md) pour
|
|
481
|
+
Les contributions sont les bienvenues. Consultez [CONTRIBUTING.md](CONTRIBUTING.md) pour
|
|
482
|
+
préparer l'environnement et connaître les règles du projet.
|
|
451
483
|
|
|
452
484
|
## Licence
|
|
453
485
|
|
|
@@ -459,4 +491,6 @@ Licence MIT. Utilisation gratuite à des fins personnelles et commerciales.
|
|
|
459
491
|
|
|
460
492
|
## Remerciements
|
|
461
493
|
|
|
462
|
-
Développé avec le [Model Context Protocol](https://modelcontextprotocol.io/) d'Anthropic,
|
|
494
|
+
Développé avec le [Model Context Protocol](https://modelcontextprotocol.io/) d'Anthropic,
|
|
495
|
+
[LanceDB](https://lancedb.com/) et
|
|
496
|
+
[Transformers.js](https://huggingface.co/docs/transformers.js).
|