Skip to content

ellik159/notes-translator-ia

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LaTeX Translator

Convierte imágenes de apuntes manuscritos, documentos PDF y contenido matemático a código LaTeX usando Mathpix OCR y OpenRouter AI.

🚀 Instalación Paso a Paso

1. Prerrequisitos

  • Python 3.7+ instalado en tu sistema
  • Git para clonar el repositorio

2. Clonar el Repositorio

git clone https://github.com/tu-usuario/latex-translator.git
cd latex-translator

3. Crear Entorno Virtual (Recomendado)

# Crear entorno virtual
python -m venv .venv

# Activar entorno virtual
# En Linux/Mac:
source .venv/bin/activate
# En Windows:
# .venv\Scripts\activate

4. Instalar Dependencias

# Instalar dependencias básicas
pip install -r requirements.txt

# Instalar soporte para PDF (opcional pero recomendado)
pip install pdf2image

# Instalar Mathpix OCR (opcional)
pip install mpxpy

5. Configurar API Keys

# Configurar OpenRouter (obligatorio para procesamiento de apuntes)
export OPENROUTER_API_KEY="tu-api-key-de-openrouter"

# Configurar Mathpix (opcional, para contenido matemático)
export MATHPIX_APP_ID="tu-app-id"
export MATHPIX_APP_KEY="tu-app-key"

Nota: Para hacer permanentes estas variables, añádelas a tu archivo ~/.bashrc o ~/.zshrc.

💡 Uso Básico

Estructura Recomendada

mis_apuntes/
├── documento.pdf
├── imagen1.jpg
├── imagen2.png
└── carpeta_apuntes/
    ├── pagina1.jpg
    ├── pagina2.jpg
    └── pagina3.jpg

Comandos Básicos

# Procesar todo en el directorio actual
python latex_translator.py

# Procesar directorio específico
python latex_translator.py --input ./mis_apuntes --output ./resultados

# Usar modo automático (recomendado)
python latex_translator.py --mode auto

# Solo LaTeX sin metadata
python latex_translator.py --format latex --no-metadata

💰 Costos y Capacidades

Costos Estimados por Página

  • Mathpix: ~$0.004 USD por página (dependiendo del contenido)
  • Google Gemini 2.5 Flash: ~$0.004 USD por página (dependiendo del contenido)
  • Modelos más avanzados: Varían según el modelo seleccionado

Capacidades de Procesamiento

Mathpix OCR

  • Excelente para texto y ecuaciones matemáticas
  • Reconocimiento preciso de símbolos matemáticos
  • NO soporta TikZ (no puede replicar diagramas o dibujos en LaTeX)
  • Limitado a contenido textual y matemático

Modelos de Visión (Gemini, Claude, GPT-4, etc.)

  • Excelente para texto y ecuaciones
  • Soporte para TikZ (puede replicar diagramas y dibujos en LaTeX)
  • Capacidad de interpretar contenido visual complejo
  • Flexibilidad para diferentes tipos de contenido

Recomendaciones de Modelos

  • Para contenido matemático puro: Mathpix o Gemini 2.5 Flash
  • Para apuntes con diagramas: Modelos de visión como Claude 3.5 Sonnet o GPT-4
  • Para costo/rendimiento: Gemini 2.5 Flash (equilibrio perfecto)

⚙️ Comportamiento Inteligente

La herramienta detecta automáticamente el tipo de entrada y se comporta de forma inteligente:

Entrada Salida Comportamiento
documento.pdf documento.md 1 archivo unificado con todo el LaTeX del PDF
imagen1.jpg
imagen2.jpg
imagen1.md
imagen2.md
1 archivo por imagen
carpeta_apuntes/
├─ img1.jpg
├─ img2.jpg
unified_carpeta_apuntes.md 1 archivo unificado con todo el LaTeX de la carpeta

📊 Opciones de la CLI

# Entrada/Salida
--input, -i      Directorio de entrada (default: directorio actual)
--output, -o     Directorio de salida (default: ./latex_output)

# Modo de Procesamiento
--mode, -m       Modo: auto, mathpix, openrouter (default: auto)
--format, -f     Formato: markdown, latex, both (default: markdown)

# Configuración
--no-skip        Procesar archivos incluso si ya fueron procesados
--batch-size     Tamaño del lote para procesamiento (default: 10)
--timeout        Timeout de API en segundos (default: 30)
--confidence-threshold  Umbral mínimo de confianza (0-100, default: 0)
--no-metadata    Excluir metadata del output
--no-unified     Procesar archivos individualmente, sin documentos unificados

