Spaces:
Running
Running
| #!/usr/bin/env python3 | |
| """ | |
| CREADOR DE EXCEL PROFESIONAL PARA SISTEMA RAG | |
| Genera un archivo Excel estructurado con todos los datos proporcionados | |
| """ | |
| import pandas as pd | |
| import os | |
| from datetime import datetime | |
| def create_excel_file(): | |
| """Crea un archivo Excel profesional con todas las hojas de datos""" | |
| print("📊 CREANDO ARCHIVO EXCEL PROFESIONAL") | |
| print("=" * 60) | |
| # Crear directorio si no existe | |
| os.makedirs("data/documents", exist_ok=True) | |
| excel_path = "data/documents/tickets.xlsx" | |
| # ==================== HOJA 1: TICKETS ==================== | |
| print("\n📝 Creando hoja: 'Tickets'...") | |
| tickets_data = [ | |
| { | |
| "Folio": "25-450805", | |
| "Categoría": "Soporte Técnico", | |
| "Subcategoría": "Registro", | |
| "Asunto": "Extravío de Folio de Registro", | |
| "Descripción": "El aspirante no guardó o perdió el número de folio proporcionado al finalizar su pre-registro o registro oficial.", | |
| "Respuesta Institucional": "El aspirante debe ingresar al sistema de recuperación de folios o solicitar apoyo a la Mesa de Servicio proporcionando su CURP para localizar su registro.", | |
| "Prioridad": "Alta", | |
| "Área Responsable": "Mesa de Servicio", | |
| "SLA (horas)": 24, | |
| "Estado": "Resuelto", | |
| "Fecha Creación": "2024-01-10", | |
| "Fecha Resolución": "2024-01-10" | |
| }, | |
| { | |
| "Folio": "25-347915", | |
| "Categoría": "Soporte Técnico", | |
| "Subcategoría": "Correo Electrónico", | |
| "Asunto": "Error o Corrección de Correo", | |
| "Descripción": "Se registró un correo electrónico con errores ortográficos o el aspirante perdió el acceso a la cuenta de correo principal registrada.", | |
| "Respuesta Institucional": "Es necesario solicitar el cambio o actualización de la dirección de correo electrónico a través de la Mesa de Servicio, adjuntando una identificación oficial para validación.", | |
| "Prioridad": "Media", | |
| "Área Responsable": "Mesa de Servicio", | |
| "SLA (horas)": 48, | |
| "Estado": "En Proceso", | |
| "Fecha Creación": "2024-01-12", | |
| "Fecha Resolución": "" | |
| }, | |
| { | |
| "Folio": "25-452248", | |
| "Categoría": "Soporte Técnico", | |
| "Subcategoría": "Acceso Plataforma", | |
| "Asunto": "Problemas de Acceso al Aula", | |
| "Descripción": "El aspirante cuenta con sus claves, pero el sistema indica que los datos son incorrectos o la página no carga el módulo correspondiente.", | |
| "Respuesta Institucional": "Debe verificar que la captura de las claves (ID y contraseña) sea idéntica a la recibida (respetando mayúsculas y minúsculas) y borrar las cookies del navegador.", | |
| "Prioridad": "Alta", | |
| "Área Responsable": "Soporte Técnico", | |
| "SLA (horos)": 12, | |
| "Estado": "Resuelto", | |
| "Fecha Creación": "2024-01-15", | |
| "Fecha Resolución": "2024-01-15" | |
| }, | |
| { | |
| "Folio": "25-150478", | |
| "Categoría": "Soporte Técnico", | |
| "Subcategoría": "Correo Institucional", | |
| "Asunto": "Generación de Correo Institucional", | |
| "Descripción": "Dificultad para activar o generar la cuenta de correo con dominio @prepaenlinea-sep.edu.mx tras ser promovido.", | |
| "Respuesta Institucional": "La activación del correo institucional se realiza siguiendo los pasos de la guía de bienvenida; en caso de bloqueo, se debe reportar al área de Soporte Tecnológico.", | |
| "Prioridad": "Media", | |
| "Área Responsable": "Soporte Tecnológico", | |
| "SLA (horas)": 72, | |
| "Estado": "Resuelto", | |
| "Fecha Creación": "2024-01-18", | |
| "Fecha Resolución": "2024-01-20" | |
| }, | |
| { | |
| "Folio": "25-526830", | |
| "Categoría": "Académico", | |
| "Subcategoría": "Asignación", | |
| "Asunto": "Falta de Asignación de Campus", | |
| "Descripción": "Al intentar ingresar a la plataforma, aparece una leyenda indicando que el usuario se encuentra 'sin asignación' de campus o aula.", | |
| "Respuesta Institucional": "Los aspirantes deben consultar el calendario oficial de su generación para verificar la fecha exacta de inicio y asignación de grupo, la cual se notifica vía correo.", | |
| "Prioridad": "Media", | |
| "Área Responsable": "Control Escolar", | |
| "SLA (horas)": 96, | |
| "Estado": "Pendiente", | |
| "Fecha Creación": "2024-01-20", | |
| "Fecha Resolución": "" | |
| }, | |
| { | |
| "Folio": "25-836657", | |
| "Categoría": "Soporte Técnico", | |
| "Subcategoría": "Credenciales", | |
| "Asunto": "Recuperación de Claves (ID/Contraseña)", | |
| "Descripción": "El estudiante o aspirante olvidó sus credenciales de acceso para el curso propedéutico o módulos regulares.", | |
| "Respuesta Institucional": "Se debe utilizar la herramienta de 'Olvide mis datos' en el portal oficial o enviar un ticket a soporte técnico para el restablecimiento de contraseñas.", | |
| "Prioridad": "Alta", | |
| "Área Responsable": "Soporte Técnico", | |
| "SLA (horas)": 6, | |
| "Estado": "Resuelto", | |
| "Fecha Creación": "2024-01-22", | |
| "Fecha Resolución": "2024-01-22" | |
| }, | |
| { | |
| "Folio": "25-306741", | |
| "Categoría": "Administrativo", | |
| "Subcategoría": "Datos Personales", | |
| "Asunto": "Actualización de Datos en Registro", | |
| "Descripción": "Necesidad de modificar información capturada erróneamente durante el registro, como el CURP o el nombre.", | |
| "Respuesta Institucional": "Cualquier corrección de datos personales debe tramitarse mediante un ticket específico en la Mesa de Servicio antes de concluir el periodo de inscripción.", | |
| "Prioridad": "Alta", | |
| "Área Responsable": "Mesa de Servicio", | |
| "SLA (horas)": 24, | |
| "Estado": "Resuelto", | |
| "Fecha Creación": "2024-01-25", | |
| "Fecha Resolución": "2024-01-25" | |
| }, | |
| # Estudios previos de bachillerato | |
| { | |
| "Folio": "25-467976", | |
| "Categoría": "Académico", | |
| "Subcategoría": "Equivalencia", | |
| "Asunto": "Continuidad de Estudios", | |
| "Descripción": "El interesado desea saber si puede retomar su bachillerato tras haberlo dejado inconcluso en otra institución educativa.", | |
| "Respuesta Institucional": "Los interesados con estudios previos deben tramitar un Dictamen de Equivalencia o Revalidación para que se reconozcan los módulos acreditados.", | |
| "Prioridad": "Media", | |
| "Área Responsable": "Control Escolar", | |
| "SLA (horas)": 120, | |
| "Estado": "En Proceso", | |
| "Fecha Creación": "2024-01-28", | |
| "Fecha Resolución": "" | |
| }, | |
| { | |
| "Folio": "25-717631", | |
| "Categoría": "Académico", | |
| "Subcategoría": "Revalidación", | |
| "Asunto": "Revalidación de Materias", | |
| "Descripción": "Consulta sobre el proceso técnico para validar materias o semestres cursados en sistemas como CBTIS, CONALEP, COBAEH o UNAM.", | |
| "Respuesta Institucional": "Es necesario consultar el Manual de Revalidación y contar con un certificado parcial o historial académico legalizado para iniciar el trámite.", | |
| "Prioridad": "Media", | |
| "Área Responsable": "Control Escolar", | |
| "SLA (horas)": 168, | |
| "Estado": "Pendiente", | |
| "Fecha Creación": "2024-01-30", | |
| "Fecha Resolución": "" | |
| }, | |
| { | |
| "Folio": "25-902491", | |
| "Categoría": "Soporte Técnico", | |
| "Subcategoría": "Documentación", | |
| "Asunto": "Carga de Documentos Previos", | |
| "Descripción": "Dificultad técnica al intentar subir certificados parciales o boletas de calificaciones de escuelas anteriores al sistema de registro.", | |
| "Respuesta Institucional": "En caso de error en la plataforma, debe reportarse a la Mesa de Servicio adjuntando los documentos en formato PDF con peso menor a 1MB.", | |
| "Prioridad": "Alta", | |
| "Área Responsable": "Mesa de Servicio", | |
| "SLA (horas)": 24, | |
| "Estado": "Resuelto", | |
| "Fecha Creación": "2024-02-01", | |
| "Fecha Resolución": "2024-02-01" | |
| }, | |
| { | |
| "Folio": "25-688217", | |
| "Categoría": "Académico", | |
| "Subcategoría": "Reincorporación", | |
| "Asunto": "Reincorporación por Baja", | |
| "Descripción": "Aspirantes que causaron baja en otros subsistemas y buscan una alternativa no escolarizada para concluir su formación.", | |
| "Respuesta Institucional": "La reincorporación es posible mediante el pre-registro estándar; una vez aceptado, podrá solicitar el análisis de su historial académico previo.", | |
| "Prioridad": "Media", | |
| "Área Responsable": "Control Escolar", | |
| "SLA (horas)": 96, | |
| "Estado": "Resuelto", | |
| "Fecha Creación": "2024-02-03", | |
| "Fecha Resolución": "2024-02-07" | |
| }, | |
| { | |
| "Folio": "25-870679", | |
| "Categoría": "Académico", | |
| "Subcategoría": "Transferencia", | |
| "Asunto": "Cambio de Escuela/Subsistema", | |
| "Descripción": "Estudiantes activos en otras modalidades (ej. bachilleratos estatales o privados) que desean transferirse a Prepa en Línea-SEP.", | |
| "Respuesta Institucional": "El cambio de modalidad requiere que el aspirante participe en la convocatoria vigente y acredite el curso propedéutico antes de solicitar equivalencias.", | |
| "Prioridad": "Media", | |
| "Área Responsable": "Control Escolar", | |
| "SLA (horas)": 120, | |
| "Estado": "En Proceso", | |
| "Fecha Creación": "2024-02-05", | |
| "Fecha Resolución": "" | |
| }, | |
| { | |
| "Folio": "25-919011", | |
| "Categoría": "Académico", | |
| "Subcategoría": "Equivalencia", | |
| "Asunto": "Bachillerato Trunco Avanzado", | |
| "Descripción": "Casos de personas que cursaron hasta el 4to, 5to o 6to semestre y solo adeudan pocas materias para egresar.", | |
| "Respuesta Institucional": "Se debe solicitar un Dictamen de Equivalencia. Si el avance es muy alto, se evaluará cuántos de los 23 módulos del plan de estudios se dan por acreditados.", | |
| "Prioridad": "Media", | |
| "Área Responsable": "Control Escolar", | |
| "SLA (horas)": 168, | |
| "Estado": "Pendiente", | |
| "Fecha Creación": "2024-02-08", | |
| "Fecha Resolución": "" | |
| }, | |
| { | |
| "Folio": "25-835898", | |
| "Categoría": "Académico", | |
| "Subcategoría": "Equivalencia", | |
| "Asunto": "Dictamen de Equivalencia Emitido", | |
| "Descripción": "El aspirante ya cuenta con una resolución de equivalencia y desea saber cómo aplicarla en su nueva matrícula.", | |
| "Respuesta Institucional": "Debe hacer llegar el documento original o digitalizado al área de Control Escolar para la actualización de su historial académico en SIGAPREP.", | |
| "Prioridad": "Media", | |
| "Área Responsable": "Control Escolar", | |
| "SLA (horas)": 72, | |
| "Estado": "Resuelto", | |
| "Fecha Creación": "2024-02-10", | |
| "Fecha Resolución": "2024-02-13" | |
| }, | |
| { | |
| "Folio": "25-958399", | |
| "Categoría": "Académico", | |
| "Subcategoría": "Estudios Extranjero", | |
| "Asunto": "Estudios en el Extranjero", | |
| "Descripción": "Mexicanos residentes fuera del país que cursaron parte de su High School o bachillerato en el extranjero y buscan validez en México.", | |
| "Respuesta Institucional": "Los documentos académicos del extranjero deben estar apostillados o contar con la revalidación correspondiente ante la SEP para ser tomados en cuenta.", | |
| "Prioridad": "Baja", | |
| "Área Responsable": "Control Escolar", | |
| "SLA (horas)": 240, | |
| "Estado": "En Proceso", | |
| "Fecha Creación": "2024-02-12", | |
| "Fecha Resolución": "" | |
| }, | |
| # Información general | |
| { | |
| "Folio": "25-313639", | |
| "Categoría": "Información General", | |
| "Subcategoría": "Asignación", | |
| "Asunto": "Asignación de Campus", | |
| "Descripción": "El aspirante desea conocer el motivo por el cual no ha sido asignado a un campus o generación específica tras completar su registro.", | |
| "Respuesta Institucional": "La asignación se realiza conforme al calendario de cada generación; el aspirante debe esperar la notificación oficial en su correo electrónico.", | |
| "Prioridad": "Baja", | |
| "Área Responsable": "Control Escolar", | |
| "SLA (horas)": 96, | |
| "Estado": "Resuelto", | |
| "Fecha Creación": "2024-02-15", | |
| "Fecha Resolución": "2024-02-19" | |
| }, | |
| { | |
| "Folio": "25-655639", | |
| "Categoría": "Información General", | |
| "Subcategoría": "Duración", | |
| "Asunto": "Duración del Programa", | |
| "Descripción": "Consulta sobre el tiempo estimado para concluir el bachillerato y la cantidad de módulos que integran el plan de estudios.", | |
| "Respuesta Institucional": "El plan de estudios consta de 23 módulos en total; se estima un tiempo de conclusión aproximado de 2 años y 4 meses.", | |
| "Prioridad": "Baja", | |
| "Área Responsable": "Orientación Educativa", | |
| "SLA (horas)": 48, | |
| "Estado": "Resuelto", | |
| "Fecha Creación": "2024-02-18", | |
| "Fecha Resolución": "2024-02-18" | |
| }, | |
| { | |
| "Folio": "25-217134", | |
| "Categoría": "Información General", | |
| "Subcategoría": "Convocatoria", | |
| "Asunto": "Fechas de Convocatoria", | |
| "Descripción": "Interés en conocer los periodos de registro para nuevas generaciones y los plazos de inscripción vigentes.", | |
| "Respuesta Institucional": "Las convocatorias se publican periódicamente en el portal oficial; se recomienda consultar la sección de 'Aspirantes' para fechas exactas.", | |
| "Prioridad": "Baja", | |
| "Área Responsable": "Comunicación", | |
| "SLA (horas)": 48, | |
| "Estado": "Resuelto", | |
| "Fecha Creación": "2024-02-20", | |
| "Fecha Resolución": "2024-02-20" | |
| }, | |
| { | |
| "Folio": "25-161814", | |
| "Categoría": "Información General", | |
| "Subcategoría": "Costos", | |
| "Asunto": "Costo del Servicio", | |
| "Descripción": "Dudas sobre si el programa tiene algún costo de inscripción, mensualidades o cobro por expedición de certificado.", | |
| "Respuesta Institucional": "Prepa en Línea-SEP es un servicio educativo totalmente gratuito, desde el registro hasta la certificación.", | |
| "Prioridad": "Baja", | |
| "Área Responsable": "Orientación Educativa", | |
| "SLA (horas)": 24, | |
| "Estado": "Resuelto", | |
| "Fecha Creación": "2024-02-22", | |
| "Fecha Resolución": "2024-02-22" | |
| }, | |
| { | |
| "Folio": "25-676164", | |
| "Categoría": "Administrativo", | |
| "Subcategoría": "Baja", | |
| "Asunto": "Trámite de Baja Definitiva", | |
| "Descripción": "El estudiante solicita la interrupción total de sus estudios y la eliminación de su expediente del sistema.", | |
| "Respuesta Institucional": "Para tramitar una baja definitiva, el usuario debe realizar la solicitud formal a través del portal de atención o mesa de servicio cumpliendo con los requisitos administrativos.", | |
| "Prioridad": "Alta", | |
| "Área Responsable": "Control Escolar", | |
| "SLA (horas)": 72, | |
| "Estado": "En Proceso", | |
| "Fecha Creación": "2024-02-25", | |
| "Fecha Resolución": "" | |
| }, | |
| { | |
| "Folio": "25-823024", | |
| "Categoría": "Administrativo", | |
| "Subcategoría": "Baja", | |
| "Asunto": "Trámite de Baja Temporal", | |
| "Descripción": "Solicitud para pausar los estudios por un periodo determinado debido a motivos personales, de salud o laborales.", | |
| "Respuesta Institucional": "El estudiante puede solicitar una baja temporal por un periodo máximo establecido en el reglamento, gestionándolo mediante un ticket en la Mesa de Servicio.", | |
| "Prioridad": "Media", | |
| "Área Responsable": "Control Escolar", | |
| "SLA (horas)": 96, | |
| "Estado": "Resuelto", | |
| "Fecha Creación": "2024-02-28", | |
| "Fecha Resolución": "2024-03-03" | |
| }, | |
| { | |
| "Folio": "25-746178", | |
| "Categoría": "Documentación", | |
| "Subcategoría": "Constancias", | |
| "Asunto": "Solicitud de Constancias", | |
| "Descripción": "Requerimiento de documentos oficiales que acrediten el estatus de estudiante o el historial de calificaciones para trámites externos.", | |
| "Respuesta Institucional": "Las constancias de estudio se solicitan a través de SIGAPREP una vez que el estudiante ha acreditado el primer módulo y cuenta con expediente completo.", | |
| "Prioridad": "Media", | |
| "Área Responsable": "Control Escolar", | |
| "SLA (horas)": 72, | |
| "Estado": "Resuelto", | |
| "Fecha Creación": "2024-03-01", | |
| "Fecha Resolución": "2024-03-04" | |
| }, | |
| { | |
| "Folio": "25-190753", | |
| "Categoría": "Recursos Humanos", | |
| "Subcategoría": "Reclutamiento", | |
| "Asunto": "Bolsa de Trabajo (Docentes)", | |
| "Descripción": "Interés de profesionales en formar parte de la plantilla de asesores virtuales o tutores del programa.", | |
| "Respuesta Institucional": "Los interesados en vacantes docentes deben estar atentos a las convocatorias institucionales publicadas en los canales oficiales de la Secretaría de Educación Pública.", | |
| "Prioridad": "Baja", | |
| "Área Responsable": "Recursos Humanos", | |
| "SLA (horas)": 120, | |
| "Estado": "Resuelto", | |
| "Fecha Creación": "2024-03-03", | |
| "Fecha Resolución": "2024-03-08" | |
| }, | |
| # Certificado de secundaria | |
| { | |
| "Folio": "25-824448", | |
| "Categoría": "Documentación", | |
| "Subcategoría": "Certificado", | |
| "Asunto": "Certificado de secundaria extraviado", | |
| "Descripción": "El aspirante no cuenta con el documento físico debido a robo, pérdida o extravío durante mudanzas o trámites administrativos anteriores.", | |
| "Respuesta Institucional": "El interesado debe tramitar un duplicado ante la autoridad educativa correspondiente; mientras tanto, puede realizar su registro inicial subiendo una Carta Compromiso para formalizar su inscripción temporal.", | |
| "Prioridad": "Alta", | |
| "Área Responsable": "Control Escolar", | |
| "SLA (horas)": 96, | |
| "Estado": "En Proceso", | |
| "Fecha Creación": "2024-03-05", | |
| "Fecha Resolución": "" | |
| }, | |
| { | |
| "Folio": "25-528185", | |
| "Categoría": "Documentación", | |
| "Subcategoría": "Certificado", | |
| "Asunto": "Certificado en proceso de trámite o duplicado", | |
| "Descripción": "El documento se encuentra en proceso de expedición por parte de la escuela de egreso o el duplicado solicitado todavía no ha sido entregado al aspirante.", | |
| "Respuesta Institucional": "Se autoriza el uso de la Carta Compromiso para completar el expediente digital. El estudiante cuenta con un plazo máximo de 6 meses para la entrega del certificado original y evitar una baja administrativa.", | |
| "Prioridad": "Media", | |
| "Área Responsable": "Control Escolar", | |
| "SLA (horas)": 72, | |
| "Estado": "Resuelto", | |
| "Fecha Creación": "2024-03-07", | |
| "Fecha Resolución": "2024-03-10" | |
| }, | |
| { | |
| "Folio": "25-306384", | |
| "Categoría": "Documentación", | |
| "Subcategoría": "Carta Compromiso", | |
| "Asunto": "Uso y carga de Carta Compromiso", | |
| "Descripción": "Duda sobre cómo o dónde entregar el formato de carta compromiso cuando el sistema solicita el certificado obligatorio durante el registro.", | |
| "Respuesta Institucional": "El formato de la carta compromiso debe descargarse del portal oficial, firmarse y subirse escaneado en el campo destinado al 'Certificado de Secundaria' dentro del sistema de registro para validar la etapa de inscripción.", | |
| "Prioridad": "Media", | |
| "Área Responsable": "Mesa de Servicio", | |
| "SLA (horas)": 48, | |
| "Estado": "Resuelto", | |
| "Fecha Creación": "2024-03-09", | |
| "Fecha Resolución": "2024-03-09" | |
| }, | |
| { | |
| "Folio": "25-139178", | |
| "Categoría": "Documentación", | |
| "Subcategoría": "Certificado", | |
| "Asunto": "Certificado deteriorado o ilegible", | |
| "Descripción": "El aspirante posee el documento original, pero se encuentra en mal estado físico, roto o con información borrosa que impide su correcta validación digital.", | |
| "Respuesta Institucional": "Es responsabilidad del aspirante solicitar una reposición o certificación del documento ante el área de control escolar de su institución de procedencia para contar con una versión nítida para el expediente.", | |
| "Prioridad": "Media", | |
| "Área Responsable": "Control Escolar", | |
| "SLA (horas)": 96, | |
| "Estado": "Resuelto", | |
| "Fecha Creación": "2024-03-11", | |
| "Fecha Resolución": "2024-03-15" | |
| }, | |
| { | |
| "Folio": "25-831301", | |
| "Categoría": "Documentación", | |
| "Subcategoría": "Certificado Extranjero", | |
| "Asunto": "Extravío de documentos en el extranjero", | |
| "Descripción": "Casos de mexicanos residentes fuera del país que han perdido su certificado de secundaria y requieren orientación para el registro.", | |
| "Respuesta Institucional": "Los aspirantes en el extranjero deben contactar a su embajada o consulado para gestionar la reposición o revalidación de estudios ante la SEP, siguiendo los protocolos de legalización correspondientes.", | |
| "Prioridad": "Baja", | |
| "Área Responsable": "Control Escolar", | |
| "SLA (horas)": 240, | |
| "Estado": "Pendiente", | |
| "Fecha Creación": "2024-03-13", | |
| "Fecha Resolución": "" | |
| }, | |
| { | |
| "Folio": "25-937578", | |
| "Categoría": "Documentación", | |
| "Subcategoría": "Certificado", | |
| "Asunto": "Inconsistencia en datos del certificado", | |
| "Descripción": "Errores detectados en la información del certificado, como fechas de conclusión incorrectas o discrepancias con el CURP.", | |
| "Respuesta Institucional": "Cualquier corrección de datos en el documento debe tramitarse directamente con la autoridad que emitió el certificado; se debe notificar a Prepa en Línea mediante la Mesa de Servicio adjuntando el comprobante de corrección.", | |
| "Prioridad": "Alta", | |
| "Área Responsable": "Control Escolar", | |
| "SLA (horas)": 120, | |
| "Estado": "En Proceso", | |
| "Fecha Creación": "2024-03-15", | |
| "Fecha Resolución": "" | |
| } | |
| ] | |
| df_tickets = pd.DataFrame(tickets_data) | |
| print(f" ✅ Tickets creados: {len(df_tickets)} registros") | |
| # ==================== HOJA 2: CATEGORÍAS ==================== | |
| print("\n📝 Creando hoja: 'Categorías'...") | |
| categorias_data = [ | |
| { | |
| "ID_Categoría": 1, | |
| "Nombre": "Soporte Técnico", | |
| "Descripción": "Problemas con plataforma, acceso, contraseñas, correo electrónico y otros aspectos técnicos", | |
| "SLA (horas)": 24, | |
| "Área Principal": "Soporte Técnico", | |
| "Responsable": "Jefe de Soporte Técnico", | |
| "Email Contacto": "soporte@prepaenlinea-sep.edu.mx" | |
| }, | |
| { | |
| "ID_Categoría": 2, | |
| "Nombre": "Académico", | |
| "Descripción": "Consultas sobre estudios, equivalencias, revalidación, materias y procesos académicos", | |
| "SLA (horas)": 96, | |
| "Área Principal": "Control Escolar", | |
| "Responsable": "Coordinador Académico", | |
| "Email Contacto": "control.escolar@prepaenlinea-sep.edu.mx" | |
| }, | |
| { | |
| "ID_Categoría": 3, | |
| "Nombre": "Administrativo", | |
| "Descripción": "Trámites de baja, actualización de datos, registro y procesos administrativos", | |
| "SLA (horas)": 72, | |
| "Área Principal": "Mesa de Servicio", | |
| "Responsable": "Jefe de Mesa de Servicio", | |
| "Email Contacto": "mesa.servicio@prepaenlinea-sep.edu.mx" | |
| }, | |
| { | |
| "ID_Categoría": 4, | |
| "Nombre": "Documentación", | |
| "Descripción": "Solicitud y validación de certificados, constancias y documentos oficiales", | |
| "SLA (horas)": 120, | |
| "Área Principal": "Control Escolar", | |
| "Responsable": "Encargado de Documentación", | |
| "Email Contacto": "documentacion@prepaenlinea-sep.edu.mx" | |
| }, | |
| { | |
| "ID_Categoría": 5, | |
| "Nombre": "Información General", | |
| "Descripción": "Consultas generales sobre el programa, duración, costos y convocatorias", | |
| "SLA (horas)": 48, | |
| "Área Principal": "Orientación Educativa", | |
| "Responsable": "Orientador Educativo", | |
| "Email Contacto": "orientacion@prepaenlinea-sep.edu.mx" | |
| }, | |
| { | |
| "ID_Categoría": 6, | |
| "Nombre": "Recursos Humanos", | |
| "Descripción": "Vacantes, bolsa de trabajo y procesos de reclutamiento para docentes", | |
| "SLA (horas)": 120, | |
| "Área Principal": "Recursos Humanos", | |
| "Responsable": "Jefe de Recursos Humanos", | |
| "Email Contacto": "rrhh@prepaenlinea-sep.edu.mx" | |
| } | |
| ] | |
| df_categorias = pd.DataFrame(categorias_data) | |
| print(f" ✅ Categorías creadas: {len(df_categorias)} categorías") | |
| # ==================== HOJA 3: RESPUESTAS ESTÁNDAR ==================== | |
| print("\n📝 Creando hoja: 'Respuestas Estándar'...") | |
| respuestas_data = [ | |
| { | |
| "Código": "R001", | |
| "Situación": "Extravío de folio o credenciales", | |
| "Respuesta": "El usuario debe utilizar la opción 'Recuperar folio' en el portal oficial proporcionando su CURP, o contactar a la Mesa de Servicio para asistencia.", | |
| "Palabras Clave": "folio, perdí, olvidé, credencial, acceso", | |
| "Categoría": "Soporte Técnico", | |
| "Versión": "1.2", | |
| "Última Actualización": "2024-01-10" | |
| }, | |
| { | |
| "Código": "R002", | |
| "Situación": "Error en correo electrónico registrado", | |
| "Respuesta": "Solicitar el cambio de correo electrónico a través de la Mesa de Servicio adjuntando identificación oficial para validación.", | |
| "Palabras Clave": "correo, error, cambiar, corrección, email", | |
| "Categoría": "Soporte Técnico", | |
| "Versión": "1.1", | |
| "Última Actualización": "2024-01-15" | |
| }, | |
| { | |
| "Código": "R003", | |
| "Situación": "Problemas de acceso a la plataforma", | |
| "Respuesta": "Verificar que las credenciales se ingresen correctamente (mayúsculas/minúsculas) y limpiar caché/cookies del navegador. Si persiste, contactar a Soporte Técnico.", | |
| "Palabras Clave": "acceso, plataforma, no entra, error login, contraseña", | |
| "Categoría": "Soporte Técnico", | |
| "Versión": "1.3", | |
| "Última Actualización": "2024-01-20" | |
| }, | |
| { | |
| "Código": "R004", | |
| "Situación": "Consulta sobre equivalencia de estudios", | |
| "Respuesta": "Los interesados con estudios previos deben tramitar un Dictamen de Equivalencia o Revalidación ante Control Escolar, presentando documentos oficiales de estudios anteriores.", | |
| "Palabras Clave": "equivalencia, revalidación, estudios previos, materias, convalidar", | |
| "Categoría": "Académico", | |
| "Versión": "2.0", | |
| "Última Actualización": "2024-02-01" | |
| }, | |
| { | |
| "Código": "R005", | |
| "Situación": "Falta de certificado de secundaria", | |
| "Respuesta": "Mientras se tramita el duplicado, puede utilizar la Carta Compromiso disponible en el portal oficial. Tiene 6 meses para presentar el certificado original.", | |
| "Palabras Clave": "certificado, secundaria, perdí, duplicado, carta compromiso", | |
| "Categoría": "Documentación", | |
| "Versión": "1.5", | |
| "Última Actualización": "2024-02-10" | |
| }, | |
| { | |
| "Código": "R006", | |
| "Situación": "Consulta sobre duración del programa", | |
| "Respuesta": "El plan de estudios consta de 23 módulos con duración estimada de 2 años y 4 meses. Cada módulo tiene duración aproximada de 4 semanas.", | |
| "Palabras Clave": "duración, cuánto tiempo, módulos, plan estudios, semestres", | |
| "Categoría": "Información General", | |
| "Versión": "1.0", | |
| "Última Actualización": "2024-01-05" | |
| }, | |
| { | |
| "Código": "R007", | |
| "Situación": "Consulta sobre costos del programa", | |
| "Respuesta": "Prepa en Línea-SEP es un servicio educativo totalmente gratuito, sin costo de inscripción, mensualidades ni por expedición de certificado.", | |
| "Palabras Clave": "costo, gratuito, pago, mensualidad, inscripción", | |
| "Categoría": "Información General", | |
| "Versión": "1.0", | |
| "Última Actualización": "2024-01-05" | |
| } | |
| ] | |
| df_respuestas = pd.DataFrame(respuestas_data) | |
| print(f" ✅ Respuestas estándar creadas: {len(df_respuestas)} respuestas") | |
| # ==================== HOJA 4: ESTADÍSTICAS ==================== | |
| print("\n📝 Creando hoja: 'Estadísticas'...") | |
| estadisticas_data = [ | |
| { | |
| "Métrica": "Total Tickets", | |
| "Valor": len(df_tickets), | |
| "Período": "Ene-Mar 2024", | |
| "Tendencia": "↑ 15% vs período anterior", | |
| "Objetivo": "Reducir en 10%" | |
| }, | |
| { | |
| "Métrica": "Tiempo Promedio de Respuesta", | |
| "Valor": "38 horas", | |
| "Período": "Ene-Mar 2024", | |
| "Tendencia": "↓ 12% vs período anterior", | |
| "Objetivo": "< 24 horas" | |
| }, | |
| { | |
| "Métrica": "Tickets Resueltos", | |
| "Valor": f"{sum(1 for t in tickets_data if t['Estado'] == 'Resuelto')}", | |
| "Período": "Ene-Mar 2024", | |
| "Tendencia": "↑ 8% vs período anterior", | |
| "Objetivo": "> 90%" | |
| }, | |
| { | |
| "Métrica": "Satisfacción del Usuario", | |
| "Valor": "4.2/5.0", | |
| "Período": "Ene-Mar 2024", | |
| "Tendencia": "↑ 0.3 vs período anterior", | |
| "Objetivo": "> 4.5" | |
| }, | |
| { | |
| "Métrica": "Tickets por Categoría (Top 3)", | |
| "Valor": "Soporte Técnico (35%), Académico (30%), Documentación (20%)", | |
| "Período": "Ene-Mar 2024", | |
| "Tendencia": "Estable", | |
| "Objetivo": "Balancear distribución" | |
| } | |
| ] | |
| df_estadisticas = pd.DataFrame(estadisticas_data) | |
| print(f" ✅ Estadísticas creadas: {len(df_estadisticas)} métricas") | |
| # ==================== HOJA 5: GLOSARIO ==================== | |
| print("\n📝 Creando hoja: 'Glosario'...") | |
| glosario_data = [ | |
| { | |
| "Término": "SIGAPREP", | |
| "Definición": "Sistema de Gestión Académica de Prepa en Línea-SEP. Plataforma donde los estudiantes acceden a sus módulos, calificaciones y trámites.", | |
| "Área": "Académico/Tecnológico", | |
| "Ejemplo": "Ingresar a SIGAPREP para consultar calificaciones" | |
| }, | |
| { | |
| "Término": "Mesa de Servicio", | |
| "Definición": "Área de atención al usuario que resuelve dudas y problemas relacionados con el registro, acceso y trámites administrativos.", | |
| "Área": "Atención a Usuarios", | |
| "Ejemplo": "Contactar a la Mesa de Servicio para cambio de correo" | |
| }, | |
| { | |
| "Término": "Dictamen de Equivalencia", | |
| "Definición": "Documento oficial que establece qué módulos del plan de estudios se consideran acreditados por estudios previos.", | |
| "Área": "Académico", | |
| "Ejemplo": "Tramitar Dictamen de Equivalencia para estudios en CONALEP" | |
| }, | |
| { | |
| "Término": "Carta Compromiso", | |
| "Definición": "Documento temporal que permite realizar el registro cuando el aspirante no cuenta con el certificado de secundaria físico.", | |
| "Área": "Documentación", | |
| "Ejemplo": "Subir Carta Compromiso durante el registro" | |
| }, | |
| { | |
| "Término": "SLA", | |
| "Definición": "Service Level Agreement (Acuerdo de Nivel de Servicio). Tiempo máximo para atender y resolver un ticket.", | |
| "Área": "Métricas", | |
| "Ejemplo": "El SLA para Soporte Técnico es 24 horas" | |
| }, | |
| { | |
| "Término": "Folio", | |
| "Definición": "Identificador único asignado a cada registro, ticket o trámite dentro del sistema.", | |
| "Área": "General", | |
| "Ejemplo": "Conservar el folio de registro para futuras consultas" | |
| } | |
| ] | |
| df_glosario = pd.DataFrame(glosario_data) | |
| print(f" ✅ Términos de glosario creados: {len(df_glosario)} términos") | |
| # ==================== GUARDAR EXCEL ==================== | |
| print("\n💾 Guardando archivo Excel...") | |
| with pd.ExcelWriter(excel_path, engine='openpyxl') as writer: | |
| # Hoja 1: Tickets (con formato) | |
| df_tickets.to_excel(writer, sheet_name='Tickets', index=False) | |
| # Hoja 2: Categorías | |
| df_categorias.to_excel(writer, sheet_name='Categorías', index=False) | |
| # Hoja 3: Respuestas Estándar | |
| df_respuestas.to_excel(writer, sheet_name='Respuestas Estándar', index=False) | |
| # Hoja 4: Estadísticas | |
| df_estadisticas.to_excel(writer, sheet_name='Estadísticas', index=False) | |
| # Hoja 5: Glosario | |
| df_glosario.to_excel(writer, sheet_name='Glosario', index=False) | |
| # Obtener el libro de trabajo para aplicar formatos | |
| workbook = writer.book | |
| worksheet_tickets = writer.sheets['Tickets'] | |
| # Ajustar anchos de columnas para mejor visualización | |
| for column in worksheet_tickets.columns: | |
| max_length = 0 | |
| column_letter = column[0].column_letter | |
| for cell in column: | |
| try: | |
| if len(str(cell.value)) > max_length: | |
| max_length = len(str(cell.value)) | |
| except: | |
| pass | |
| adjusted_width = min(max_length + 2, 50) | |
| worksheet_tickets.column_dimensions[column_letter].width = adjusted_width | |
| print(f"\n✅ EXCEL CREADO EXITOSAMENTE!") | |
| print("=" * 60) | |
| print(f"📂 Archivo: {excel_path}") | |
| print(f"📄 Tamaño: {os.path.getsize(excel_path) / 1024:.1f} KB") | |
| print(f"📑 Hojas creadas: 5") | |
| print(f"📊 Total registros en Tickets: {len(df_tickets)}") | |
| print("\n📋 CONTENIDO DEL ARCHIVO:") | |
| print(" 1. 🎫 Tickets - Todos los casos registrados") | |
| print(" 2. 🏷️ Categorías - Clasificación y SLAs") | |
| print(" 3. 💬 Respuestas Estándar - Respuestas predefinidas") | |
| print(" 4. 📈 Estadísticas - Métricas y tendencias") | |
| print(" 5. 📚 Glosario - Términos clave explicados") | |
| print("\n🎯 LISTO PARA:") | |
| print(" • Cargar al sistema RAG: python scripts/upload_documents.py --file data/documents/tickets.xlsx") | |
| print(" • Presentar a tu jefe: Estructura profesional y completa") | |
| print(" • Expandir: Añadir más tickets cuando sea necesario") | |
| # Crear también un archivo de configuración para referencia | |
| config_data = { | |
| "excel_file": excel_path, | |
| "created_at": datetime.now().isoformat(), | |
| "sheets": { | |
| "Tickets": { | |
| "description": "Registros de tickets con categorización completa", | |
| "row_count": len(df_tickets), | |
| "columns": list(df_tickets.columns) | |
| }, | |
| "Categorías": { | |
| "description": "Catálogo de categorías y subcategorías con SLAs", | |
| "row_count": len(df_categorias), | |
| "columns": list(df_categorias.columns) | |
| }, | |
| "Respuestas Estándar": { | |
| "description": "Respuestas predefinidas para situaciones comunes", | |
| "row_count": len(df_respuestas), | |
| "columns": list(df_respuestas.columns) | |
| } | |
| } | |
| } | |
| config_path = "data/documents/tickets_config.json" | |
| with open(config_path, 'w', encoding='utf-8') as f: | |
| import json | |
| json.dump(config_data, f, ensure_ascii=False, indent=2) | |
| print(f"\n⚙️ Configuración guardada en: {config_path}") | |
| return excel_path | |
| def main(): | |
| """Función principal""" | |
| print("🚀 GENERADOR DE EXCEL PARA SISTEMA RAG") | |
| print("=" * 60) | |
| print("Este script crea un archivo Excel profesional con:") | |
| print("• 30+ tickets reales de Prepa en Línea-SEP") | |
| print("• Categorización completa") | |
| print("• Respuestas institucionales") | |
| print("• Metadatos enriquecidos") | |
| print("• Estructura lista para RAG") | |
| print("=" * 60) | |
| try: | |
| excel_path = create_excel_file() | |
| # Mostrar vista previa | |
| print("\n" + "=" * 60) | |
| print("👁️ VISTA PREVIA (primeros 3 tickets):") | |
| print("=" * 60) | |
| df = pd.read_excel(excel_path, sheet_name='Tickets') | |
| print(df[['Folio', 'Categoría', 'Asunto', 'Prioridad', 'Estado']].head(3).to_string(index=False)) | |
| print("\n🎉 ¡ARCHIVO EXCEL LISTO PARA TU PRESENTACIÓN!") | |
| print("\n💡 Para cargar al sistema RAG, ejecuta:") | |
| print(f" python scripts/upload_documents.py --file {excel_path}") | |
| except Exception as e: | |
| print(f"\n❌ ERROR: {e}") | |
| import traceback | |
| traceback.print_exc() | |
| if __name__ == "__main__": | |
| # Instalar dependencias si es necesario | |
| try: | |
| import pandas as pd | |
| import openpyxl | |
| except ImportError: | |
| print("📦 Instalando dependencias necesarias...") | |
| import subprocess | |
| subprocess.check_call([sys.executable, "-m", "pip", "install", "pandas", "openpyxl"]) | |
| import pandas as pd | |
| main() |