Skip to content

jackbravo/dof-rag

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

116 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dof-rag

dog-raf es un chat y un sistema de consulta por generación aumentada para explorar las ediciones del Diario Oficial de la Federación de México.

Requerimientos

Instala uv para manejar las dependencias y ejecutar el proyecto.

Una vez instalado uv, ejecuta el siguiente comando para iniciar el proyecto:

uv venv # Crear un entorno virtual
uv sync # Sincronizar dependencias

Bajar archivos del DOF

Para bajar archivos del DOF se usa el script get_dof.py de la siguiente manera:

uv run get_dof.py --help
uv run get_dof.py --start-year=2025 --end-year=2023

Esto crea directorios como:

$ tree --sort=mtime dof | head -n 10
dof
├── 2025
│   ├── 01
│   │   ├── 02012025-MAT.pdf
│   │   ├── 03012025-MAT.pdf
│   │   ├── 06012025-MAT.pdf
│   │   ├── 07012025-MAT.pdf
...

Extraer markdown:

Por folders

UV instala la dependencia marker que contiene un ejecutable para convertir PDFs a formato markdown.

Para convertir un folder completo ejecuta este comando:

marker --output_dir dof_markdown/2024/04/ \
  --paginate_output \
  --languages="es" \
  --skip_existing \
  --workers=1 \
  dof/2024/04/
# este comando tardó 2h 31m 23s en una macbook pro M3 de 36GB RAM

NOTA: Si el comando queda a la mitad, conviene borrar las carpetas incompletas. Para ver cuáles archivos están incompletos puedes revisar el archivo markdown que tiene separaciones por hojas gracias a la opcíon --paginate_output con el formato {pagina}------------------------------------------------. Revisa que contenga todas las páginas del archivo PDF.

Una vez borradas las carpetas incompletas, puedes volver a ejecutar el comando anterior para que el --skip_existing se salte las carpetas que ya existen.

Por archivos

Para extraer el markdown de un archivo específico:

marker_single --output_dir dof_markdown/2024/04/ \
  --paginate_output \
  --languages="es" \
  dof/2024/04/01042024-MAT.pdf
# este comando tardó 2m 7s en una macbook pro M3 de 36GB RAM
# Sorprendentemente, porque otros pueden tardar más de 10 minutos.

Extraer embeddings

Para extraer embeddings de un archivo específico:

python extract_embeddings.py dof_markdown/2024/04/

Puedes especificar la carpeta de un solo archivo, o la carpeta de un mes, o incluso la carpeta de un año. En una macbook pro M3 de 36GB RAM, este comando tardó 190 minutos en extraer los embeddings de enero del 2025.

About

dog-raf es un chat y un sistema de consulta por generación aumentada para explorar las ediciones del Diario Oficial de la Federación de México.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 93.3%
  • Jupyter Notebook 5.5%
  • Lua 1.2%