Files
cbc2027/latex/resumen.md
renato97 dcf887c510 feat: Sistema LaTeX mejorado con sanitización automática y corrección de TikZ
Cambios principales:

## Nuevos archivos
- services/ai/parallel_provider.py: Ejecución paralela de múltiples proveedores AI
- services/ai/prompt_manager.py: Gestión centralizada de prompts (resumen.md como fuente)
- latex/resumen.md: Template del prompt para resúmenes académicos LaTeX

## Mejoras en generación LaTeX (document/generators.py)
- Nueva función _sanitize_latex(): Corrige automáticamente errores comunes de AI
  - Agrega align=center a nodos TikZ con saltos de línea (\\)
  - Previene errores 'Not allowed in LR mode' antes de compilar
- Soporte para procesamiento paralelo de proveedores AI
- Conversión DOCX en paralelo con generación PDF
- Uploads a Notion en background (non-blocking)
- Callbacks de notificación para progreso en Telegram

## Mejoras en proveedores AI
- claude_provider.py: fix_latex() con instrucciones específicas para errores TikZ
- gemini_provider.py: fix_latex() mejorado + rate limiting + circuit breaker
- provider_factory.py: Soporte para parallel provider

## Otros cambios
- config/settings.py: Nuevas configuraciones para Gemini models
- services/webdav_service.py: Mejoras en manejo de conexión
- .gitignore: Ignora archivos LaTeX auxiliares (.aux, .toc, .out, .pdf)

## Archivos de ejemplo
- latex/imperio_romano.tex, latex/clase_revolucion_rusa_crisis_30.tex
- resumen_curiosidades.tex (corregido y compilado exitosamente)
2026-02-07 20:50:27 +00:00

5.8 KiB

Prompt para Generar Resúmenes Académicos en LaTeX

Instrucciones de Uso

  1. Transcribir la clase (audio a texto) usando Whisper o similar
  2. Tener el material bibliográfico en formato digital (PDF escaneado con OCR o texto)
  3. Copiar el prompt de abajo y completar los campos entre [corchetes]

Prompt Template

Sos un asistente académico experto en [MATERIA]. Tu tarea es crear un resumen extenso y detallado en LaTeX basado en la transcripción de clase y el material bibliográfico que te proporciono.

## Material de entrada

### Transcripción de clase:
[PEGAR TRANSCRIPCIÓN AQUÍ]

### Material bibliográfico de apoyo:
[PEGAR TEXTO DEL LIBRO/APUNTE O INDICAR QUE LO SUBISTE COMO ARCHIVO]

## Requisitos del resumen

### Extensión y profundidad:
- Mínimo 10 páginas
- Cubrir TODOS los temas mencionados en clase
- Expandir cada concepto con definiciones formales del material bibliográfico
- No resumir demasiado: preferir explicaciones completas

### Estructura obligatoria:
1. Portada con título, materia, fecha y tema
2. Índice (table of contents)
3. Introducción contextualizando el tema
4. Desarrollo organizado en secciones y subsecciones
5. Tablas comparativas cuando haya clasificaciones o tipos
6. Diagramas con TikZ cuando haya procesos, flujos o relaciones
7. Cajas destacadas para definiciones, ejemplos y conceptos importantes
8. Fórmulas matemáticas cuando corresponda
9. Glosario de términos técnicos al final
10. Referencias al material bibliográfico

### Formato LaTeX requerido:

