# OCR Indexer Pro — Flujo de Trabajo

## Inicio rápido

1. Entra al directorio que quieres indexar
2. Crea el motor:              `ocr-indexer dir`
3. Lanza el pipeline completo: `ocr-indexer run`

## El pipeline completo (`ocr-indexer run`)

### Fase 1 — Escaneo de archivos
Recorre el directorio del motor de forma recursiva.
Calcula un hash MD5 por archivo y registra los nuevos o modificados.
Los archivos sin cambios (mismo hash) se saltan sin reprocesar.
Extensiones soportadas: PNG  JPG  JPEG  TIFF  BMP  PDF

### Fase 2 — OCR Mecánico (Tesseract)
Extrae el texto de cada imagen y PDF usando Tesseract.
Es rápido: da resultados básicos de búsqueda de inmediato.
Imágenes grandes (>50 MP) se redimensionan automáticamente antes del OCR.

### Fase 3 — Refinado IA (opcional)
Mejora el texto con un LLM. Requiere configurar `ocr-indexer ai-config`.

**Modo visión** (openai / anthropic / gemini con `use_vision=true`):
El modelo recibe la imagen directamente y la transcribe.
Es más preciso que Tesseract, especialmente en documentos complejos.

**Modo texto** (cualquier proveedor):
El texto Tesseract se envía al LLM para corregir errores típicos
(O↔0, I↔1↔l, palabras partidas, puntuación corrupta).

Si visión falla → el sistema hace fallback a modo texto automáticamente.
Si no hay IA configurada → Fase 3 se omite, el OCR Tesseract queda intacto.

### Vigía tmux (automático al usar `run`)
Queda un proceso persistente en sesión tmux `{directorio}___ocr-indexer`.
Detecta archivos nuevos o modificados y les aplica el pipeline completo
(Tesseract + IA) de forma automática, sin intervención manual.

## Configurar IA (`ocr-indexer ai-config`)

Proveedores disponibles:
  openai    — GPT-4o-mini (texto) / GPT-4o (visión)
  anthropic — Claude Haiku (texto) / Claude Sonnet (visión)
  gemini    — Gemini 2.5 Flash (texto y visión)
  deepseek  — DeepSeek Chat (solo texto, sin visión)

Variables de entorno alternativas (mayor prioridad que config.json):
  RAG_AI_PROVIDER=openai
  RAG_API_KEY=sk-...

## Navegar entre motores

`ocr-indexer engines`    — Descubre todos los motores en el sistema
`ocr-indexer shell-setup`— Instala el alias `ocre` en .bashrc / .zshrc
`ocre`                   — Elige un motor y hace cd automático al directorio

## Archivos internos del motor (`.ocr-indexer/`)

config.json        Raíz del escaneo, blacklist de carpetas, config IA
ocr-indexer.json   Índice NoSQL local con texto y metadatos por archivo
indexer.log        Log de actividad en tiempo real
status.json        Fase actual y progreso (usado por `ocr-indexer status`)
fase2.pid          PID del proceso OCR activo (evita ejecuciones paralelas)
