ASISTENTE DE SOPORTE TECNICO
par Leoneidy Villasana @leovilla97_lv
- 35
- 0
- 0
Introducción
🛠️ Asistente de Soporte Técnico en Python🛠️ Este proyecto nació directamente de mi trabajo diario resolviendo casos técnicos. Usé Python para crear un asistente capaz de reconocer situaciones comunes y generar respuestas automáticas de forma clara y eficiente, así como registrar reportes de clientes y poder ver un bistorial de reportes. La lógica del programa se basa en estructuras como diccionarios y condicionales para simular lo que hacemos al responder tickets en la vida real. Aunque es una herramienta muy básica me ayudó a implementar lo aprendido en este curso.

Materiales
Visual Studio Code
Python
🛠️ Asistente de Soporte Técnico en Python🛠️
Aca agrego una tabla con ejemplos de entrada y la salida que se espera del asistente

🛠️ Asistente de Soporte Técnico en Python🛠️
Añado el codigo
####### ASISTENTE DE SOPORTE TECNICO ######
"""
Este asistente permite a los agentes de atencion al cliente registar nuevos casos, agregandolos
a un archivo csv, consultar el estatus de los casos, cambiar el estatus de los casos y
sugerir respuestas de acuerdo al reporte del cliente, asi como tambien registrar la solucion prestada a cada caso
"""
from datetime import datetime
#import csv
tickets= []
contador = 1
respuestas={"sin internet": "Por favor verifique que los equipos se encuentren conectados correctamenre",
"Lentitud": "Estimado cliente, debe realizar una prueba de velocidad conectando un equipo directamente al cable de servicio" ,
"Intermitencia": "Verifique por favor que los equipos se encuentran debidamente energizados y los cables debidamente conectados",
"Bancos": "En este momento vamos a escalar su problema a nuestros especialistas de red y le contactarán a la brevedad"}
def generar_id(): #para generar los numeros de ticket de manera secuencial
global contador
id_nuevo = contador
contador +=1
return id_nuevo
def mostrar_menu():
print(f"Escoge una de las opciones")
print(f"1. Buscar ticket") #busqueda por nro de ticket funcion buscar ticket
print(f"2. Registrar nuevo ticket")
print(f"3. Mostrar historial de tickets") #Busqueda por nombre
print(f"4. Mostrar respuesta predeterminada para la falla del cliente") #llamar a la funcion mostrar_respuesta
print(f"5. cerrar ticket") #busqueda por nro de ticket y nombre
print(f"9. cerrar el programa") #para salir del ciclo
def menu_fallas():
print(f" ¿Que falla esta reportando el cliente?")
print("1. Sin internet")
print("2. Lentitud")
print("3. Intermitencia")
print("4. Falla de acceso a Bancos")
def registrar_ticket():
reporte={}
print(f"indicame el nombre del cliente")
nombre = input()
print("indicame la falla que presenta el cliente")
menu_fallas()
falla= int(input())
ticket_existente=None
if falla==1:
var="Sin internet"
elif falla==2:
var="Lentitud"
elif falla==3:
var="Intermitencia"
elif falla==4:
var="Acceso a Bancos"
for ticket in tickets:
# Revisando que no existan tickets para este cliente por esta falla
if ticket["nombre"]==nombre and ticket["problema"]==var and ticket["estatus"]=="abierto":
ticket_existente=ticket
if ticket_existente:
print(f"Lo siento, ya este cliente tiene un ticket abierto por este problema {ticket_existente}")
else:
reporte["id"]= generar_id() #genero el nro de ticket y lo agrego al diccionario
reporte["nombre"] = nombre
if falla==1:
reporte["problema"]= "Sin internet"
elif falla==2:
reporte["problema"]= "Lentitud"
elif falla==3:
reporte["problema"]= "Intermitencia"
elif falla==4:
reporte["problema"]= "Acceso a Bancos"
reporte["estatus"] = "abierto"
reporte["fecha"] = datetime.now()
print(f" Has registrado el siguiente reporte {reporte}")
tickets.append(reporte)
def mostrar_respuesta():
menu_fallas()
falla= int(input())
if falla == 1:
print(f"{respuestas['sin internet']}")
elif falla ==2:
print(f"{respuestas['Lentitud']}")
elif falla == 3:
print(f"{respuestas['Intermitencia']}")
elif falla == 4:
print(f"{respuestas['Bancos']}")
elif falla == 0:
mostrar_menu()
def buscar_ticket():
print(f"indicame el numero de ticket a buscar")
nro_ticket=int(input())
reporte_encontrado=None
for ticket in tickets:
if ticket["id"]==nro_ticket:
reporte_encontrado=ticket
if reporte_encontrado:
print(reporte_encontrado)
else:
print(f"Lo siento, el ticket numero {nro_ticket} no se encuentra registrado")
def cerrar_ticket():
print(f"indicame el numero de ticket que deseas cerrar")
nro_ticket=int(input())
print(f"indicame el nombre del cliente")
cliente=input()
ticket_encontrado=None
for ticket in tickets:
if ticket["id"]== nro_ticket and ticket["nombre"]==cliente:
ticket["estatus"]="cerrado"
print(f"indicame la solucion a la falla")
ticket["solucion"]=input()
ticket_encontrado=ticket
if ticket_encontrado:
print(ticket_encontrado)
else:
print(f"Lo siento, el ticket numero {nro_ticket} no se encuentra registrado")
def mostrar_historial():
print("indicame el nombre del cliente")
cliente=input()
lista_de_tickets=[]
ticket_encontrado=None
for ticket in tickets:
if ticket["nombre"]==cliente:
lista_de_tickets.append(ticket)
ticket_encontrado=ticket
if ticket_encontrado:
print(f" El historial de tickets de {cliente} es: {lista_de_tickets}")
else:
print(f"Lo siento, el cliente {cliente} no tiene tickets registrados")
#### MAIN ####
print("BIENVENIDO A TU ASISTENTE DE SOPORTE TECNICO")
print("")
while True:
mostrar_menu()
opcion= int(input())
if opcion==1:
buscar_ticket()
elif opcion==2:
registrar_ticket()
elif opcion ==3:
mostrar_historial()
elif opcion==4:
mostrar_respuesta()
elif opcion==5:
cerrar_ticket()
elif opcion==9:
break

Gracias!
Gracias por ver, espero que pueda serte útil, algo de lo visto aqui

0 commentaire
Connectez-vous ou inscrivez-vous gratuitement pour commenter