215 lines
13 KiB
Markdown
215 lines
13 KiB
Markdown
# Historial de sesiones
|
|
|
|
**Proyecto:** Workspace de tools IA para empresas
|
|
**Modulo:** RAG
|
|
**Ultima actualizacion:** 2026-09-08
|
|
**Ultima modificacion por:** Agente RAG 2
|
|
**Estado:** Activo
|
|
|
|
---
|
|
|
|
## Registro de sesion
|
|
|
|
### 2026-04-06 - Agente RAG 2
|
|
|
|
**Modelo:** gpt-5.4
|
|
**Conversation ID:** `N/D (OpenCode no lo expone en este entorno)`
|
|
**Session ID OpenCode:** `ses_29bdbd003ffeLrLjUlFgnp08Y7`
|
|
**Directorio:** `/home/pancho/Documentos/Empresa/Desarrollo/IA`
|
|
|
|
**Rol asumido:**
|
|
Dar continuidad al RAG en `RAG/` a partir del estado actual documentado.
|
|
|
|
**Contexto recuperado:**
|
|
- No existe `README` en la raiz de `RAG/`.
|
|
- La base documental principal revisada ha sido:
|
|
- `docs/SISTEMA_RAG_BASE.md`
|
|
- `docs/BITACORA_DISENO_RAG.md`
|
|
- `docs/METODOLOGIA_ITERACION_Y_REDEPLOY.md`
|
|
- `docs/PLAYGROUND.md`
|
|
- `docs/LOGS_EVALUACION.md`
|
|
- La v1 figura como operativa y desplegada en `https://rag.por-correo.com`.
|
|
- Endpoints documentados como operativos: `GET /health`, `POST /ingest`, `POST /retrieve`, `POST /answer`.
|
|
- El playground y los logs de evaluacion aparecen implementados en codigo y pendientes de redeploy segun la documentacion.
|
|
|
|
**Criterio de continuidad asumido:**
|
|
- Trabajar desde el estado ya documentado, sin redescubrir decisiones nucleares de la v1.
|
|
- Mantener actualizada la documentacion relevante cuando se hagan cambios reales.
|
|
- Usar este historial para dejar trazabilidad entre sesiones y agentes.
|
|
|
|
**Trabajo realizado en esta sesion:**
|
|
- Auditoria inicial de documentacion, codigo y estado observable del modulo `RAG/`.
|
|
- Registro de un reporte temporal de auditoria de modelo en `RAG/docs/TEMP_AUDITORIA_MODELO_PRE_CLEANUP.md` para comparacion futura.
|
|
- Implementacion de ayuda visual en la zona de `Bootstrap` del playground.
|
|
- Añadidos tooltip y `aria-label` en `Cargar bootstrap`, `Reemplazar contexto`, `Vaciar contexto`, `Preset docs`, `Preset RAG docs` y `Preset codigo`.
|
|
- Actualizacion de `RAG/docs/PLAYGROUND.md` y `RAG/docs/TEXTOS_AYUDA_PLAYGROUND.md` para reflejar la mejora.
|
|
- Implementacion de la pestaña Limpieza en el playground y soporte en el backend (`POST /cleanup`) para borrado seguro de contextos ya ingeridos.
|
|
- Limpieza ejecutada exitosamente sobre el `scope` del código fuente antiguo (`RAG/src`).
|
|
- Reingesta del directorio `RAG/src` con el código actualizado.
|
|
- Documento de seguimiento `RAG/docs/TASK_LIMPIEZA.md` y documentacion API `RAG/docs/API_RAG.md` actualizados.
|
|
- Comparacion de auditorias del modelo (pre y post cleanup) documentada en `RAG/docs/TEMP_AUDITORIA_MODELO_PRE_CLEANUP.md`, confirmando una ganancia clara en nitidez y precision del RAG al evaluar el codigo.
|
|
- Implementacion de ingesta directa de carpetas locales desde el playground: el navegador empaqueta la carpeta en un `.zip` en memoria (filtrando `node_modules`, `dist`, `.git`, etc. con logica nativa) y el backend usa `adm-zip` para extraerla de forma segura en un directorio temporal antes de la ingesta.
|
|
- Correccion en `IngestService` (`resolveInputFiles` y `normalizeDocumentKey`) para escanear archivos desde la ruta temporal extraída (`readPath`) en lugar del identificador lógico al subir carpetas completas, evitando error de `ENOENT`.
|
|
- Revision inicial del corpus `/_imports/gstreamer-rag-text` como futura base documental especializada para GStreamer.
|
|
- Creacion de `RAG/docs/TASK_INGESTA_GSTREAMER.md` con el plan operativo para ingerirlo bajo un scope unico, validar retrieval y prepararlo para uso posterior con modelo local.
|
|
- Diagnostico y correccion del fallo real de ingesta masiva en corpus documentales: algunos ficheros generaban chunks sobredimensionados que acababan rompiendo la llamada a embeddings.
|
|
- Correccion aplicada en `src/modules/process/chunking.ts` y endurecimiento defensivo de `src/modules/embeddings/provider.ts`.
|
|
- Ingesta completada del corpus GStreamer bajo el scope unico `gstreamer-official` / `corpus:gstreamer:official:v1` con `3117` documentos y `22003` chunks.
|
|
- Validacion funcional en produccion mediante `GET /sources` y `POST /retrieve` para bootstrap y consulta especifica sobre request pads.
|
|
- Creacion y configuracion del agente primario `gstreamer` en OpenCode para diagnostico tecnico sobre proyectos con GStreamer, priorizando el scope `gstreamer-official` del RAG.
|
|
- Documentacion del agente en `RAG/docs/AGENTE_GSTREAMER.md`.
|
|
- Ajuste del agente `gstreamer` para asumir por defecto el scope `gstreamer-official` sin que el usuario tenga que mencionarlo expresamente en cada prompt.
|
|
- Creacion de un paquete portable para recrear el agente `gstreamer` en otro PC: `RAG/docs/AGENTE_GSTREAMER_OPENCODE.jsonc` y `RAG/docs/INSTALAR_AGENTE_GSTREAMER_EN_OTRO_PC.md`.
|
|
- Conexion operativa real del agente `gstreamer` al RAG remoto `https://rag.por-correo.com` mediante scripts dedicados fijados al scope `gstreamer-official`.
|
|
- Soporte explicito para flujos de `bootstrap` y `precarga` dirigida antes de revisar codigo.
|
|
- Ajuste del paquete portable del agente para usar placeholder `__IA_WORKSPACE_ROOT__` y poder reinstalarlo correctamente en otros equipos sin depender de rutas locales de este PC.
|
|
- Creacion de `RAG/agente_gstreamer/` como carpeta autocontenida para llevar el agente a otro PC con configuracion, scripts e instrucciones en un solo paquete.
|
|
|
|
---
|
|
|
|
### 2026-09-08 - Agente RAG 2
|
|
|
|
**Modelo:** gpt-5.6-sol
|
|
**Session ID OpenCode:** `ses_29bdbd003ffeLrLjUlFgnp08Y7`
|
|
**Directorio:** `/home/pancho/Documentos/Empresa/Desarrollo/IA/RAG`
|
|
|
|
**Trabajo realizado:**
|
|
- Auditoria de las 14 operaciones HTTP existentes y de sus contratos reales.
|
|
- Implementacion de `GET /help` y `GET /openapi.json`, dejando 16 operaciones documentadas.
|
|
- Creacion de un contrato OpenAPI 3.1.1 con esquemas, parametros, respuestas, errores y ejemplos.
|
|
- Reescritura de `docs/API_RAG.md` como guia operativa enlazada al contrato OpenAPI.
|
|
- Correccion del estado obsoleto de playground, logs, cleanup, stack y documentos de diseño.
|
|
- Correccion de la metodologia: local se limita a compilacion y comprobaciones estaticas; los flujos HTTP se validan tras publicar en produccion.
|
|
- Validacion satisfactoria con `npm run check`, `npm run build`, comprobacion de referencias OpenAPI y contraste automatico entre rutas implementadas y documentadas.
|
|
- Deteccion del build context obsoleto `/RAG` en EasyPanel tras la migracion del repositorio.
|
|
- Ajuste por el usuario de `Ruta de compilacion` a `/` y despliegue satisfactorio del commit `f1cd87c`.
|
|
- Validacion en produccion de health, Qdrant, playground, sources, `/help` y `/openapi.json`.
|
|
- Regresion satisfactoria de retrieval sobre FacturaTech: 6 resultados, cero fugas de scope y coincidencias `504` en los primeros resultados.
|
|
- Deteccion posterior de que `/help` enlazaba OpenAPI pero no explicaba para que debia consultarse.
|
|
- Incorporacion de una instruccion explicita en `/help` sobre parametros, cuerpos, respuestas, errores y ejemplos disponibles en `/openapi.json`.
|
|
- Deploy del ajuste `953ff25` y revalidacion satisfactoria de `/help`, `/openapi.json` y `/health` en produccion.
|
|
|
|
**Estado final:**
|
|
- Pendiente 1 completado y validado definitivamente en `https://rag.por-correo.com`.
|
|
- La API dispone de descubrimiento rapido y contrato OpenAPI para sus 16 operaciones.
|
|
- Siguiente prioridad: ciclo de vida del conocimiento.
|
|
|
|
---
|
|
|
|
### 2026-09-08 - Agente RAG 2
|
|
|
|
**Modelo:** gpt-5.6-sol
|
|
**Session ID OpenCode:** `ses_29bdbd003ffeLrLjUlFgnp08Y7`
|
|
**Directorio:** `/home/pancho/Documentos/Empresa/Desarrollo/IA/RAG`
|
|
|
|
**Subagentes de analisis:**
|
|
- `Subagente Extraccion de versiones PaddleOCR`: contraste de versiones PyPI compatibles para el benchmark CPU.
|
|
- `Subagente Validacion del ciclo de vida`: revision adversarial del catalogo PostgreSQL y versionado Qdrant.
|
|
- `Subagente Validacion OCR`: revision adversarial de deteccion, servicio privado, quality gates y revision humana.
|
|
- `Subagente Auditoria de claridad del contrato`: detecto contradicciones de hashes, idempotencia, migracion y revision.
|
|
- `Subagente Revalidacion de ejecutabilidad`: detecto bloqueos restantes en metadata, concurrencia y artefactos.
|
|
- `Subagente Revalidacion de resiliencia`: reviso carreras, barreras de migracion y recuperacion de jobs.
|
|
- `Subagente Revision final del contrato`: verifico y cerro la secuencia segura de rollback legacy.
|
|
|
|
**Trabajo realizado:**
|
|
- Auditoria del pipeline actual de ingesta, IDs, Qdrant, parser PDF, API e infraestructura EasyPanel.
|
|
- Confirmacion de PostgreSQL 17 como catalogo transaccional y Qdrant como almacenamiento vectorial versionado.
|
|
- Benchmark aislado en VPS2 con el PDF mixto real de FacturaTech.
|
|
- Descarte de Tesseract como motor unico por omitir identificadores criticos.
|
|
- Seleccion de PaddleOCR como motor principal y deteccion de errores alfanumericos de alta confianza que obligan a revision humana.
|
|
- Creacion de `docs/CONTRATO_CICLO_VIDA_Y_OCR.md` con esquema, estados, APIs, migracion, OCR, tareas, pruebas, despliegue y rollback.
|
|
- Enlace del contrato desde el backlog canonico.
|
|
- Correccion del contrato mediante revisiones adversariales hasta eliminar sus bloqueos criticos conocidos.
|
|
- Limpieza de los artefactos e imagenes temporales usados en el benchmark local y de VPS2.
|
|
|
|
**Estado final:**
|
|
- Diseño de los pendientes 2 y 3 cerrado y listo para implementacion secuencial.
|
|
- El punto 2 debe completarse y validarse en produccion antes de iniciar el punto 3.
|
|
- No se modifico codigo ni produccion durante esta fase de diseño.
|
|
|
|
**Archivos modificados:**
|
|
- `RAG/docs/CONTRATO_CICLO_VIDA_Y_OCR.md`
|
|
- `RAG/docs/PENDIENTES_RAG.md`
|
|
- `RAG/docs/HISTORIAL_SESIONES.md`
|
|
- `docs/INDICE_DOCUMENTACION.md`
|
|
- `docs/HISTORIAL_SESIONES.md`
|
|
|
|
---
|
|
|
|
### 2026-09-11 - Subagente Implementacion ciclo de vida del conocimiento
|
|
|
|
**Modelo:** openai/gpt-5.5
|
|
**Session ID OpenCode:** `ses_f6fe0ad30ffeiottYsATsRemCo`
|
|
**Directorio:** `/home/pancho/Documentos/Empresa/Desarrollo/IA/RAG`
|
|
|
|
**Rol asumido:**
|
|
Ejecutar la fase apply del punto 2 del RAG y corregir los bloqueadores finales detectados antes de commit, push o despliegue.
|
|
|
|
**Trabajo realizado:**
|
|
- Ajuste del migrador legacy para permitir reanudacion por `--batch-id`, reutilizando versiones ya creadas y completando activacion tras actualizaciones de payload ya aplicadas.
|
|
- Endurecimiento de rollback legacy con lock global de migracion, comprobacion de snapshot y operaciones serializadas sobre fuentes/versiones.
|
|
- Reconciliador protegido con advisory lock no bloqueante, timeout configurable basado en `indexing_started_at` y validacion de coleccion/dimensiones.
|
|
- Protecciones adicionales: `POST /cleanup` respeta `INGEST_WRITES_ENABLED`, `markPurged` valida `rowCount`, rollback usa locks y OpenAPI refleja `503` en health con `ok` booleano.
|
|
- Script `migrate:legacy:lifecycle` ajustado para ejecutarse desde `dist/` con Node tras build.
|
|
- Añadidos tests unitarios para reanudacion legacy, activacion idempotente, cleanup con escrituras deshabilitadas, reconciliador, mismatch de coleccion y `markPurged`.
|
|
|
|
**Validacion local:**
|
|
- `npm run check` correcto.
|
|
- `npm test` correcto: 18 tests pasan.
|
|
- `npm run build` correcto.
|
|
- `git diff --check` correcto.
|
|
|
|
**Estado final:**
|
|
- Punto 2 implementado y validado localmente.
|
|
- No se hizo commit, push, deploy ni lectura de `.env`.
|
|
- Sigue pendiente la verificacion independiente y la validacion/migracion en produccion antes de marcar el punto 2 como cerrado.
|
|
|
|
**Archivos modificados en esta correccion:**
|
|
- `.env.example`
|
|
- `package.json`
|
|
- `package-lock.json`
|
|
- `src/config/env.ts`
|
|
- `src/modules/catalog/client.ts`
|
|
- `src/modules/catalog/repository.ts`
|
|
- `src/modules/catalog/reconciler.ts`
|
|
- `src/modules/vectorstore/client.ts`
|
|
- `src/modules/retrieve/service.ts`
|
|
- `src/modules/ingest/service.ts`
|
|
- `src/scripts/migrate-legacy-lifecycle.ts`
|
|
- `src/api/openapi.ts`
|
|
- `tests/lifecycle-services.test.ts`
|
|
- `docs/API_RAG.md`
|
|
- `docs/DESPLIEGUE_EASYPANEL.md`
|
|
- `docs/SISTEMA_RAG_BASE.md`
|
|
- `RAG/docs/HISTORIAL_SESIONES.md`
|
|
|
|
---
|
|
|
|
### 2026-09-11 (reanudacion final) - Subagente Implementacion ciclo de vida del conocimiento
|
|
|
|
**Modelo:** openai/gpt-5.5
|
|
**Session ID OpenCode:** `ses_f6fe0ad30ffeiottYsATsRemCo`
|
|
**Directorio:** `/home/pancho/Documentos/Empresa/Desarrollo/IA/RAG`
|
|
|
|
**Rol asumido:**
|
|
Completar los 4 bloqueos del sdd-verify y cerrar la validacion local del punto 2.
|
|
|
|
**Trabajo realizado:**
|
|
- Reconciliador: recupera versiones huerfanas `pending/indexing` a `ready` contando puntos Qdrant y validando documentos, coleccion y dimensiones; marca `failed` solo si quedan incompletas; try-locks evitan matar ingestas vivas.
|
|
- Ingesta: rechaza embeddings con dimensiones distintas de las esperadas antes del upsert y antes de alcanzar `ready`.
|
|
- Rollback legacy: transaccion diferida del lote, confirmacion de cero punteros activos, restauracion de snapshot con verificacion de recuentos y limpieza posterior del catalogo.
|
|
- OpenAPI: `/sources` documenta `503`.
|
|
- Retrieval: locks compartidos adquiridos antes de validar recuento/dimensiones y mantenidos durante toda la consulta Qdrant.
|
|
- Interrupcion por limite de uso a mitad de la validacion; reanudada tras cambio de cuenta y completada hasta el final.
|
|
|
|
**Validacion local:**
|
|
- `npm run check` correcto.
|
|
- `npm test` correcto: 25/25 tests pasan.
|
|
- `npm run build` correcto.
|
|
- `git diff --check` correcto.
|
|
- Verificacion independiente (sdd-verify): PASS local.
|
|
|
|
**Estado final:**
|
|
- Implementacion local del punto 2 verificada de forma independiente: PASS local.
|
|
- No se hizo commit, push, deploy ni lectura de `.env`.
|
|
- Pendiente: commit/push, deploy con enforcement desactivado, migracion legacy y validacion en produccion antes de cerrar el punto 2.
|