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.

Prima settimana

Analisi delle caratteristiche di diversi ecosistemi e infrastrutture, documentando vantaggi e limiti di ciascuna opzione.

Seconda settimana

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}
Terza settimana

Test, ottimizzazione e documentazione finale del progetto.

Visualizza Presentazione

Competenze Acquisite

Project Management

Metodologia waterfall e gestione delle milestone

Security Standards

WASP e best practice di sicurezza enterprise

AI & Voicebot

Sviluppo e integrazione di assistenti vocali

Team Collaboration

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."