L'Azienda
Unipol è uno dei principali gruppi assicurativi europei e leader in Italia nei rami Danni. Opera attraverso marchi quali UnipolSai Assicurazioni, Linear Assicurazioni, UniSalute e Arca Vita, oltre ai servizi bancari e finanziari in partnership con BPER Banca.
Il Gruppo gestisce anche patrimoni immobiliari e attività alberghiere, rappresentando una realtà diversificata e innovativa nel panorama finanziario italiano.
Il Mio Ruolo
Sono stato inserito nel dipartimento Digital Acceleration Beyond Insurance, all'interno della Direzione Sistemi Informatici. Il mio team si occupava della gestione di un progetto informatico seguendo la metodologia waterfall.
L'obiettivo principale era sviluppare e migliorare un voicebot preesistente, confrontando diverse soluzioni tecnologiche per valutarne l'efficacia. Ho seguito tutte le fasi del ciclo di vita del progetto: avvio, progettazione, sviluppo, test e chiusura.
Il Progetto Voicebot
Il progetto principale su cui ho lavorato riguardava la creazione di un voicebot telefonico di assistenza per un'azienda di car rental del gruppo Unipol.
Analisi delle caratteristiche di diversi ecosistemi e infrastrutture, documentando vantaggi e limiti di ciascuna opzione.
Sviluppo di parti di codice del voicebot e integrazione con piattaforme di comunicazione interne.
Funzione di esempio, salvataggio della conversazione su db:
import json
import boto3
from botocore.exceptions import ClientError
def lambda_handler(event, context):
saveAction = event.get("Details", {}).get("Parameters", {}).get("saveAction")
return saveData(event) if str(saveAction) == "true" else fetchData(event)
def saveData(event):
bucket_name = "user-conversation-data"
s3_client = boto3.client('s3')
userPhoneNumber = event["Details"]["ContactData"]["CustomerEndpoint"]["Address"]
# Get parameter and prepare data
calledCarroAttrezzi = event["Details"]["Parameters"].get("calledCarroAttrezzi")
outputData = {"calledCarroAttrezzi": calledCarroAttrezzi or "false"}
try:
# Save to S3
s3_client.put_object(
Bucket=bucket_name,
Key=f"{userPhoneNumber}/sessionAttributes.json",
Body=json.dumps(outputData)
return {'statusCode': 200, 'key': True}
except Exception as e:
return {'statusCode': 500, 'key': False}
def fetchData(event):
bucket_name = "user-conversation-data"
s3_client = boto3.client('s3')
userPhoneNumber = event["Details"]["ContactData"]["CustomerEndpoint"]["Address"]
try:
# Retrieve from S3
response = s3_client.get_object(
Bucket=bucket_name,
Key=f"{userPhoneNumber}/sessionAttributes.json"
)
json_content = json.loads(response["Body"].read())
return {
'statusCode': 200,
'calledCarroAttrezzi': json_content["calledCarroAttrezzi"]
}
except ClientError as e:
return {'statusCode': 500, 'key': False}
Competenze Acquisite
Metodologia waterfall e gestione delle milestone
WASP e best practice di sicurezza enterprise
Sviluppo e integrazione di assistenti vocali
Lavoro in team multidisciplinari
"L'esperienza in Unipol mi ha permesso di concretizzare molte delle nozioni teoriche studiate, mostrandomi quali argomenti devo approfondire ulteriormente per applicarli a problemi reali. Questo percorso mi ha incuriosito e motivato a continuare lo studio."