# Instrucciones para el agente: Unlimited-OCR: extrae contenido de imágenes y documentos

Pega este texto a tu agente (Claude Code, Codex, OpenCode, Hermes o el que uses) y dile «ayúdame a montarlo». Son los pasos para ponerlo en marcha; el porqué de cada pieza está en la guía completa.

- Dificultad: avanzado
- Proyecto: https://github.com/baidu/Unlimited-OCR (licencia MIT)
- Guía completa: https://lab.wisd.ai/hub/unlimited-ocr-document-parsing

---

## Para el agente: cómo acompañar al usuario

1. Pregunta primero para qué lo quiere. Si su objetivo no necesita algún paso, sáltalo.
2. Antes de instalar, comprueba lo que ya tiene (versiones, claves, sistema operativo).
3. Avanza un paso cada vez: explica en una frase qué vas a hacer y deja que el usuario lo ejecute o lo apruebe.
4. Tras cada paso, comprueba que funcionó antes de seguir. Si falla, para y explica el error.
5. No inventes comandos ni opciones: si la documentación del proyecto contradice estos pasos, manda la documentación.
6. Al terminar, haz una prueba real con el objetivo del usuario y dile dónde profundizar.

---

## Pasos de configuración

### Paso 1: prepara el entorno de Transformers

Comprueba una GPU NVIDIA y un entorno aislado con pip. El README probó Python 3.12.3 y CUDA 12.9; son el entorno probado, no mínimos universales. En una carpeta de trabajo instala en ese entorno:

```bash
pip install torch==2.10.0 torchvision==0.25.0 transformers==4.57.1 Pillow==12.1.1 matplotlib==3.10.8 einops==0.8.2 addict==2.4.0 easydict==1.13 pymupdf==1.27.2.2 psutil==7.2.2
```

### Paso 2: guarda el script de una imagen

Coloca una imagen propia de prueba como `your_image.jpg` en esa carpeta. Revisa el código remoto del [modelo oficial](https://huggingface.co/baidu/Unlimited-OCR) antes de aceptar `trust_remote_code`. Guarda esta selección del [ejemplo Transformers](https://github.com/baidu/Unlimited-OCR#inference) como `ocr.py`:

```python
import os
import torch
from transformers import AutoModel, AutoTokenizer

model_name = 'baidu/Unlimited-OCR'
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
model = AutoModel.from_pretrained(
    model_name,
    trust_remote_code=True,
    use_safetensors=True,
    torch_dtype=torch.bfloat16,
)
model = model.eval().cuda()
model.infer(
    tokenizer,
    prompt='<image>document parsing.',
    image_file='your_image.jpg',
    output_path='salida',
    base_size=1024, image_size=640, crop_mode=True,
    max_length=32768,
    no_repeat_ngram_size=35, ngram_window=128,
    save_results=True,
)
```

Desde esa misma carpeta y entorno:

```bash
python ocr.py
```

La primera ejecución descarga el tokenizador, los pesos y el código del modelo. No mezcles esta receta con SGLang. Para varias páginas o PDF, amplía después con `infer_multi` y `pdf_to_images` del mismo README.

## Comprobación

Comprueba que se guardan resultados en `salida`. Compara texto, tablas y cifras con la imagen original. Esta receta se ha contrastado documentalmente; no se ha ejecutado aquí.

## Si algo falla

Revisa disponibilidad de GPU, memoria y las versiones fijadas antes de procesar más imágenes. Consulta las variantes de la receta oficial para otros entornos.
