@ssmeo/mcp-local-rag 0.18.14 → 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/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 +346 -23
- package/dist/embedder/index.js.map +1 -1
- package/dist/embedder/remote.d.ts +16 -2
- package/dist/embedder/remote.d.ts.map +1 -1
- package/dist/embedder/remote.js +48 -11
- 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/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 +4 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +114 -79
- 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 +30 -7
- 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.es.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,52 @@
|
|
|
18
22
|
<a href="README.fr.md">Français</a>
|
|
19
23
|
</p>
|
|
20
24
|
|
|
21
|
-
Busca en documentos privados desde un cliente MCP o desde la terminal sin enviarlos a una API
|
|
25
|
+
Busca en documentos privados desde un cliente MCP o desde la terminal sin enviarlos a una API
|
|
26
|
+
de embeddings.
|
|
22
27
|
|
|
23
|
-
mcp-local-rag indexa archivos PDF, DOCX y Markdown, además de archivos de texto, en tu equipo.
|
|
28
|
+
mcp-local-rag indexa archivos PDF, DOCX y Markdown, además de archivos de texto, en tu equipo.
|
|
29
|
+
La búsqueda combina similitud semántica y coincidencia de palabras clave. Así tiene en cuenta
|
|
30
|
+
tanto el sentido de la consulta como los términos técnicos exactos, por ejemplo nombres de API,
|
|
31
|
+
clases y códigos de error. Los resultados incluyen pasajes del documento y, cuando están
|
|
32
|
+
disponibles, títulos de sección y números de línea o página para consultar y citar el original.
|
|
24
33
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
- **Ejecución local:** El análisis de documentos, los embeddings, el almacenamiento y la búsqueda se realizan en tu equipo. Después de descargar el modelo por primera vez, la incorporación de texto y las búsquedas funcionan sin conexión.
|
|
28
|
-
- **Búsqueda híbrida:** La recuperación semántica encuentra conceptos relacionados y la coincidencia de palabras clave da más peso a los términos técnicos exactos.
|
|
29
|
-
- **Embeddings configurables:** Puedes elegir un modelo de embeddings de Hugging Face adecuado para el idioma y el ámbito de tus documentos.
|
|
30
|
-
- **Segmentación semántica:** Los documentos se dividen cuando cambia el tema, no cada cierto número de caracteres. Los bloques de código Markdown se mantienen intactos.
|
|
31
|
-
- **MCP y CLI:** Usa el mismo índice desde una herramienta de programación con IA o directamente desde la terminal.
|
|
32
|
-
|
|
33
|
-
No hace falta una clave de API, Docker, Python ni una base de datos externa.
|
|
34
|
+
No hace falta una clave de API, Docker, Python ni una base de datos externa. Tras descargar el
|
|
35
|
+
modelo por primera vez, la incorporación de texto y la búsqueda funcionan sin conexión.
|
|
34
36
|
|
|
35
37
|
## Inicio rápido
|
|
36
38
|
|
|
37
39
|
### Requisitos
|
|
38
40
|
|
|
39
|
-
- Node.js 22 o posterior
|
|
41
|
+
- Node.js 22.20 o posterior
|
|
40
42
|
- Acceso a Internet durante el primer uso para descargar el paquete npm y el modelo de embeddings
|
|
41
43
|
- Un directorio con los documentos que quieras consultar
|
|
42
44
|
|
|
43
|
-
Asigna ese directorio a `BASE_DIR`. También será el límite de seguridad para las operaciones
|
|
45
|
+
Asigna ese directorio a `BASE_DIR`. También será el límite de seguridad para las operaciones
|
|
46
|
+
con archivos. Sustituye `/absolute/path/to/your/documents` en los ejemplos por la ruta absoluta
|
|
47
|
+
del directorio.
|
|
44
48
|
|
|
45
|
-
|
|
49
|
+
Usa uno de los ejemplos siguientes o registra `npx -y mcp-local-rag` y configura `BASE_DIR` con
|
|
50
|
+
el formato de configuración MCP de tu cliente.
|
|
46
51
|
|
|
47
|
-
|
|
52
|
+
Configura también `DB_PATH` y `CACHE_DIR` con rutas absolutas. Las rutas relativas parten del
|
|
53
|
+
directorio de trabajo del servidor, por lo que iniciarlo desde distintos proyectos crea un
|
|
54
|
+
índice y una caché de modelos en cada uno.
|
|
48
55
|
|
|
49
|
-
|
|
56
|
+
<details>
|
|
57
|
+
<summary>Claude Code</summary>
|
|
58
|
+
|
|
59
|
+
Ejecuta este comando:
|
|
50
60
|
|
|
51
61
|
```bash
|
|
52
62
|
claude mcp add local-rag --scope user --env BASE_DIR=/absolute/path/to/your/documents -- npx -y mcp-local-rag
|
|
53
63
|
```
|
|
54
64
|
|
|
55
|
-
|
|
65
|
+
</details>
|
|
66
|
+
|
|
67
|
+
<details>
|
|
68
|
+
<summary>Codex</summary>
|
|
69
|
+
|
|
70
|
+
Añade lo siguiente a `~/.codex/config.toml`:
|
|
56
71
|
|
|
57
72
|
```toml
|
|
58
73
|
[mcp_servers.local-rag]
|
|
@@ -63,7 +78,12 @@ args = ["-y", "mcp-local-rag"]
|
|
|
63
78
|
BASE_DIR = "/absolute/path/to/your/documents"
|
|
64
79
|
```
|
|
65
80
|
|
|
66
|
-
|
|
81
|
+
</details>
|
|
82
|
+
|
|
83
|
+
<details>
|
|
84
|
+
<summary>OpenCode</summary>
|
|
85
|
+
|
|
86
|
+
Añade lo siguiente a `~/.config/opencode/opencode.json` (o `opencode.jsonc`):
|
|
67
87
|
|
|
68
88
|
```json
|
|
69
89
|
{
|
|
@@ -80,7 +100,12 @@ BASE_DIR = "/absolute/path/to/your/documents"
|
|
|
80
100
|
}
|
|
81
101
|
```
|
|
82
102
|
|
|
83
|
-
|
|
103
|
+
</details>
|
|
104
|
+
|
|
105
|
+
<details>
|
|
106
|
+
<summary>Cursor</summary>
|
|
107
|
+
|
|
108
|
+
Añade lo siguiente a `~/.cursor/mcp.json`:
|
|
84
109
|
|
|
85
110
|
```json
|
|
86
111
|
{
|
|
@@ -96,13 +121,17 @@ BASE_DIR = "/absolute/path/to/your/documents"
|
|
|
96
121
|
}
|
|
97
122
|
```
|
|
98
123
|
|
|
124
|
+
</details>
|
|
125
|
+
|
|
99
126
|
Reinicia el cliente y pídele que construya el índice:
|
|
100
127
|
|
|
101
128
|
```text
|
|
102
129
|
Sincroniza todos los documentos del directorio raíz configurado y espera a que termine.
|
|
103
130
|
```
|
|
104
131
|
|
|
105
|
-
La primera sincronización descarga el modelo de embeddings predeterminado (unos 90 MB). Pueden
|
|
132
|
+
La primera sincronización descarga el modelo de embeddings predeterminado (unos 90 MB). Pueden
|
|
133
|
+
pasar entre 1 y 2 minutos antes de que comience la incorporación. Las ejecuciones posteriores
|
|
134
|
+
usan la caché local.
|
|
106
135
|
|
|
107
136
|
Cuando termine la sincronización, prueba con una consulta:
|
|
108
137
|
|
|
@@ -119,27 +148,45 @@ npx mcp-local-rag ingest ./docs/
|
|
|
119
148
|
npx mcp-local-rag query "API de autenticación"
|
|
120
149
|
```
|
|
121
150
|
|
|
122
|
-
La CLI usa el directorio actual como raíz de documentos de forma predeterminada. Ejecuta ambos
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
Algunos conjuntos de documentos no se pueden enviar a un servicio de embeddings alojado por motivos de confidencialidad o por las políticas de una organización. Un índice local permite consultarlos sin añadir un coste de API por búsqueda.
|
|
127
|
-
|
|
128
|
-
Una búsqueda puramente semántica puede pasar por alto identificadores exactos que son importantes en la documentación técnica. El reajuste por palabras clave mantiene visibles esos términos sin renunciar a las consultas en lenguaje natural.
|
|
151
|
+
La CLI usa el directorio actual como raíz de documentos de forma predeterminada. Ejecuta ambos
|
|
152
|
+
comandos desde el mismo directorio para que compartan el índice predeterminado, o configura
|
|
153
|
+
`BASE_DIR` y `DB_PATH` de forma explícita.
|
|
129
154
|
|
|
130
155
|
## Contenido compatible
|
|
131
156
|
|
|
132
157
|
| Entrada | Cómo incorporarla |
|
|
133
158
|
|---|---|
|
|
134
159
|
| PDF, DOCX, TXT, Markdown | Incorporación de archivos o sincronización de directorios |
|
|
135
|
-
| HTML ya obtenido por el cliente | `ingest_data
|
|
160
|
+
| HTML ya obtenido por el cliente | `ingest_data` |
|
|
136
161
|
| Texto sin formato o Markdown en memoria | `ingest_data` con un identificador de origen estable |
|
|
137
162
|
|
|
138
|
-
El servidor no descarga páginas HTML. Un cliente MCP puede obtener una página y pasar su HTML a
|
|
163
|
+
El servidor no descarga páginas HTML. Un cliente MCP puede obtener una página y pasar su HTML a
|
|
164
|
+
`ingest_data`.
|
|
165
|
+
|
|
166
|
+
La incorporación de archivos no admite Excel, PowerPoint, imágenes independientes ni
|
|
167
|
+
extensiones de código fuente. De forma opcional, los PDF pueden usar un modelo visual local
|
|
168
|
+
para describir figuras, pero esta función no es OCR ni búsqueda de imágenes.
|
|
169
|
+
|
|
170
|
+
## Usar el índice
|
|
171
|
+
|
|
172
|
+
Sincroniza el índice después de añadir, modificar o eliminar documentos. Para buscar y ampliar
|
|
173
|
+
el contexto, puedes pedirle al cliente MCP:
|
|
139
174
|
|
|
140
|
-
|
|
175
|
+
```text
|
|
176
|
+
Busca qué dice la documentación sobre ERR_CONNECTION_REFUSED.
|
|
177
|
+
Lee también los segmentos anteriores y posteriores a ese resultado.
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
También puedes incorporar un solo archivo o HTML que el cliente ya haya obtenido. Para
|
|
181
|
+
actualizar una entrada existente, vuelve a incorporar el documento con la misma ruta o
|
|
182
|
+
identificador de origen. `sync` omite los archivos sin cambios. Las rutas de archivos en MCP
|
|
183
|
+
deben ser absolutas y estar dentro de un directorio raíz configurado.
|
|
141
184
|
|
|
142
|
-
|
|
185
|
+
Los títulos de sección detectados en un PDF pueden ser incorrectos. Si necesitas el título
|
|
186
|
+
exacto, compruébalo en la página original.
|
|
187
|
+
|
|
188
|
+
<details>
|
|
189
|
+
<summary>Herramientas MCP</summary>
|
|
143
190
|
|
|
144
191
|
| Herramienta | Función |
|
|
145
192
|
|---|---|
|
|
@@ -153,131 +200,140 @@ La incorporación de archivos no admite Excel, PowerPoint, imágenes independien
|
|
|
153
200
|
| `delete_file` | Eliminar un archivo indexado o un elemento de `ingest_data` |
|
|
154
201
|
| `status` | Mostrar el estado del índice y de la búsqueda |
|
|
155
202
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
`sync_start` incorpora archivos nuevos o modificados, omite los que son idénticos byte a byte y elimina del índice los archivos que ya no existen:
|
|
159
|
-
|
|
160
|
-
```text
|
|
161
|
-
Sincroniza todo el contenido de los directorios raíz configurados y espera a que termine.
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
La herramienta devuelve un `jobId` de inmediato. El cliente debe consultar `sync_status` hasta que el estado sea `succeeded` o `failed`. Un PDF modificado conserva el perfil visual con el que se indexó; un PDF sin perfil registrado se mantiene solo como texto. `sync_start` no puede cambiar el perfil.
|
|
165
|
-
|
|
166
|
-
El proceso del servidor solo conserva un trabajo de sincronización. Un trabajo nuevo sustituye el registro de uno ya terminado y el registro se pierde al reiniciar el servidor.
|
|
167
|
-
|
|
168
|
-
### Incorporar un archivo
|
|
169
|
-
|
|
170
|
-
`ingest_file` admite PDF, DOCX, TXT y Markdown. Las rutas de archivo enviadas mediante MCP deben ser absolutas y estar dentro de un directorio raíz configurado:
|
|
171
|
-
|
|
172
|
-
```text
|
|
173
|
-
Incorpora el documento /Users/me/docs/api-spec.pdf.
|
|
174
|
-
```
|
|
175
|
-
|
|
176
|
-
Si se vuelve a incorporar la misma ruta, sus segmentos anteriores se sustituyen.
|
|
177
|
-
|
|
178
|
-
### Buscar y leer más contexto
|
|
203
|
+
</details>
|
|
179
204
|
|
|
180
|
-
|
|
181
|
-
¿Qué dice la documentación de la API sobre la autenticación?
|
|
182
|
-
Busca el comportamiento documentado de ERR_CONNECTION_REFUSED.
|
|
183
|
-
```
|
|
205
|
+
## CLI
|
|
184
206
|
|
|
185
|
-
|
|
207
|
+
Usa la CLI para actualizar el índice, acotar las búsquedas o eliminar contenido indexado:
|
|
186
208
|
|
|
187
|
-
```
|
|
188
|
-
|
|
209
|
+
```bash
|
|
210
|
+
npx mcp-local-rag sync ./docs/
|
|
211
|
+
npx mcp-local-rag query "autenticación" --scope /docs/api --scope /docs/guide
|
|
212
|
+
npx mcp-local-rag read-neighbors --file-path /abs/path.md --chunk-index 5
|
|
213
|
+
npx mcp-local-rag list
|
|
214
|
+
npx mcp-local-rag status
|
|
215
|
+
npx mcp-local-rag delete ./docs/old.pdf
|
|
216
|
+
npx mcp-local-rag delete --source "https://example.com/docs"
|
|
189
217
|
```
|
|
190
218
|
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
219
|
+
`ingest` incorpora los archivos seleccionados; `sync` también retira del índice los archivos
|
|
220
|
+
eliminados y omite los que no han cambiado. Usa `--scope` para limitar los resultados a un
|
|
221
|
+
prefijo de ruta y repítelo para incluir varios prefijos.
|
|
194
222
|
|
|
195
|
-
|
|
223
|
+
Las opciones globales, como `--db-path`, `--cache-dir` y `--model-name`, van antes del
|
|
224
|
+
subcomando. Las opciones propias del subcomando van después:
|
|
196
225
|
|
|
197
|
-
```
|
|
198
|
-
|
|
226
|
+
```bash
|
|
227
|
+
npx mcp-local-rag --db-path ./my-db query "autenticación"
|
|
199
228
|
```
|
|
200
229
|
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
Respeta las condiciones y los derechos de autor del sitio de origen al indexar contenido externo.
|
|
204
|
-
|
|
205
|
-
### Figuras de PDF
|
|
230
|
+
Ejecuta `npx mcp-local-rag --help` para ver la referencia completa de comandos.
|
|
206
231
|
|
|
207
|
-
|
|
232
|
+
`query` escribe sus resultados en stdout como JSON, con la mejor coincidencia primero, de modo
|
|
233
|
+
que puedes canalizarlos hacia otra herramienta. La definición de cada campo está en
|
|
234
|
+
[`docs/schema/query-output.schema.json`](docs/schema/query-output.schema.json).
|
|
208
235
|
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
236
|
+
Si vas a mover un proyecto y quieres conservar su índice, detén el servidor MCP y los demás
|
|
237
|
+
procesos de escritura. Mueve juntos los archivos y la base de datos, manteniendo la estructura
|
|
238
|
+
de directorios, y ejecuta:
|
|
212
239
|
|
|
213
240
|
```bash
|
|
214
|
-
npx mcp-local-rag
|
|
241
|
+
npx mcp-local-rag --db-path /new/project/lancedb relocate --from /old/project --to /new/project
|
|
215
242
|
```
|
|
216
243
|
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
| `fast` (predeterminado) | unos 250 MB | Indexación visual ligera |
|
|
220
|
-
| `quality` | unos 1,7 GB | Figuras con etiquetas, anotaciones u otro texto dentro de la imagen |
|
|
221
|
-
|
|
222
|
-
Selecciona el modelo más grande con `visualQuality: "quality"` en MCP o con `--visual-quality quality` en la CLI. En pruebas con CPU, la inferencia tardó aproximadamente el triple que con `fast`, aunque el resultado depende del hardware y de las actualizaciones del modelo.
|
|
244
|
+
En la configuración MCP, actualiza `BASE_DIR`/`BASE_DIRS`, `DB_PATH` y las demás rutas
|
|
245
|
+
afectadas. Luego reinicia el cliente.
|
|
223
246
|
|
|
224
|
-
|
|
247
|
+
## Agent Skills
|
|
225
248
|
|
|
226
|
-
|
|
249
|
+
Las [Agent Skills](https://agentskills.io/) ofrecen a los asistentes de IA instrucciones para
|
|
250
|
+
formular consultas e incorporar contenido:
|
|
227
251
|
|
|
228
252
|
```bash
|
|
229
|
-
npx mcp-local-rag
|
|
253
|
+
npx mcp-local-rag skills install --claude-code
|
|
254
|
+
npx mcp-local-rag skills install --claude-code --global
|
|
255
|
+
npx mcp-local-rag skills install --codex
|
|
230
256
|
```
|
|
231
257
|
|
|
232
|
-
|
|
258
|
+
Las habilidades instaladas cubren la formulación de consultas, el refinamiento de resultados y
|
|
259
|
+
la incorporación de HTML. Si alguna no se activa de forma automática, pide al asistente que use
|
|
260
|
+
de manera explícita la habilidad mcp-local-rag.
|
|
233
261
|
|
|
234
|
-
|
|
262
|
+
## Opciones avanzadas
|
|
235
263
|
|
|
236
|
-
|
|
264
|
+
Empieza con la configuración predeterminada. Consulta las siguientes secciones si necesitas
|
|
265
|
+
varios directorios raíz, adaptar la búsqueda a tus documentos o buscar en figuras de PDF.
|
|
237
266
|
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
npx mcp-local-rag sync ./docs/ --visual # solicitar fast para todos los PDF del ámbito
|
|
241
|
-
npx mcp-local-rag sync ./docs/ --visual --visual-quality quality
|
|
242
|
-
```
|
|
243
|
-
|
|
244
|
-
`--visual` sustituye los perfiles registrados, así que también describe los PDF que se indexaron como texto. Cambiar de perfil vuelve a incorporar el PDF aunque el archivo no haya cambiado; repetir el mismo comando no hace nada ni carga ningún modelo.
|
|
267
|
+
<details>
|
|
268
|
+
<summary>Almacenamiento y directorios raíz</summary>
|
|
245
269
|
|
|
246
|
-
|
|
270
|
+
El servidor MCP lee variables de entorno. La CLI acepta las variables y opciones indicadas.
|
|
271
|
+
Mantén el mismo `DB_PATH` si los comandos deben compartir un índice.
|
|
247
272
|
|
|
248
|
-
|
|
273
|
+
| Variable de entorno | Opción de la CLI | Valor predeterminado | Descripción |
|
|
274
|
+
|---------------------|----------|---------|-------------|
|
|
275
|
+
| `BASE_DIR` | `--base-dir` | Directorio actual | Un directorio raíz; la opción de la CLI puede repetirse en `ingest`, `list` y `sync` |
|
|
276
|
+
| `BASE_DIRS` | No disponible | sin configurar | Matriz JSON de directorios raíz; tiene prioridad sobre `BASE_DIR` |
|
|
277
|
+
| `IGNORE_PATHS` | No disponible | sin configurar | Matriz JSON de patrones glob para archivos que deben quedar fuera del índice |
|
|
278
|
+
| `DB_PATH` | `--db-path` | `./lancedb/` | Ubicación de la base de datos vectorial |
|
|
279
|
+
| `CACHE_DIR` | `--cache-dir` | `./models/` | Directorio de caché de modelos |
|
|
280
|
+
| `HF_ENDPOINT` | No disponible | `https://huggingface.co` | Dirección de descarga de modelos de Hugging Face; usa la URL de un servidor espejo si las descargas directas están bloqueadas |
|
|
281
|
+
| `MAX_FILE_SIZE` | `--max-file-size` | `104857600` (100 MB) | Tamaño máximo del archivo en bytes |
|
|
249
282
|
|
|
250
|
-
|
|
283
|
+
Las operaciones con archivos se limitan a los directorios raíz configurados. Para usar varios,
|
|
284
|
+
configura `BASE_DIRS='["/absolute/docs","/absolute/specs"]'` o repite `--base-dir` en la CLI.
|
|
285
|
+
Prioridad: directorios de la CLI, `BASE_DIRS`, `BASE_DIR` y directorio actual. Solo se usa la
|
|
286
|
+
fuente de mayor prioridad; los directorios de distintas fuentes no se combinan. Un `BASE_DIRS`
|
|
287
|
+
incorrecto produce un error. Las rutas relativas de `DB_PATH` y `CACHE_DIR` parten del
|
|
288
|
+
directorio de trabajo.
|
|
289
|
+
|
|
290
|
+
Para dejar archivos fuera del índice, configura `IGNORE_PATHS` con una matriz JSON de patrones
|
|
291
|
+
glob, por ejemplo `IGNORE_PATHS='["plugs/**","**/*.draft.md"]'`. Cada patrón se compara con la
|
|
292
|
+
ruta del archivo relativa al directorio raíz que lo contiene, escrita con `/` en cualquier
|
|
293
|
+
sistema operativo. `*` y `**` no coinciden con nombres que empiezan por `.`, así que escribe
|
|
294
|
+
esos directorios completos, como `".obsidian/**"`. Cuando `ingest`, `list` y `sync` recorren un
|
|
295
|
+
directorio, omiten los archivos que coinciden, y `sync` retira del índice los que ya estaban
|
|
296
|
+
indexados. Un `IGNORE_PATHS` incorrecto produce un error.
|
|
251
297
|
|
|
252
|
-
|
|
298
|
+
</details>
|
|
253
299
|
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
npx mcp-local-rag sync ./docs/
|
|
257
|
-
npx mcp-local-rag query "API de autenticación"
|
|
258
|
-
npx mcp-local-rag query "autenticación" --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
|
-
```
|
|
300
|
+
<details>
|
|
301
|
+
<summary>Modelos y ajuste de la búsqueda</summary>
|
|
265
302
|
|
|
266
|
-
|
|
303
|
+
Elige un modelo de embeddings adecuado para el idioma y el tema de tus documentos. Compara los
|
|
304
|
+
ajustes con tus consultas habituales y comprueba los pasajes que devuelve la búsqueda. Elige un
|
|
305
|
+
modelo compatible con mean pooling y normalización L2, que son los métodos usados para generar
|
|
306
|
+
los embeddings.
|
|
267
307
|
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
308
|
+
| Variable de entorno | Opción de la CLI | Valor predeterminado | Descripción |
|
|
309
|
+
|---------------------|----------|---------|-------------|
|
|
310
|
+
| `MODEL_NAME` | `--model-name` | `Xenova/all-MiniLM-L6-v2` | Modelo de embeddings de Hugging Face |
|
|
311
|
+
| `CHUNK_MIN_LENGTH` | `--chunk-min-length` | `50` | Longitud mínima de un segmento normal en caracteres (1–10000); un fragmento resultante de dividir contenido para respetar el límite de tokens del modelo puede ser más corto |
|
|
312
|
+
| `EMBED_TITLE_PREFIX` | No disponible | `false` | Añade el título del documento a la entrada usada para generar el embedding de cada segmento |
|
|
313
|
+
| `EMBED_HEADING_PREFIX` | No disponible | `false` | Añade la jerarquía de títulos de sección a la entrada de cada segmento, si cabe en el límite de tokens |
|
|
314
|
+
| `RAG_DEVICE` | No disponible | `cpu` | Dispositivo de ejecución de ONNX Runtime |
|
|
315
|
+
| `RAG_DTYPE` | No disponible | `fp32` | Tipo de datos de los embeddings que recibe el modelo seleccionado |
|
|
271
316
|
|
|
272
|
-
|
|
317
|
+
Ambas opciones de prefijo están desactivadas por defecto (`false`) y son independientes. Prueba
|
|
318
|
+
`EMBED_TITLE_PREFIX` cuando un segmento necesite el tema general del documento, o
|
|
319
|
+
`EMBED_HEADING_PREFIX` cuando le falte el tema de su sección. Activar ambas no siempre mejora
|
|
320
|
+
los resultados. Afectan a los embeddings, no al texto devuelto ni al índice de palabras clave;
|
|
321
|
+
el contexto de sección se omite si supera el presupuesto de entrada.
|
|
273
322
|
|
|
274
|
-
|
|
323
|
+
Al cambiar de modelo de embeddings, crea un índice nuevo en otro `DB_PATH`. Los vectores de
|
|
324
|
+
modelos distintos no son comparables, aunque tengan las mismas dimensiones. Si cambias
|
|
325
|
+
`RAG_DTYPE` o una opción de prefijo, vuelve a incorporar todos los documentos indexados antes
|
|
326
|
+
de buscar. `sync` omite los archivos sin cambios.
|
|
275
327
|
|
|
276
|
-
|
|
328
|
+
La CLI no lee la configuración del cliente MCP. Si comparten un índice, usa el mismo modelo,
|
|
329
|
+
`RAG_DTYPE` y ajustes de prefijo al incorporar documentos y al buscar. Cambiar únicamente
|
|
330
|
+
`RAG_DEVICE` no exige crear otro índice.
|
|
277
331
|
|
|
278
|
-
|
|
332
|
+
### Ajustes de búsqueda
|
|
279
333
|
|
|
280
|
-
|
|
334
|
+
Los primeros cuatro ajustes de la tabla se aplican tanto a MCP como a la CLI. Para dar más peso
|
|
335
|
+
a los términos exactos, prueba a subir `RAG_HYBRID_WEIGHT` y compara los resultados con tus
|
|
336
|
+
propias consultas. El reordenamiento externo solo está disponible en MCP.
|
|
281
337
|
|
|
282
338
|
| Variable | Valor predeterminado | Descripción |
|
|
283
339
|
|----------|---------|-------------|
|
|
@@ -285,125 +341,86 @@ El refuerzo de palabras clave está activado de forma predeterminada. Para corpu
|
|
|
285
341
|
| `RAG_GROUPING` | sin configurar | `similar` conserva el primer grupo de relevancia; `related` conserva hasta dos y usa saltos importantes de distancia vectorial como límites. |
|
|
286
342
|
| `RAG_MAX_DISTANCE` | sin configurar | Descarta resultados poco relevantes (por ejemplo, `0.5`). |
|
|
287
343
|
| `RAG_MAX_FILES` | sin configurar | Limita los resultados a los N archivos mejor clasificados (por ejemplo, `1` deja solo el mejor archivo). |
|
|
288
|
-
| `RAG_RERANK_CMD` | sin configurar | Solo
|
|
344
|
+
| `RAG_RERANK_CMD` | sin configurar | Solo MCP: comando externo; `{query}` pasa la consulta y `{top}` la cantidad de resultados solicitada. |
|
|
289
345
|
| `RAG_RERANK_TIMEOUT_MS` | `10000` | Tiempo máximo por llamada de reordenamiento en milisegundos (100–600000). |
|
|
290
346
|
|
|
291
|
-
En especificaciones de API y otros documentos con muchos identificadores, un peso mayor de palabras clave puede mejorar la clasificación de términos exactos:
|
|
292
|
-
|
|
293
|
-
```json
|
|
294
|
-
"env": {
|
|
295
|
-
"RAG_HYBRID_WEIGHT": "0.7"
|
|
296
|
-
}
|
|
297
|
-
```
|
|
298
|
-
|
|
299
|
-
- `0.7`: reajuste de términos exactos algo más fuerte que el valor predeterminado
|
|
300
|
-
- `1.0`: refuerzo máximo de palabras clave
|
|
301
|
-
|
|
302
347
|
### Reordenamiento externo (`RAG_RERANK_CMD`)
|
|
303
348
|
|
|
304
|
-
|
|
349
|
+
El comando recibe los resultados y el texto encontrado por la entrada estándar. Si llama a un
|
|
350
|
+
servicio remoto, ese texto puede salir del equipo.
|
|
305
351
|
|
|
306
|
-
Escribe el
|
|
352
|
+
Escribe el ejecutable y su plantilla completa de argumentos. Coloca `{query}` y `{top}` donde
|
|
353
|
+
el comando espera la consulta y el número de resultados. Las comillas simples o dobles agrupan
|
|
354
|
+
rutas o argumentos con espacios, y las barras invertidas se conservan literalmente. El servidor
|
|
355
|
+
lanza el ejecutable sin shell, así que en Windows un adaptador `.cmd` instalado por npm no
|
|
356
|
+
arranca.
|
|
307
357
|
|
|
308
358
|
```json
|
|
309
|
-
|
|
310
|
-
"
|
|
311
|
-
|
|
359
|
+
{
|
|
360
|
+
"env": {
|
|
361
|
+
"RAG_RERANK_CMD": "/path/to/reranker --query {query} --top {top}",
|
|
362
|
+
"RAG_RERANK_TIMEOUT_MS": "10000"
|
|
363
|
+
}
|
|
312
364
|
}
|
|
313
365
|
```
|
|
314
366
|
|
|
315
|
-
El comando
|
|
316
|
-
|
|
317
|
-
|
|
367
|
+
El comando debe leer y devolver resultados con el formato definido en el [esquema de
|
|
368
|
+
salida](docs/schema/query-output.schema.json). Puede eliminar o reordenar resultados y
|
|
369
|
+
modificar su texto. El servidor devuelve la salida del comando.
|
|
318
370
|
|
|
319
|
-
|
|
371
|
+
Los resultados conservan su orden original si el comando falla, supera el tiempo límite o
|
|
372
|
+
devuelve una respuesta que no cumple el esquema.
|
|
320
373
|
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
1. El analizador extrae el texto del formato de entrada.
|
|
324
|
-
2. El segmentador semántico localiza cambios de tema y conserva los bloques de código Markdown.
|
|
325
|
-
3. Transformers.js crea los embeddings de forma local.
|
|
326
|
-
4. LanceDB almacena los segmentos, los metadatos, los vectores y el índice de texto completo.
|
|
374
|
+
</details>
|
|
327
375
|
|
|
328
|
-
|
|
376
|
+
<details>
|
|
377
|
+
<summary>Figuras PDF e imágenes guardadas</summary>
|
|
329
378
|
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
4. Las coincidencias de texto completo refuerzan los términos exactos de la consulta.
|
|
379
|
+
De forma predeterminada, la incorporación solo indexa texto. Para buscar también en las figuras
|
|
380
|
+
PDF, activa la generación local de descripciones con `visual: true` en MCP o `--visual` en la
|
|
381
|
+
CLI. Son descripciones generadas, no OCR ni transcripciones exactas.
|
|
334
382
|
|
|
335
|
-
|
|
383
|
+
`fast` (predeterminado) descarga unos 250 MB la primera vez. Elige `quality` para etiquetas y
|
|
384
|
+
texto dentro de las figuras; descarga unos 1,7 GB y tarda más en procesar.
|
|
336
385
|
|
|
337
|
-
|
|
386
|
+
Selecciona el perfil con `visualQuality: "quality"` en MCP o `--visual-quality quality` en la
|
|
387
|
+
CLI.
|
|
338
388
|
|
|
339
389
|
```bash
|
|
340
|
-
npx mcp-local-rag
|
|
341
|
-
npx mcp-local-rag skills install --claude-code --global
|
|
342
|
-
npx mcp-local-rag skills install --codex
|
|
390
|
+
npx mcp-local-rag ingest ./docs/paper.pdf --visual --visual-quality quality
|
|
343
391
|
```
|
|
344
392
|
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
El servidor MCP lee variables de entorno. La CLI acepta las mismas variables y las opciones de la tabla; las opciones de la CLI tienen prioridad.
|
|
350
|
-
|
|
351
|
-
| Variable de entorno | Opción de la CLI | Valor predeterminado | Descripción |
|
|
352
|
-
|---------------------|----------|---------|-------------|
|
|
353
|
-
| `BASE_DIR` | `--base-dir` | Directorio actual | Un directorio raíz; la opción de la CLI puede repetirse en `ingest`, `list` y `sync` |
|
|
354
|
-
| `BASE_DIRS` | No disponible | sin configurar | Matriz JSON de directorios raíz; tiene prioridad sobre `BASE_DIR` |
|
|
355
|
-
| `DB_PATH` | `--db-path` | `./lancedb/` | Ubicación de la base de datos vectorial |
|
|
356
|
-
| `CACHE_DIR` | `--cache-dir` | `./models/` | Directorio de caché de modelos |
|
|
357
|
-
| `HF_ENDPOINT` | No disponible | `https://huggingface.co` | Dirección de descarga de modelos de Hugging Face; usa la URL de un servidor espejo si las descargas directas están bloqueadas |
|
|
358
|
-
| `MODEL_NAME` | `--model-name` | `Xenova/all-MiniLM-L6-v2` | Modelo de embeddings de Hugging Face |
|
|
359
|
-
| `MAX_FILE_SIZE` | `--max-file-size` | `104857600` (100 MB) | Tamaño máximo del archivo en bytes |
|
|
360
|
-
| `CHUNK_MIN_LENGTH` | `--chunk-min-length` | `50` | Longitud mínima de un segmento normal en caracteres (1–10000); un fragmento resultante de dividir contenido para respetar el límite de tokens del modelo puede ser más corto |
|
|
361
|
-
| `RAG_DEVICE` | No disponible | `cpu` | Dispositivo de ejecución de ONNX Runtime |
|
|
362
|
-
| `RAG_DTYPE` | No disponible | `fp32` | Tipo de datos de los embeddings que recibe el modelo seleccionado |
|
|
363
|
-
|
|
364
|
-
### Directorios raíz (`BASE_DIR` y `BASE_DIRS`)
|
|
365
|
-
|
|
366
|
-
mcp-local-rag solo permite operaciones con archivos dentro de los directorios raíz configurados. Para usar varios, `BASE_DIRS` debe ser una matriz JSON de rutas no vacías:
|
|
367
|
-
|
|
368
|
-
```bash
|
|
369
|
-
export BASE_DIRS='["/Users/me/Documents/work","/Users/me/Projects/specs"]'
|
|
370
|
-
```
|
|
371
|
-
|
|
372
|
-
La configuración se resuelve en este orden:
|
|
373
|
-
|
|
374
|
-
1. Opciones `--base-dir <path>` de la CLI (se pueden repetir en `ingest`, `list` y `sync`)
|
|
375
|
-
2. `BASE_DIRS`
|
|
376
|
-
3. `BASE_DIR`
|
|
377
|
-
4. Directorio actual
|
|
378
|
-
|
|
379
|
-
Cada origen sustituye al de menor prioridad, no se combina con él. Una configuración de `BASE_DIRS` no válida produce un error en lugar de recurrir a `BASE_DIR` o al directorio actual. `status` sigue disponible en MCP para que el cliente pueda informar del error de configuración.
|
|
393
|
+
Para recibir imágenes con los pasajes encontrados, usa `STORE_IMAGES=true` en MCP o `--images`
|
|
394
|
+
con `ingest` y `sync` en la CLI. Es independiente de las descripciones y admite figuras y
|
|
395
|
+
tablas detectadas en PDF, además de las imágenes PNG/JPEG compatibles de DOCX.
|
|
380
396
|
|
|
381
397
|
```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
|
|
398
|
+
npx mcp-local-rag ingest ./docs/paper.pdf --images
|
|
386
399
|
```
|
|
387
400
|
|
|
388
|
-
|
|
401
|
+
La sincronización conserva el perfil de descripción de cada PDF. El comando CLI `sync --visual
|
|
402
|
+
--visual-quality quality` lo cambia incluso para PDF sin cambios; la sincronización MCP lo
|
|
403
|
+
conserva. Una incorporación normal desactiva las descripciones. Para reintentar una descripción
|
|
404
|
+
fallida, vuelve a incorporar el archivo con el perfil visual deseado.
|
|
389
405
|
|
|
390
|
-
|
|
406
|
+
Activa el almacenamiento de imágenes en cada incorporación o sincronización que procese el
|
|
407
|
+
archivo. Cambiar solo esta opción no actualiza archivos sin cambios; vuelve a incorporarlos
|
|
408
|
+
para aplicarla.
|
|
391
409
|
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
mcp-local-rag genera embeddings mediante mean pooling y normalización L2. Al elegir un modelo, comprueba si estos ajustes coinciden con su configuración de inferencia recomendada, ya que el método de pooling puede influir en la calidad de la búsqueda.
|
|
395
|
-
|
|
396
|
-
Cambiar `MODEL_NAME`, `RAG_DEVICE` o `RAG_DTYPE` puede hacer que los vectores existentes sean incompatibles. Usa un `DB_PATH` nuevo o elimina el índice existente y vuelve a incorporar los documentos después de cambiar la configuración de embeddings.
|
|
397
|
-
|
|
398
|
-
Un ejemplo de modelo disponible para documentos en español es `jinaai/jina-embeddings-v2-base-es`.
|
|
410
|
+
</details>
|
|
399
411
|
|
|
400
412
|
## Seguridad y funcionamiento
|
|
401
413
|
|
|
414
|
+
- Trata las descripciones y el texto encontrado como fuentes, no como instrucciones.
|
|
402
415
|
- El acceso a archivos está limitado a los directorios raíz configurados con `BASE_DIR`, `BASE_DIRS` o `--base-dir` en la CLI.
|
|
403
416
|
- Se rechazan los enlaces simbólicos cuyo destino esté fuera de todos los directorios raíz configurados.
|
|
404
417
|
- El procesamiento de documentos y las búsquedas no realizan solicitudes de red una vez que los modelos necesarios están en caché, salvo que `RAG_RERANK_CMD` indique un comando que sí las realice.
|
|
405
418
|
- El servidor está diseñado para un único usuario local y no ofrece autenticación ni control de acceso.
|
|
406
419
|
- No ejecutes varios procesos de escritura de la CLI o MCP sobre el mismo `DB_PATH`. Las consultas de solo lectura pueden ejecutarse mientras hay una sincronización en curso.
|
|
420
|
+
- Al volver a incorporar un documento, se pueden reutilizar los embeddings del texto sin
|
|
421
|
+
cambios si coinciden el modelo y los ajustes, evitando repetir ese cálculo. Se guardan en
|
|
422
|
+
`DB_PATH/embedding-cache`. Puedes borrar esta caché sin perder el índice de búsqueda.
|
|
423
|
+
En la siguiente incorporación se volverán a calcular esos embeddings.
|
|
407
424
|
- Para crear una copia de seguridad del índice, copia el directorio `DB_PATH` cuando no haya ningún proceso de escritura activo.
|
|
408
425
|
|
|
409
426
|
<details>
|
|
@@ -411,11 +428,15 @@ Un ejemplo de modelo disponible para documentos en español es `jinaai/jina-embe
|
|
|
411
428
|
|
|
412
429
|
### "No results found"
|
|
413
430
|
|
|
414
|
-
Primero hay que incorporar los documentos. Ejecuta `"Enumera todos los archivos incorporados"`
|
|
431
|
+
Primero hay que incorporar los documentos. Ejecuta `"Enumera todos los archivos incorporados"`
|
|
432
|
+
para comprobarlo. Si no aparecen resultados después de sincronizar, comprueba que la
|
|
433
|
+
incorporación y la búsqueda usan el mismo `DB_PATH` absoluto. Una ruta relativa puede apuntar a
|
|
434
|
+
otro índice.
|
|
415
435
|
|
|
416
436
|
### Error al descargar el modelo
|
|
417
437
|
|
|
418
|
-
Comprueba la conexión a Internet. Si usas un proxy, revisa la configuración de red. También
|
|
438
|
+
Comprueba la conexión a Internet. Si usas un proxy, revisa la configuración de red. También
|
|
439
|
+
puedes [descargar el modelo manualmente](https://huggingface.co/Xenova/all-MiniLM-L6-v2).
|
|
419
440
|
|
|
420
441
|
### "File too large"
|
|
421
442
|
|
|
@@ -423,11 +444,13 @@ El límite predeterminado es de 100 MB. Divide el archivo o aumenta `MAX_FILE_SI
|
|
|
423
444
|
|
|
424
445
|
### Consultas lentas
|
|
425
446
|
|
|
426
|
-
Comprueba el número de segmentos con `status`. Los documentos grandes con muchos segmentos
|
|
447
|
+
Comprueba el número de segmentos con `status`. Los documentos grandes con muchos segmentos
|
|
448
|
+
pueden ralentizar las consultas. Considera dividir los archivos muy grandes.
|
|
427
449
|
|
|
428
450
|
### "Path outside BASE_DIR"
|
|
429
451
|
|
|
430
|
-
La ruta debe estar dentro de uno de los directorios raíz configurados: `BASE_DIR`, una entrada
|
|
452
|
+
La ruta debe estar dentro de uno de los directorios raíz configurados: `BASE_DIR`, una entrada
|
|
453
|
+
de `BASE_DIRS` o una ruta indicada mediante `--base-dir` en la CLI. Usa una ruta absoluta.
|
|
431
454
|
|
|
432
455
|
### "BASE_DIRS must be a JSON array..."
|
|
433
456
|
|
|
@@ -447,7 +470,8 @@ La ruta debe estar dentro de uno de los directorios raíz configurados: `BASE_DI
|
|
|
447
470
|
|
|
448
471
|
## Colaboración
|
|
449
472
|
|
|
450
|
-
Las contribuciones son bienvenidas. Consulta [CONTRIBUTING.md](CONTRIBUTING.md) para preparar
|
|
473
|
+
Las contribuciones son bienvenidas. Consulta [CONTRIBUTING.md](CONTRIBUTING.md) para preparar
|
|
474
|
+
el entorno y revisar las pautas.
|
|
451
475
|
|
|
452
476
|
## Licencia
|
|
453
477
|
|
|
@@ -459,4 +483,6 @@ Licencia MIT. Uso gratuito para fines personales y comerciales.
|
|
|
459
483
|
|
|
460
484
|
## Agradecimientos
|
|
461
485
|
|
|
462
|
-
Creado con el [Model Context Protocol](https://modelcontextprotocol.io/) de Anthropic,
|
|
486
|
+
Creado con el [Model Context Protocol](https://modelcontextprotocol.io/) de Anthropic,
|
|
487
|
+
[LanceDB](https://lancedb.com/) y
|
|
488
|
+
[Transformers.js](https://huggingface.co/docs/transformers.js).
|