```latex
\documentclass[11pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[spanish,provide=*]{babel}
\usepackage{amsmath,amssymb}
\usepackage{geometry}
\usepackage{graphicx}
\usepackage{tikz}
\usetikzlibrary{arrows.meta,positioning,shapes.geometric,calc}
\usepackage{booktabs}
\usepackage{enumitem}
\usepackage{fancyhdr}
\usepackage{titlesec}
\usepackage{tcolorbox}
\usepackage{array}
\usepackage{multirow}

\geometry{margin=2.5cm}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[L]{[MATERIA] - CBC}
\fancyhead[R]{Clase [N]}
\fancyfoot[C]{\thepage}

% Cajas para destacar contenido
\newtcolorbox{definicion}[1][]{
    colback=blue!5!white,
    colframe=blue!75!black,
    fonttitle=\bfseries,
    title=#1
}

\newtcolorbox{importante}[1][]{
    colback=red!5!white,
    colframe=red!75!black,
    fonttitle=\bfseries,
    title=#1
}

\newtcolorbox{ejemplo}[1][]{
    colback=green!5!white,
    colframe=green!50!black,
    fonttitle=\bfseries,
    title=#1
}

Estilo de contenido:

  • Usar \textbf{} para términos clave en su primera aparición
  • Usar \textit{} para énfasis y palabras en otros idiomas
  • Incluir ejemplos concretos mencionados en clase
  • Relacionar teoría con casos prácticos
  • Mantener el tono académico pero accesible
  • Si el profesor hizo énfasis en algo ("esto es importante", "esto entra en el parcial"), destacarlo en caja roja

Elementos visuales:

  • Tablas con booktabs para comparaciones (usar \toprule, \midrule, \bottomrule)
  • Diagramas TikZ para flujos, ciclos o relaciones entre conceptos
  • Listas itemize/enumerate para secuencias o características
  • Fórmulas centradas con equation o align para expresiones matemáticas

Ejemplo de calidad esperada

Para cada concepto principal:

  1. Definición formal (del libro)
  2. Explicación en palabras simples (como lo explicó el profesor)
  3. Ejemplo concreto
  4. Relación con otros conceptos
  5. Por qué es importante / para qué sirve

Output

Generá el archivo .tex completo, listo para compilar con pdflatex (dos pasadas para el índice).


---

## Comandos para compilar

```bash
# Compilar (dos veces para índice)
pdflatex resumen_clase_X.tex
pdflatex resumen_clase_X.tex

# Abrir PDF
xdg-open resumen_clase_X.pdf  # Linux
open resumen_clase_X.pdf      # macOS

Pipeline completo

1. Transcripción de audio (con Whisper)

# Instalar whisper
pip install openai-whisper

# Transcribir audio de clase
whisper "clase_X.mp3" --language Spanish --output_format txt

2. OCR de PDFs escaneados (con marker-pdf)

# Crear entorno virtual
python -m venv .venv
source .venv/bin/activate

# Instalar marker
pip install marker-pdf

# Procesar PDF (usa GPU si está disponible)
marker_single "libro_capitulo_X.pdf" --output_dir output/

3. Generar resumen

Usar el prompt de arriba con:

  • Claude (Anthropic)
  • GPT-4 (OpenAI)
  • Gemini (Google)

4. Compilar LaTeX

pdflatex resumen.tex && pdflatex resumen.tex

Tips para mejores resultados

  1. Transcripción completa: No cortar la transcripción, la IA necesita todo el contexto
  2. Material bibliográfico: Incluir los capítulos específicos, no todo el libro
  3. Ser específico: Indicar la materia, el nivel (CBC, carrera, posgrado) y el enfoque del profesor
  4. Iterar: Si el primer resultado es corto, pedir "expandí la sección X con más detalle"
  5. Diagramas: Si hay un diagrama importante, describirlo y pedir que lo haga en TikZ
  6. Revisar: La IA puede cometer errores conceptuales, siempre verificar con el material

Materias donde funciona bien

  • Economía (micro/macro)
  • Física
  • Química
  • Matemática (álgebra, análisis)
  • Biología
  • Sociología
  • Historia
  • Derecho (con adaptaciones)
  • Cualquier materia con contenido teórico estructurado

Ejemplo de uso rápido

Sos un asistente académico experto en Física. Creá un resumen extenso en LaTeX sobre "Cinemática" basado en esta transcripción de clase del CBC:

[pegar transcripción]

Material de apoyo: Capítulo 2 de Serway "Movimiento en una dimensión":

[pegar texto del capítulo]

Incluí:
- Definiciones de posición, velocidad, aceleración
- Fórmulas del MRU y MRUV
- Diagramas de movimiento con TikZ
- Gráficos posición-tiempo y velocidad-tiempo
- Ejemplos resueltos paso a paso
- Glosario de términos