# Información
--stats          Mostrar estadísticas de la base de datos
--version        Mostrar información de versión
--help           Mostrar ayuda completa

🎯 Ejemplos de Uso

Para Apuntes Universitarios

# Procesar carpeta completa de apuntes
python latex_translator.py --input ./apuntes_matematicas --output ./latex_resultados --mode openrouter

# Usar modelo específico para apuntes con diagramas
python latex_translator.py --input ./apuntes --output ./resultados --mode openrouter --openrouter-model "anthropic/claude-3.5-sonnet"

Para Contenido Matemático

# Usar Mathpix para ecuaciones y fórmulas
python latex_translator.py --input ./formulas --output ./resultados --mode mathpix --format latex

# Usar Gemini para contenido matemático con buen costo/rendimiento
python latex_translator.py --input ./formulas --output ./resultados --mode openrouter --openrouter-model "google/gemini-2.5-flash"

Para Procesamiento Rápido

# Procesar sin metadata para obtener solo LaTeX
python latex_translator.py --format latex --no-metadata --no-skip

# Procesar con modelo económico
python latex_translator.py --mode openrouter --openrouter-model "google/gemini-2.5-flash" --no-metadata

Para Diagramas y TikZ

# Usar modelo avanzado para replicar diagramas en TikZ
python latex_translator.py --input ./diagramas --output ./resultados --mode openrouter --openrouter-model "anthropic/claude-3.5-sonnet"

# Usar GPT-4 para contenido visual complejo
python latex_translator.py --input ./diagramas --output ./resultados --mode openrouter --openrouter-model "openai/gpt-4"

Ejemplo Práctico: Adobe Scan

# Escaneas tus apuntes con Adobe Scan y obtienes un PDF
# Luego procesas ese PDF directamente:
python latex_translator.py --input "Adobe Scan 19 oct 2025.pdf" --output ./resultados --mode openrouter

# O si tienes varios PDFs de Adobe Scan en una carpeta:
python latex_translator.py --input ./escaneos_adobe --output ./latex_resultados

# Para contenido matemático puro, usar Mathpix:
python latex_translator.py --input "Adobe Scan 19 oct 2025.pdf" --output ./resultados --mode mathpix

Nota: Adobe Scan genera PDFs que la herramienta procesa perfectamente, manteniendo el orden y estructura de tus apuntes escaneados.

📁 Estructura del Proyecto

latex-translator/
├── latex_translator.py    # Herramienta principal
├── requirements.txt       # Dependencias básicas
├── README.md             # Este archivo
├── prompts/              # Prompts de procesamiento
│   └── default_prompt.md # Instrucciones para OpenRouter
└── LICENSE               # Licencia MIT

🔧 Solución de Problemas

Error: "OpenRouter API key not configured"

# Verificar que la variable esté configurada
echo $OPENROUTER_API_KEY

# Si no aparece, configurarla de nuevo
export OPENROUTER_API_KEY="tu-api-key"

Error: "pdf2image not installed"

# Instalar pdf2image
pip install pdf2image

Error: "Mathpix client not available"

# Instalar mpxpy (opcional)
pip install mpxpy

Los archivos no se procesan

# Forzar reprocesamiento de todos los archivos
python latex_translator.py --no-skip

# Ver estadísticas de procesamiento
python latex_translator.py --stats

🎨 Personalización

Custom Prompts

Puedes crear prompts personalizados en la carpeta prompts/:

# Crear prompt personalizado
cp mi_prompt.md prompts/
# La herramienta lo usará automáticamente

📄 Licencia

Este proyecto está bajo la Licencia MIT - ver el archivo LICENSE para más detalles.

🤝 Contribuir

  1. Fork el proyecto
  2. Crea una rama para tu feature (git checkout -b feature/AmazingFeature)
  3. Commit tus cambios (git commit -m 'Add some AmazingFeature')
  4. Push a la rama (git push origin feature/AmazingFeature)
  5. Abre un Pull Request

⭐ Características

  • Compatibilidad completa con OpenRouter y Mathpix
  • Soporte para PDF y formatos de imagen (JPG, PNG, etc.)
  • Comportamiento inteligente por tipo de entrada
  • Salida organizada en Markdown con LaTeX dentro de bloques de código
  • CLI profesional con todas las opciones configurables
  • Base de datos para evitar reprocesamiento
  • Manejo robusto de errores y logging

¡Listo para convertir tus apuntes manuscritos a LaTeX profesional! 🎉

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages