← Volver a mi perfil

🔒 Acceso restringido

Esta página es privada. Inicia sesión con tu cuenta autorizada.

🛠️ Herramientas avanzadas

Servicios self-hosted que corren en tu equipo — nada sale de él. De apoyo al RAG y al procesado de PDFs.

📄 OCR de PDFs sin Docker · recomendado

Convierte tus PDFs escaneados en PDFs con texto buscable y copiable. 100% local, sin Docker, con ocrmypdf (Tesseract español).

1) Instalar (una vez):

brew install ocrmypdf

2a) Un PDF de ejemplo (mira el resultado al momento):

cd /Users/carlos/cartagenaestewebappSOLIDA
ocrmypdf -l spa "docs/guia-antibioticos-hsl-2025.pdf" "guia-ocr.pdf"
open guia-ocr.pdf

2b) O todos tus PDFs de golpe → carpeta out/:

cd /Users/carlos/cartagenaestewebappSOLIDA/tools/ocr-local
./ocr-docs.sh
¿Prefieres la interfaz visual (Stirling PDF)? Necesita Docker
cd /Users/carlos/cartagenaestewebappSOLIDA/tools/stirling-pdf && docker compose up -d

Con Docker Desktop abierto → luego http://localhost:8080.

🧠 Ampliar el buscador (RAG) con tus PDFs producción

Tras OCR-ar los PDFs (paso anterior), este comando añade todos los PDFs clínicos al índice de búsqueda de producción — prefiere la versión OCR-ada de cada uno. Actualiza el buscador de area2cartagena.es y medikai.es a la vez (backend compartido). Incremental: re-ejecutarlo solo procesa lo nuevo.

1) Autenticar contra Google Cloud (una vez por equipo):

gcloud auth application-default login

2) Ampliar el RAG (usa tu GEMINI_API_KEY):

cd /Users/carlos/cartagenaestewebappSOLIDA
GEMINI_API_KEY=TU_CLAVE node scripts/append-clinical-pdfs-to-rag.mjs

Hace backup del índice en GCS antes de tocar nada. Con FORCE_ALL=1 reprocesa TODOS los PDFs (no solo los nuevos). No hay que desplegar nada más: el buscador queda al día en los dos sitios.

🤖 Automático: además, cada vez que subes un PDF nuevo a docs/ o protocolos/ y haces push a main, un GitHub Action (RAG · indexar PDFs clínicos) lo OCR-a e indexa solo. No tienes que correr nada. El comando de arriba es para forzarlo a mano o reprocesar todo. Ojo: el nombre del PDF debe contener una palabra clínica (protocolo, guia, manejo, algoritmo, diabetes, sepsis…) para entrar en el índice.

📊 Databook · diccionario de datos en el navegador · el camino normal, sin IA

Para investigación clínica: describe las variables de tu Excel (nombre real, nombre final, rol y valores permitidos) y valida los datos contra esa descripción — numéricos fuera de rango, categorías no declaradas, celdas vacías, identificadores repetidos. Es la hoja Databook que el estadístico necesita para poder empezar. Con el archivo (o los datos pegados) todo ocurre en el navegador: no se sube a ningún sitio y no interviene ninguna IA.

🔒 Cero retención: los datos no salen del dispositivo. En el navegador solo se guardan los metadatos del diccionario (nombres, roles, rangos), nunca celdas de datos.
Respaldo aparte: si solo tienes una captura de la tabla, hay un bloque —claramente marcado, nunca preseleccionado— que la lee con IA de visión. Ese sí usa red y sí envía la imagen, así que pide capturar solo la fila de encabezados, bloquea el envío si detecta identificadores y la IA devuelve únicamente la estructura de las columnas, nunca datos.

🕸️ Crawl4AI → texto para el RAG sin Docker

Convierte páginas web (guías, AEMPS, PubMed) en texto limpio. Tu Python 3.14 no vale; instala uno que sí (Homebrew) y úsalo. Una línea cada vez:

brew install python@3.12
cd /Users/carlos/cartagenaestewebappSOLIDA/tools/crawl4ai
python3.12 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python -m playwright install chromium
echo "https://www.aemps.gob.es/informa/notas-informativas/" > urls.txt
python ingest.py urls.txt

El texto queda en docs/rag-text/. Para incorporarlo al RAG de producción, dímelo y lo hago yo.

🔒 Todo self-hosted: el OCR y el crawling ocurren en tu equipo. Usa siempre fuentes públicas y verificadas. Guía completa en tools/README.md. (Si no tienes Homebrew: https://brew.sh.)