Vai al contenuto
BI, AI e ML per l'azienda

Data science sui dati aziendali

Il data scientist addestra dove preferisce, sul suo Jupyter e con i suoi strumenti. Muvia gli dà i dati governati da cui partire, esegue il modello su programma vicino ai dati e porta i punteggi in cruscotti, allarmi e report.

Scenario illustrativo: descrive un caso tipo, non il progetto di un cliente.

Fatture e incassi dal gestionale, clienti da Salesforce, ticket di assistenza da un'API REST e fidi in Excel entrano in Muvia, dove un modello addestrato dal team calcola un punteggio di rischio di ritardo; escono una tabella di punteggi, un cruscotto dei crediti a rischio, un allarme e un report settimanale.

Un buon modello che resta in un notebook non cambia nessuna decisione.

Il data scientist costruisce un modello che stima quali fatture verranno pagate in ritardo. Sul suo Jupyter funziona. Poi servono dati aggiornati ogni giorno, qualcuno che lo esegua, un posto dove scrivere i risultati e un modo per farli arrivare all'ufficio crediti: è lì che il modello si ferma.

In Muvia la divisione è netta. L'addestramento resta fuori, nell'ambiente che il team preferisce. Dentro ci sono i dati governati da cui partire, l'esecuzione programmata del modello e i risultati davanti a chi deve decidere.

Per chi
Data scientist e analisti che costruiscono modelli; ufficio crediti, tesoreria e controllo di gestione che ne usano i risultati.

Cosa ottieni

Addestra dove vuoi
Il team continua a usare il proprio ambiente e i propri strumenti per l'addestramento; Muvia non impone un modo di lavorare.
Feature con una sola definizione
Addestramento e inferenza leggono lo stesso dataset con campi stabili, alimentato dalle sorgenti e protetto da ruoli e permessi.
Esegui in Muvia, vicino ai dati
Nessun server da mantenere per il modello: l'inferenza gira su programma, in un runtime isolato, accanto alle tabelle che legge.
Risultati davanti al business
I punteggi finiscono nei cruscotti, negli allarmi e nei report che l'ufficio crediti usa già, non in un file da inoltrare.

Per il team tecnico

Come si costruisce in Muvia

  1. 1

    Esplora i dati governati

    Nell'editor SQL interroghi le tabelle che le sorgenti già alimentano, con un accesso in sola lettura. Il profilo delle colonne mostra nulli, valori distinti, minimi, massimi, quantili e istogramma prima ancora di pensare al modello.

  2. 2

    Prepara le feature

    Con una query calcoli per ogni fattura il ritardo medio del cliente, lo scaduto rispetto al fido, le fatture dell'ultimo anno e i ticket aperti. La salvi come dataset con campi stabili: la stessa definizione serve all'addestramento e all'inferenza.

  3. 3

    Addestra nel tuo ambiente

    Dal tuo Jupyter scarichi le righe del dataset con l'API pubblica in sola lettura e una chiave API, in JSON e a pagine. Addestri con scikit-learn o con lo strumento che preferisci ed esporti il modello in ONNX, o in joblib se è scikit-learn. In Muvia non c'è un'interfaccia di addestramento né un registro dei modelli: l'addestramento resta tuo.

  4. 4

    Allega il modello a una funzione

    Crei una funzione Python e alla sua versione alleghi il file del modello. Il runtime è chiuso e isolato, senza rete: numpy, pandas, pyarrow, scipy, scikit-learn, onnxruntime e joblib. Athena può scrivere una prima bozza del codice, e un'esecuzione di prova non scrive nulla.

  5. 5

    Programma l'inferenza

    Un flusso esegue la funzione ogni notte sulle fatture aperte e scrive i punteggi in una tabella gestita. Cruscotti, allarmi e report la leggono come qualsiasi altro dato; un modello riaddestrato è una nuova versione della funzione.

Funzione Python

import numpy as np
import onnxruntime as ort

FEATURE = ["ritardo_medio_gg", "scaduto_su_fido", "fatture_12m",
           "ticket_aperti", "importo"]

def transform(inputs, params, ctx):
    session = ort.InferenceSession(ctx.file("ritardi.onnx"))
    df = inputs["rows"]
    x = df[FEATURE].to_numpy(dtype=np.float32)
    _, proba = session.run(None, {session.get_inputs()[0].name: x})
    out = df[["numero_fattura", "codice_cliente", "scadenza"]].copy()
    out["rischio_ritardo"] = [p[1] for p in proba]
    alta = out["rischio_ritardo"] >= params["soglia"]
    out["fascia"] = np.where(alta, "alta", "normale")
    ctx.logger.info("punteggi calcolati: %d fatture", len(out))
    return {"rows": out}
Il modello esportato in ONNX viaggia con la versione della funzione; Muvia lo esegue sulle fatture aperte e scrive i punteggi.
I dati che servono
  • Fatture, scadenze e incassi dal gestionale su SQL Server
  • Clienti, settore e referenti da Salesforce
  • Ticket di assistenza aperti, letti da un'API REST
  • Fidi e condizioni di pagamento, da un file Excel
Le parti di Muvia usate

Portaci una domanda a cui oggi non sai rispondere.

Partiamo da una domanda vera della tua azienda e ti mostriamo il percorso dalla fonte al cruscotto, con i tuoi sistemi e non con quelli di una demo.