Saltearse al contenido

Informe posterior a la misión

ARGUS genera un informe posterior a la misión estructurado bajo demanda, usando los datos de Firestore de la misión (campos de planificación, tareas, flags, logs de vuelo, comms) como contexto para un agente GPT-4o. El resultado es un objeto tipado MissionReport que se renderiza en línea en un diálogo y se exporta a un PDF con formato.

Disparar un informe

Desde la página de detalle de operación, haz clic en GENERATE REPORT. Ese botón es visible cuando tienes el permiso ai.reports; si tu clave de OpenAI no está configurada, la generación falla con una pista para configurarla en Configuración → AI Copilot.

El diálogo auto-inicia la generación en cuanto se abre (no hay un paso extra de confirmación). Puedes cancelar cerrando el diálogo antes de que termine.

No existe hoy un toggle “habilitar esta op para informes de IA en el momento de creación” — los informes pueden generarse en cualquier misión independientemente del estado, siempre que la clave de API esté configurada.

Fases

El progreso se muestra como tres puntos en la parte inferior del diálogo:

  1. Load Data — obtiene la misión, assets, polígonos, flags, tareas, comms y logs de vuelo en paralelo desde Firestore.
  2. AI Analysis — la llamada del agente a https://api.openai.com/v1/chat/completions con un contexto compacto de briefing de inteligencia. El modelo por defecto es gpt-4o pero respeta el modelo seleccionado en la configuración de Copilot.
  3. Build Report — resuelve el nombre para mostrar del comandante, ensambla el objeto MissionReport final.

Qué contiene el informe

El objeto tipado MissionReport incluye:

Campos de portada

  • missionName, codename, classification, missionType, status, priority.
  • startTimeLabel, endTimeLabel, commanderName, headquartersNote opcional.

Datos de planificación (literales del documento de misión)

  • objectives[] con texto, prioridad, estado de completado.
  • roe[] como cadenas planas.

Secciones narrativas generadas por IA

  • executiveSummary — narrativa formal de 2-3 párrafos para mando superior.
  • missionAssessment — uno de SUCCESS, PARTIAL_SUCCESS, FAILURE, INCONCLUSIVE.
  • situationalOverview — narrativa contextual.
  • keyFindings[] — bullets de una sola frase.
  • lessonsLearned[].
  • recommendations[].
  • commanderNotes — evaluación específica para el comandante: qué fue bien, qué necesita atención, acciones de seguimiento requeridas.

Secciones de datos estructurados

  • stats — duración, activos desplegados (total + drones + operativos), tareas (total / completadas / fallidas / abortadas), objetivos (total / completados), flags colocadas, flags de alta prioridad (code_red / casualty / hazard / person_detected), entradas de comms, sesiones de vuelo, tiempo total de vuelo, distancia total, recuento de áreas de búsqueda, detecciones de personas.
  • tasks[] — título, tipo, estado, prioridad, assets asignados, progreso, sitrep, nota de completado, duración.
  • findings[] — tipo de flag, nombre, coordenadas, timestamp, notas.
  • commsHighlights[] — hora, remitente, transcripción, duración.
  • assetsDeployed[] — nombre y tipo.

Vista previa en línea

Una vez que el informe está listo, el diálogo muestra:

  • Un banner de evaluación coloreado (verde / ámbar / rojo / gris con icono a juego).
  • Una fila de cinco estadísticas — Tasks Done, Objectives, Flags, Duration, Flights.
  • Las primeras cinco líneas del resumen ejecutivo (recortadas con CSS -webkit-line-clamp).
  • Hasta cuatro hallazgos clave como bullets, con un pie “+N more in PDF” cuando es más largo.
  • La evaluación del comandante en un bloque de cita con borde izquierdo en cursiva.
  • Una nota de que el informe completo (tareas, inteligencia de campo, log de comunicaciones, lecciones aprendidas, recomendaciones) está solo en el PDF exportado.

Exportar a PDF

Haz clic en Export PDF. MissionReportPdfService.generate(report) construye el PDF en el navegador vía jsPDF. El PDF incluye la insignia de evaluación, resumen ejecutivo, cuadrícula de estadísticas, objetivos con estado de completado, ROE, resumen situacional, hallazgos clave, lecciones aprendidas, recomendaciones, tabla de tareas, hallazgos, highlights de comms, activos desplegados y el bloque de notas del comandante.

Regenerar

El botón Regenerate en el diálogo llama a generate() de nuevo, que produce un informe fresco desde el estado actual de Firestore. Hoy no hay regeneración por sección — es el informe completo o nada.

Edición

El diálogo es solo lectura. No hay editor de prosa en la app, ni reordenación de media, ni acción “Guardar ediciones al informe”. Exporta el PDF y edita externamente a mano si necesitas ajustar la redacción.

Distribución

No hay acción incorporada de email, webhook o “enviar a participantes”. La distribución es manual — descarga el PDF y adjúntalo a tu propio canal.

  • Webhook mission.report_readyno implementado aún. Considera cualquier documentación que lo mencione como aspiracional.
  • Auto-generación programada al completar la op — no implementado aún.

Retención

El informe no se persiste de vuelta a Firestore. Cada generación es fresca; cierra el diálogo y el informe en memoria desaparece. Exporta el PDF si necesitas un artefacto duradero.

Errores

Si la generación falla, el diálogo cambia a un estado de error rojo con el mensaje de error y una pista para comprobar la clave de OpenAI. Pulsa Try Again para reintentar, o Close para abandonar.

Relacionados