{"schemaVersion":1,"id":"https://lucioduran.com/es/projects/incremental-rag-index","url":"https://lucioduran.com/es/projects/incremental-rag-index","title":"Incremental RAG Index","description":"Índices RAG versionados en SQLite, reutilización de embeddings por hash y publicación atómica. Compara reconstrucción completa e incremental e inyecta cortes del proceso.","language":"es","datePublished":"2026-10-22","dateModified":"2026-10-22","contentFormat":"text/markdown","content":"[Proyectos](<https://lucioduran.com/es/projects>) / Incremental RAG Index\n\n# Incremental RAG Index\n\nÍndices RAG versionados en SQLite, reutilización de embeddings por hash y publicación atómica. Compara reconstrucción completa e incremental e inyecta cortes del proceso.\n\nAutor: [Lucio Durán](<https://lucioduran.com/es>) · Python 3.11.13 · Licencia: [MIT](<https://github.com/lucioduran/incremental-rag-index/blob/9de502f73b0992f79fafda8c079e4363fa9d8fa9/LICENSE>)\n\nFicha publicada: 2026-10-22 · Ficha actualizada: 2026-10-22\n\n[Repositorio](<https://github.com/lucioduran/incremental-rag-index>) · [Evidencia original](<https://raw.githubusercontent.com/lucioduran/incremental-rag-index/9de502f73b0992f79fafda8c079e4363fa9d8fa9/results/minilm.json>) · [Release v0.1.0](<https://github.com/lucioduran/incremental-rag-index/releases/tag/v0.1.0>)\n\n## Problema y utilidad para agentes\n\nUna actualización puede fallar después de extraer documentos o calcular embeddings. El lector necesita una versión completa, y un reintento después de perder la confirmación no debe duplicar versiones ni restaurar documentos borrados.\n\nEl índice conserva versiones y un diario de cambios. Se puede examinar qué cambió, interrumpir la publicación y comparar la recuperación con una reconstrucción completa.\n\n## Arquitectura\n\n1. **Contenido identificado por hash.** Recibe el corpus completo como mapa de IDs y textos. Reutiliza embeddings de contenido idéntico, invalida la reutilización al cambiar el adaptador y elimina IDs ausentes de la versión actual.\n2. **Publicación transaccional.** SQLite confirma una versión completa y su diario de forma atómica. Un escritor basado en una versión obsoleta es rechazado.\n3. **Recuperación observable.** Las salidas del proceso antes y después del commit dejan evidencia de versión, integridad y reintentos. Los informes comparan documentos, vectores, raíces y rankings.\n\n- [Diseño y metodología](<https://github.com/lucioduran/incremental-rag-index/blob/9de502f73b0992f79fafda8c079e4363fa9d8fa9/docs/design.md>)\n\n## Qué demuestra\n\n- Coherencia entre actualizaciones incrementales y reconstrucciones completas.\n- Diseño de publicación atómica, control de escritores y reintentos tras una confirmación perdida.\n- Separación entre equivalencia del índice y calidad de recuperación.\n\n## Resultados publicados\n\nDos experimentos publicados: adaptador determinista y MiniLM local. Cada uno cubre cinco escenarios y cuatro puntos de interrupción. La tabla muestra MiniLM con seis documentos sintéticos, Python 3.11.13, SQLite 3.50.4 y dos hilos de CPU.\n\nDocumentos, vectores, raíces y rankings coinciden exactamente entre actualización incremental y reconstrucción completa en los cinco escenarios de ambos adaptadores. Los tiempos excluyen la carga del modelo y el embedding de la consulta.\n\n### Embeddings calculados y tiempo de actualización\n\n| Escenario | Embeddings incrementales | Embeddings completos | Incremental (ms) | Completo (ms) |\n| --- | --- | --- | --- | --- |\n| Carga inicial | 6 | 6 | 88.6 | 98.0 |\n| Editar, agregar y borrar | 2 | 6 | 40.2 | 92.8 |\n| Renombrar un documento | 0 | 6 | 9.8 | 96.2 |\n| Repetir el mismo corpus | 0 | 6 | 7.8 | 86.0 |\n| Vaciar el corpus | 0 | 0 | 7.0 | 3.3 |\n\nLas tres interrupciones anteriores al commit conservaron la versión vieja; la posterior conservó la nueva. El reintento posterior no creó otra versión. Las cuatro bases recuperadas por adaptador pasaron el control de integridad de SQLite.\n\nLos IDs borrados desaparecen de la versión actual y de sus búsquedas. Las versiones históricas retienen esos documentos: no se trata de borrado físico. [Diseño y metodología](<https://github.com/lucioduran/incremental-rag-index/blob/9de502f73b0992f79fafda8c079e4363fa9d8fa9/docs/design.md>).\n\n## Reproducir\n\nLa biblioteca, CLI y replay usan Python 3.11 o posterior sin dependencias de modelos. La reproducción neural descarga MiniLM y utiliza las dependencias del entorno medido.\n\nUsá rutas de salida nuevas y ejecutá los experimentos en serie. Los comandos usan shell POSIX; el lock de dependencias corresponde a Intel macOS. El adaptador predeterminado es hashing determinista para verificar almacenamiento, no un encoder semántico.\n\n### Revisar la evidencia guardada\n\n```\ngit clone https://github.com/lucioduran/incremental-rag-index.git\ncd incremental-rag-index\ngit checkout 9de502f73b0992f79fafda8c079e4363fa9d8fa9\npython -m experiments.verify results/deterministic.json\npython -m experiments.verify results/minilm.json\n```\n\n### Repetir la medición local\n\n```\npython3.11 -m venv .venv\n. .venv/bin/activate\npython -m pip install -r requirements-local.lock\npython -m experiments.download --output build/minilm\nOMP_NUM_THREADS=2 MKL_NUM_THREADS=2 TOKENIZERS_PARALLELISM=false HF_HUB_OFFLINE=1 TRANSFORMERS_OFFLINE=1 python -m experiments.reproduce --model build/minilm --output build/minilm-report.json\npython -m experiments.verify build/minilm-report.json\npython -m experiments.reproduce --output build/deterministic-report.json\npython -m experiments.verify build/deterministic-report.json\n```\n\n## Alcance y límites\n\n- Hashing del corpus y escritura de snapshots completos siguen siendo lineales. No hay compacción, índice ANN ni crawler incremental.\n- Seis documentos y una observación de tiempo por escenario no establecen mejoras de producción. No se evaluaron cortes eléctricos, disco lleno ni carga concurrente de producción.\n- Las garantías dependen de SQLite y del sistema de archivos local. Los lectores que ya poseen una versión y el historial conservan datos anteriores.\n- MiniLM limita documentos a 256 tokens. Los hashes detectan inconsistencias, pero no autentican datos frente a un atacante con acceso de escritura.\n\n- [Arquitectura RAG: coherencia y actualización del índice](<https://lucioduran.com/es/blog/rag-pipeline-architecture-chunking-reranking-evaluation>)\n\n## Fuentes y revisión\n\nLos valores de esta ficha provienen del informe enlazado. No son una medición en vivo. El informe conserva la revisión ejecutada; la revisión consultada incluye la publicación posterior de ese informe.\n\n- Revisión consultada: [` 9de502f73b0992f79fafda8c079e4363fa9d8fa9 `](<https://github.com/lucioduran/incremental-rag-index/commit/9de502f73b0992f79fafda8c079e4363fa9d8fa9>)\n- Revisión registrada por el experimento: [` 37559ac9cfd8c039dbbf884c8814f2e4018e311b `](<https://github.com/lucioduran/incremental-rag-index/commit/37559ac9cfd8c039dbbf884c8814f2e4018e311b>)\n- Fecha del informe (UTC): 2026-10-21T22:54:50.852898+00:00\n- Release publicada: [v0.1.0](<https://github.com/lucioduran/incremental-rag-index/releases/tag/v0.1.0>) · 2026-10-21T22:59:53Z\n\n- [README y uso](<https://github.com/lucioduran/incremental-rag-index/blob/9de502f73b0992f79fafda8c079e4363fa9d8fa9/README.md>)\n- [Evidencia original](<https://raw.githubusercontent.com/lucioduran/incremental-rag-index/9de502f73b0992f79fafda8c079e4363fa9d8fa9/results/minilm.json>)\n- [Evidencia del adaptador determinista](<https://raw.githubusercontent.com/lucioduran/incremental-rag-index/9de502f73b0992f79fafda8c079e4363fa9d8fa9/results/deterministic.json>)\n- [Diseño y metodología](<https://github.com/lucioduran/incremental-rag-index/blob/9de502f73b0992f79fafda8c079e4363fa9d8fa9/docs/design.md>)\n- [Datos y procedencia](<https://raw.githubusercontent.com/lucioduran/incremental-rag-index/9de502f73b0992f79fafda8c079e4363fa9d8fa9/examples/initial.json>)\n- [Modelos, revisiones y licencias](<https://github.com/lucioduran/incremental-rag-index/blob/9de502f73b0992f79fafda8c079e4363fa9d8fa9/docs/model-notices.md>)\n- [Dependencias del entorno medido](<https://github.com/lucioduran/incremental-rag-index/blob/9de502f73b0992f79fafda8c079e4363fa9d8fa9/requirements-local.lock>)\n- [Licencia MIT](<https://github.com/lucioduran/incremental-rag-index/blob/9de502f73b0992f79fafda8c079e4363fa9d8fa9/LICENSE>)","headings":[{"level":1,"text":"Incremental RAG Index","url":"https://lucioduran.com/es/projects/incremental-rag-index#title"},{"level":2,"text":"Problema y utilidad para agentes","url":"https://lucioduran.com/es/projects/incremental-rag-index#problem"},{"level":2,"text":"Arquitectura","url":"https://lucioduran.com/es/projects/incremental-rag-index#architecture"},{"level":2,"text":"Qué demuestra","url":"https://lucioduran.com/es/projects/incremental-rag-index#demonstrates"},{"level":2,"text":"Resultados publicados","url":"https://lucioduran.com/es/projects/incremental-rag-index#results"},{"level":3,"text":"Embeddings calculados y tiempo de actualización","url":"https://lucioduran.com/es/projects/incremental-rag-index#results-updates"},{"level":2,"text":"Reproducir","url":"https://lucioduran.com/es/projects/incremental-rag-index#reproduce"},{"level":3,"text":"Revisar la evidencia guardada","url":"https://lucioduran.com/es/projects/incremental-rag-index#reproduce-replay"},{"level":3,"text":"Repetir la medición local","url":"https://lucioduran.com/es/projects/incremental-rag-index#reproduce-inference"},{"level":2,"text":"Alcance y límites","url":"https://lucioduran.com/es/projects/incremental-rag-index#scope"},{"level":2,"text":"Fuentes y revisión","url":"https://lucioduran.com/es/projects/incremental-rag-index#sources"}],"sections":[{"heading":"Incremental RAG Index","level":1,"url":"https://lucioduran.com/es/projects/incremental-rag-index","content":"[Proyectos](<https://lucioduran.com/es/projects>) / Incremental RAG Index"},{"heading":"Incremental RAG Index","level":1,"url":"https://lucioduran.com/es/projects/incremental-rag-index#title","content":"Índices RAG versionados en SQLite, reutilización de embeddings por hash y publicación atómica. Compara reconstrucción completa e incremental e inyecta cortes del proceso.\n\nAutor: [Lucio Durán](<https://lucioduran.com/es>) · Python 3.11.13 · Licencia: [MIT](<https://github.com/lucioduran/incremental-rag-index/blob/9de502f73b0992f79fafda8c079e4363fa9d8fa9/LICENSE>)\n\nFicha publicada: 2026-10-22 · Ficha actualizada: 2026-10-22\n\n[Repositorio](<https://github.com/lucioduran/incremental-rag-index>) · [Evidencia original](<https://raw.githubusercontent.com/lucioduran/incremental-rag-index/9de502f73b0992f79fafda8c079e4363fa9d8fa9/results/minilm.json>) · [Release v0.1.0](<https://github.com/lucioduran/incremental-rag-index/releases/tag/v0.1.0>)"},{"heading":"Problema y utilidad para agentes","level":2,"url":"https://lucioduran.com/es/projects/incremental-rag-index#problem","content":"Una actualización puede fallar después de extraer documentos o calcular embeddings. El lector necesita una versión completa, y un reintento después de perder la confirmación no debe duplicar versiones ni restaurar documentos borrados.\n\nEl índice conserva versiones y un diario de cambios. Se puede examinar qué cambió, interrumpir la publicación y comparar la recuperación con una reconstrucción completa."},{"heading":"Arquitectura","level":2,"url":"https://lucioduran.com/es/projects/incremental-rag-index#architecture","content":"1. **Contenido identificado por hash.** Recibe el corpus completo como mapa de IDs y textos. Reutiliza embeddings de contenido idéntico, invalida la reutilización al cambiar el adaptador y elimina IDs ausentes de la versión actual.\n2. **Publicación transaccional.** SQLite confirma una versión completa y su diario de forma atómica. Un escritor basado en una versión obsoleta es rechazado.\n3. **Recuperación observable.** Las salidas del proceso antes y después del commit dejan evidencia de versión, integridad y reintentos. Los informes comparan documentos, vectores, raíces y rankings.\n\n- [Diseño y metodología](<https://github.com/lucioduran/incremental-rag-index/blob/9de502f73b0992f79fafda8c079e4363fa9d8fa9/docs/design.md>)"},{"heading":"Qué demuestra","level":2,"url":"https://lucioduran.com/es/projects/incremental-rag-index#demonstrates","content":"- Coherencia entre actualizaciones incrementales y reconstrucciones completas.\n- Diseño de publicación atómica, control de escritores y reintentos tras una confirmación perdida.\n- Separación entre equivalencia del índice y calidad de recuperación."},{"heading":"Resultados publicados","level":2,"url":"https://lucioduran.com/es/projects/incremental-rag-index#results","content":"Dos experimentos publicados: adaptador determinista y MiniLM local. Cada uno cubre cinco escenarios y cuatro puntos de interrupción. La tabla muestra MiniLM con seis documentos sintéticos, Python 3.11.13, SQLite 3.50.4 y dos hilos de CPU.\n\nDocumentos, vectores, raíces y rankings coinciden exactamente entre actualización incremental y reconstrucción completa en los cinco escenarios de ambos adaptadores. Los tiempos excluyen la carga del modelo y el embedding de la consulta."},{"heading":"Embeddings calculados y tiempo de actualización","level":3,"url":"https://lucioduran.com/es/projects/incremental-rag-index#results-updates","content":"| Escenario | Embeddings incrementales | Embeddings completos | Incremental (ms) | Completo (ms) |\n| --- | --- | --- | --- | --- |\n| Carga inicial | 6 | 6 | 88.6 | 98.0 |\n| Editar, agregar y borrar | 2 | 6 | 40.2 | 92.8 |\n| Renombrar un documento | 0 | 6 | 9.8 | 96.2 |\n| Repetir el mismo corpus | 0 | 6 | 7.8 | 86.0 |\n| Vaciar el corpus | 0 | 0 | 7.0 | 3.3 |\n\nLas tres interrupciones anteriores al commit conservaron la versión vieja; la posterior conservó la nueva. El reintento posterior no creó otra versión. Las cuatro bases recuperadas por adaptador pasaron el control de integridad de SQLite.\n\nLos IDs borrados desaparecen de la versión actual y de sus búsquedas. Las versiones históricas retienen esos documentos: no se trata de borrado físico. [Diseño y metodología](<https://github.com/lucioduran/incremental-rag-index/blob/9de502f73b0992f79fafda8c079e4363fa9d8fa9/docs/design.md>)."},{"heading":"Reproducir","level":2,"url":"https://lucioduran.com/es/projects/incremental-rag-index#reproduce","content":"La biblioteca, CLI y replay usan Python 3.11 o posterior sin dependencias de modelos. La reproducción neural descarga MiniLM y utiliza las dependencias del entorno medido.\n\nUsá rutas de salida nuevas y ejecutá los experimentos en serie. Los comandos usan shell POSIX; el lock de dependencias corresponde a Intel macOS. El adaptador predeterminado es hashing determinista para verificar almacenamiento, no un encoder semántico."},{"heading":"Revisar la evidencia guardada","level":3,"url":"https://lucioduran.com/es/projects/incremental-rag-index#reproduce-replay","content":"```\ngit clone https://github.com/lucioduran/incremental-rag-index.git\ncd incremental-rag-index\ngit checkout 9de502f73b0992f79fafda8c079e4363fa9d8fa9\npython -m experiments.verify results/deterministic.json\npython -m experiments.verify results/minilm.json\n```"},{"heading":"Repetir la medición local","level":3,"url":"https://lucioduran.com/es/projects/incremental-rag-index#reproduce-inference","content":"```\npython3.11 -m venv .venv\n. .venv/bin/activate\npython -m pip install -r requirements-local.lock\npython -m experiments.download --output build/minilm\nOMP_NUM_THREADS=2 MKL_NUM_THREADS=2 TOKENIZERS_PARALLELISM=false HF_HUB_OFFLINE=1 TRANSFORMERS_OFFLINE=1 python -m experiments.reproduce --model build/minilm --output build/minilm-report.json\npython -m experiments.verify build/minilm-report.json\npython -m experiments.reproduce --output build/deterministic-report.json\npython -m experiments.verify build/deterministic-report.json\n```"},{"heading":"Alcance y límites","level":2,"url":"https://lucioduran.com/es/projects/incremental-rag-index#scope","content":"- Hashing del corpus y escritura de snapshots completos siguen siendo lineales. No hay compacción, índice ANN ni crawler incremental.\n- Seis documentos y una observación de tiempo por escenario no establecen mejoras de producción. No se evaluaron cortes eléctricos, disco lleno ni carga concurrente de producción.\n- Las garantías dependen de SQLite y del sistema de archivos local. Los lectores que ya poseen una versión y el historial conservan datos anteriores.\n- MiniLM limita documentos a 256 tokens. Los hashes detectan inconsistencias, pero no autentican datos frente a un atacante con acceso de escritura.\n\n- [Arquitectura RAG: coherencia y actualización del índice](<https://lucioduran.com/es/blog/rag-pipeline-architecture-chunking-reranking-evaluation>)"},{"heading":"Fuentes y revisión","level":2,"url":"https://lucioduran.com/es/projects/incremental-rag-index#sources","content":"Los valores de esta ficha provienen del informe enlazado. No son una medición en vivo. El informe conserva la revisión ejecutada; la revisión consultada incluye la publicación posterior de ese informe.\n\n- Revisión consultada: [` 9de502f73b0992f79fafda8c079e4363fa9d8fa9 `](<https://github.com/lucioduran/incremental-rag-index/commit/9de502f73b0992f79fafda8c079e4363fa9d8fa9>)\n- Revisión registrada por el experimento: [` 37559ac9cfd8c039dbbf884c8814f2e4018e311b `](<https://github.com/lucioduran/incremental-rag-index/commit/37559ac9cfd8c039dbbf884c8814f2e4018e311b>)\n- Fecha del informe (UTC): 2026-10-21T22:54:50.852898+00:00\n- Release publicada: [v0.1.0](<https://github.com/lucioduran/incremental-rag-index/releases/tag/v0.1.0>) · 2026-10-21T22:59:53Z\n\n- [README y uso](<https://github.com/lucioduran/incremental-rag-index/blob/9de502f73b0992f79fafda8c079e4363fa9d8fa9/README.md>)\n- [Evidencia original](<https://raw.githubusercontent.com/lucioduran/incremental-rag-index/9de502f73b0992f79fafda8c079e4363fa9d8fa9/results/minilm.json>)\n- [Evidencia del adaptador determinista](<https://raw.githubusercontent.com/lucioduran/incremental-rag-index/9de502f73b0992f79fafda8c079e4363fa9d8fa9/results/deterministic.json>)\n- [Diseño y metodología](<https://github.com/lucioduran/incremental-rag-index/blob/9de502f73b0992f79fafda8c079e4363fa9d8fa9/docs/design.md>)\n- [Datos y procedencia](<https://raw.githubusercontent.com/lucioduran/incremental-rag-index/9de502f73b0992f79fafda8c079e4363fa9d8fa9/examples/initial.json>)\n- [Modelos, revisiones y licencias](<https://github.com/lucioduran/incremental-rag-index/blob/9de502f73b0992f79fafda8c079e4363fa9d8fa9/docs/model-notices.md>)\n- [Dependencias del entorno medido](<https://github.com/lucioduran/incremental-rag-index/blob/9de502f73b0992f79fafda8c079e4363fa9d8fa9/requirements-local.lock>)\n- [Licencia MIT](<https://github.com/lucioduran/incremental-rag-index/blob/9de502f73b0992f79fafda8c079e4363fa9d8fa9/LICENSE>)"}],"links":[{"text":"Proyectos","url":"https://lucioduran.com/es/projects"},{"text":"Lucio Durán","url":"https://lucioduran.com/es"},{"text":"MIT","url":"https://github.com/lucioduran/incremental-rag-index/blob/9de502f73b0992f79fafda8c079e4363fa9d8fa9/LICENSE"},{"text":"Repositorio","url":"https://github.com/lucioduran/incremental-rag-index"},{"text":"Evidencia original","url":"https://raw.githubusercontent.com/lucioduran/incremental-rag-index/9de502f73b0992f79fafda8c079e4363fa9d8fa9/results/minilm.json"},{"text":"Release v0.1.0","url":"https://github.com/lucioduran/incremental-rag-index/releases/tag/v0.1.0"},{"text":"Diseño y metodología","url":"https://github.com/lucioduran/incremental-rag-index/blob/9de502f73b0992f79fafda8c079e4363fa9d8fa9/docs/design.md"},{"text":"Arquitectura RAG: coherencia y actualización del índice","url":"https://lucioduran.com/es/blog/rag-pipeline-architecture-chunking-reranking-evaluation"},{"text":"9de502f73b0992f79fafda8c079e4363fa9d8fa9","url":"https://github.com/lucioduran/incremental-rag-index/commit/9de502f73b0992f79fafda8c079e4363fa9d8fa9"},{"text":"37559ac9cfd8c039dbbf884c8814f2e4018e311b","url":"https://github.com/lucioduran/incremental-rag-index/commit/37559ac9cfd8c039dbbf884c8814f2e4018e311b"},{"text":"v0.1.0","url":"https://github.com/lucioduran/incremental-rag-index/releases/tag/v0.1.0"},{"text":"README y uso","url":"https://github.com/lucioduran/incremental-rag-index/blob/9de502f73b0992f79fafda8c079e4363fa9d8fa9/README.md"},{"text":"Evidencia del adaptador determinista","url":"https://raw.githubusercontent.com/lucioduran/incremental-rag-index/9de502f73b0992f79fafda8c079e4363fa9d8fa9/results/deterministic.json"},{"text":"Datos y procedencia","url":"https://raw.githubusercontent.com/lucioduran/incremental-rag-index/9de502f73b0992f79fafda8c079e4363fa9d8fa9/examples/initial.json"},{"text":"Modelos, revisiones y licencias","url":"https://github.com/lucioduran/incremental-rag-index/blob/9de502f73b0992f79fafda8c079e4363fa9d8fa9/docs/model-notices.md"},{"text":"Dependencias del entorno medido","url":"https://github.com/lucioduran/incremental-rag-index/blob/9de502f73b0992f79fafda8c079e4363fa9d8fa9/requirements-local.lock"},{"text":"Licencia MIT","url":"https://github.com/lucioduran/incremental-rag-index/blob/9de502f73b0992f79fafda8c079e4363fa9d8fa9/LICENSE"}],"structuredData":[{"@context":"https://schema.org","@graph":[{"@type":"Person","@id":"https://lucioduran.com/#person","name":"Lucio Durán","url":"https://lucioduran.com/"},{"@type":"WebSite","@id":"https://lucioduran.com/#website","url":"https://lucioduran.com/","name":"Lucio Durán","inLanguage":["en","es"],"publisher":{"@id":"https://lucioduran.com/#person"}},{"@type":"WebPage","@id":"https://lucioduran.com/es/projects/incremental-rag-index#page","url":"https://lucioduran.com/es/projects/incremental-rag-index","name":"Incremental RAG Index","description":"Índices RAG versionados en SQLite, reutilización de embeddings por hash y publicación atómica. Compara reconstrucción completa e incremental e inyecta cortes del proceso.","inLanguage":"es","author":{"@id":"https://lucioduran.com/#person"},"publisher":{"@id":"https://lucioduran.com/#person"},"isPartOf":{"@id":"https://lucioduran.com/#website"},"isAccessibleForFree":true,"mainEntity":{"@id":"https://lucioduran.com/projects/incremental-rag-index#software"},"datePublished":"2026-10-22","dateModified":"2026-10-22","breadcrumb":{"@id":"https://lucioduran.com/es/projects/incremental-rag-index#breadcrumb"}},{"@type":"SoftwareSourceCode","@id":"https://lucioduran.com/projects/incremental-rag-index#software","name":"Incremental RAG Index","description":"Índices RAG versionados en SQLite, reutilización de embeddings por hash y publicación atómica. Compara reconstrucción completa e incremental e inyecta cortes del proceso.","url":"https://lucioduran.com/es/projects/incremental-rag-index","codeRepository":"https://github.com/lucioduran/incremental-rag-index","programmingLanguage":"Python","runtimePlatform":"Python 3.11.13","license":"https://github.com/lucioduran/incremental-rag-index/blob/9de502f73b0992f79fafda8c079e4363fa9d8fa9/LICENSE","version":"v0.1.0","identifier":{"@type":"PropertyValue","propertyID":"git-commit","value":"9de502f73b0992f79fafda8c079e4363fa9d8fa9"},"author":{"@type":"Person","@id":"https://lucioduran.com/#person","name":"Lucio Durán","url":"https://lucioduran.com"},"isAccessibleForFree":true,"citation":["https://github.com/lucioduran/incremental-rag-index/blob/9de502f73b0992f79fafda8c079e4363fa9d8fa9/README.md","https://raw.githubusercontent.com/lucioduran/incremental-rag-index/9de502f73b0992f79fafda8c079e4363fa9d8fa9/results/minilm.json","https://raw.githubusercontent.com/lucioduran/incremental-rag-index/9de502f73b0992f79fafda8c079e4363fa9d8fa9/results/deterministic.json","https://github.com/lucioduran/incremental-rag-index/blob/9de502f73b0992f79fafda8c079e4363fa9d8fa9/docs/design.md","https://raw.githubusercontent.com/lucioduran/incremental-rag-index/9de502f73b0992f79fafda8c079e4363fa9d8fa9/examples/initial.json","https://github.com/lucioduran/incremental-rag-index/blob/9de502f73b0992f79fafda8c079e4363fa9d8fa9/docs/model-notices.md","https://github.com/lucioduran/incremental-rag-index/blob/9de502f73b0992f79fafda8c079e4363fa9d8fa9/requirements-local.lock","https://github.com/lucioduran/incremental-rag-index/releases/tag/v0.1.0"],"publisher":{"@id":"https://lucioduran.com/#person"},"mainEntityOfPage":{"@id":"https://lucioduran.com/es/projects/incremental-rag-index#page"}},{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Proyectos","item":"https://lucioduran.com/es/projects"},{"@type":"ListItem","position":2,"name":"Incremental RAG Index","item":"https://lucioduran.com/es/projects/incremental-rag-index"}],"@id":"https://lucioduran.com/es/projects/incremental-rag-index#breadcrumb"}]}],"contentHash":"77a32421d25bdbcff92f975c5d7f0853b2dd3341024c88cbca223bd616e20ad1","provenance":{"method":"Deterministic serialization of the server-rendered main element","source":"https://lucioduran.com/es/projects/incremental-rag-index","hashAlgorithm":"sha256","hashScope":"JSON document fields before contentHash and provenance","sourceHTMLBytes":46733,"contentBytes":7919}}
