Web Analytics Made Easy - Statcounter
Skip to content

API del historial

Endpoints para acceder al historial de conversiones.

Obtener el historial de conversiones

GET /api/history

Par谩metros de consulta

Nombre Tipo Predeterminado Descripci贸n
limit int 50 N煤mero m谩ximo de entradas a devolver
offset int 0 N煤mero de entradas a omitir
status string - Filtrar por estado

Respuesta

{
  "entries": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "filename": "document_abc123.pdf",
      "original_filename": "Mi documento.pdf",
      "input_format": "pdf",
      "status": "completed",
      "confidence": 0.92,
      "file_size": 1048576,
      "created_at": "2024-01-15T10:00:00Z",
      "completed_at": "2024-01-15T10:00:30Z"
    }
  ],
  "total": 1,
  "limit": 50,
  "offset": 0
}

Obtener el historial reciente

GET /api/history/recent

Par谩metros de consulta

Nombre Tipo Predeterminado Descripci贸n
limit int 10 N煤mero m谩ximo de entradas a devolver

Obtener una entrada del historial

GET /api/history/{job_id}

Respuesta

{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "filename": "document_abc123.pdf",
  "original_filename": "Mi documento.pdf",
  "input_format": "pdf",
  "status": "completed",
  "confidence": 0.92,
  "error_message": null,
  "output_path": "/outputs/550e8400.../document.md",
  "document_json_path": "/outputs/550e8400.../document.json",
  "settings": {
    "ocr": {"enabled": true}
  },
  "file_size": 1048576,
  "created_at": "2024-01-15T10:00:00Z",
  "completed_at": "2024-01-15T10:00:30Z"
}

Cargar un document desde el historial

GET /api/history/{job_id}/load

Carga un documento convertido previamente desde el historial y lo devuelve como resultado de conversi贸n. Este endpoint carga el DoclingDocument desde el archivo JSON almacenado y lo devuelve en el mismo formato que un resultado de conversi贸n reci茅n obtenido.

Par谩metros de ruta

Nombre Tipo Obligatorio Descripci贸n
job_id string S铆 Identificador del trabajo (debe coincidir con [A-Za-z0-9_-]+)

Respuesta

Devuelve un objeto ConversionResult con el mismo formato que una conversi贸n nueva:

{
  "job_id": "550e8400-e29b-41d4-a716-446655440000",
  "status": "completed",
  "document": {
    "title": "Mi documento",
    "content": "...",
    "metadata": {...}
  },
  "formats_available": ["markdown", "html", "json"],
  "images_count": 5,
  "tables_count": 2,
  "preview": "# Vista previa del contenido del documento..."
}

Respuestas de error

404 Not Found: la entrada del historial no existe

{
  "error": "Entrada de historial {job_id} no encontrada"
}

400 Bad Request: conversi贸n no completada

{
  "job_id": "550e8400-e29b-41d4-a716-446655440000",
  "status": "pending",
  "message": "Conversi贸n no completada"
}

Notas

  • Solo funciona para conversiones completadas
  • Si el archivo JSON del documento almacenado no est谩 disponible, el endpoint intentar谩 reconstruir el resultado a partir de los archivos de salida
  • Los documentos se almacenan autom谩ticamente tras cada conversi贸n correcta
  • El campo document_json_path en las entradas del historial indica d贸nde se guarda el JSON del documento

Reconciliar el historial con el disco

POST /api/history/reconcile

Explora el directorio de salida en busca de resultados de conversi贸n que existen en disco pero no tienen entrada en la base de datos (p. ej., tras p茅rdida de la BD o reinicio). Crea las entradas de historial faltantes para que aparezcan en la interfaz y puedan volver a cargarse.

La reconciliaci贸n tambi茅n se ejecuta autom谩ticamente al iniciar la aplicaci贸n.

Respuesta

{
  "message": "Se reconciliaron 3 entradas desde el disco",
  "added_count": 3,
  "added_ids": [
    "550e8400-e29b-41d4-a716-446655440000",
    "660e8400-e29b-41d4-a716-446655440001",
    "770e8400-e29b-41d4-a716-446655440002"
  ]
}

Notas

  • Solo se reconcilian directorios de salida con nombres UUID v谩lidos y al menos un archivo de salida (.md, .html, .json o .document.json)
  • Las entradas que ya est谩n en la base de datos se omiten

Generar fragmentos (chunks)

POST /api/history/{job_id}/generate-chunks

Genera fragmentos RAG para un documento completado bajo demanda. Carga el DoclingDocument desde disco, aplica la configuraci贸n actual de fragmentaci贸n y devuelve los fragmentos generados. Guarda los fragmentos en disco para su descarga.

Respuesta

{
  "job_id": "550e8400-e29b-41d4-a716-446655440000",
  "chunks": [
    {
      "id": 1,
      "text": "Contenido del fragmento...",
      "meta": { "page": 1, "headings": ["T铆tulo de secci贸n"] }
    }
  ],
  "count": 42
}

404 Not Found: entrada del historial o documento no encontrado


Eliminar una entrada del historial

DELETE /api/history/{job_id}

Respuesta

{
  "message": "Entrada eliminada",
  "job_id": "550e8400-e29b-41d4-a716-446655440000"
}

Obtener estad铆sticas del historial

GET /api/history/stats

Respuesta

Devuelve estad铆sticas de conversi贸n, uso de almacenamiento y profundidad de la cola. El objeto conversions incluye m茅tricas ampliadas cuando est谩n disponibles.

{
  "conversions": {
    "total": 150,
    "completed": 142,
    "failed": 5,
    "pending": 2,
    "processing": 1,
    "success_rate": 94.7,
    "format_breakdown": {
      "pdf": 100,
      "docx": 30,
      "image": 20
    },
    "avg_processing_seconds": 12.5,
    "ocr_backend_breakdown": {
      "easyocr": 80,
      "ocrmac": 50,
      "tesseract": 20
    },
    "output_format_breakdown": {
      "markdown": 150
    },
    "performance_device_breakdown": {
      "auto": 120,
      "cpu": 30
    },
    "chunking_enabled_count": 25,
    "error_category_breakdown": {
      "ocr": 2,
      "other": 3
    },
    "source_type_breakdown": {
      "upload": 100,
      "url": 30,
      "batch": 20
    }
  },
  "storage": {
    "uploads": { "count": 10, "size_bytes": 1048576, "size_mb": 1.0 },
    "outputs": { "count": 140, "size_bytes": 52428800, "size_mb": 50.0 },
    "total_size_mb": 51.0
  },
  "queue_depth": 2
}

Buscar en el historial

GET /api/history/search

Par谩metros de consulta

Nombre Tipo Obligatorio Descripci贸n
q string S铆 Consulta de b煤squeda
limit int No N煤mero m谩ximo de resultados (predeterminado: 20)

Respuesta

{
  "entries": [...],
  "query": "factura",
  "count": 5
}

Exportar el historial

GET /api/history/export

Respuesta: descarga de un archivo JSON con todas las entradas del historial


Borrar todo el historial

DELETE /api/history

Respuesta

{
  "message": "Se eliminaron todas las entradas del historial",
  "count": 150
}