Una piattaforma di benessere con IA, e l'harness che ne dimostra la sicurezza

Un'API Django e un'applicazione React che reggono abbonamenti consumer, un portale per le aziende e un marketplace di telemedicina - con un motore di raccomandazione ancorato a trentamila soluzioni estratte e un harness Monte Carlo che ha eseguito centoventimila sessioni sintetiche prima del rilascio.

120k sessioni sintetiche nell'harness di sicurezza
30k soluzioni indicizzate per il retrieval
10 integrazioni con wearable
0 casi di crisi gestiti male al rilascio
IL MIO RUOLO
Backend, front end, i motori di raccomandazione e di retrieval, l'harness di valutazione, i pagamenti e il back office admin.
STACK
Django e DRF, React 18, PostgreSQL, Redis, Celery, Stripe, Zoom Video SDK, due provider di IA dietro un'unica astrazione.
LA PARTE PIÙ DIFFICILE
Dimostrare una proprietà di sicurezza invece di affermarla. Chiunque può aggiungere un guardrail; far vedere che regge su centomila percorsi è il lavoro vero.

La situazione

Un prodotto di benessere mentale con tre business dentro: un abbonamento per i consumatori, un portale per i datori di lavoro venduto alle aziende per i loro dipendenti e un marketplace dove gli utenti prenotano sessioni video con professionisti. Sopra tutto questo, un motore di raccomandazione che suggerisce che cosa dovrebbe fare una persona dopo, partendo da come dice di sentirsi.

Il terzo è il motivo per cui questo progetto merita di essere raccontato. Un motore di raccomandazione che suggerisce un esercizio di respirazione a qualcuno leggermente stressato è una funzionalità piacevole. Lo stesso motore che suggerisce un esercizio di respirazione a qualcuno in crisi è un errore grave. La domanda di ingegneria non è come lo costruisci - è come sai che non lo farà.

Che cosa ho costruito

Un backend Django e DRF con davanti un'applicazione React 18, consegnati come un unico sistema: abbonamenti e fatturazione, il portale per i datori di lavoro con la propria gestione dei posti, il marketplace di telemedicina su Zoom Video SDK, le funzioni di comunità, la gamification e un back office amministrativo completo per il team editoriale.

Il motore di raccomandazione

Un ibrido, non un modello puro. Da un check-in strutturato si ricava una valutazione graduata dello stato del sistema nervoso, e quel grado guida un campionamento pesato su un catalogo, invece di una lista statica ordinata - così il contesto batte la popolarità, e due persone in stati diversi non ricevono mai la stessa risposta solo perché un elemento è in generale ben valutato. Gli slot di scoperta, con un cooldown, impediscono al catalogo di collassare sugli stessi venti elementi, e l'hot path aggira completamente l'ORM, perché gira su ogni schermata.

Due provider di IA stanno dietro un'unica astrazione, commutabili dall'admin, con caching sulle risposte per tenere prevedibile il costo per utente. La scelta del provider è una decisione di configurazione, non di architettura - cosa che ha contato nel giro di un anno, quando i prezzi sono cambiati.

Retrieval che resta ancorato

Circa trentamila soluzioni distinte sono state estratte da circa novantacinque libri e indicizzate per il retrieval. L'ancoraggio è il punto centrale: il sistema risponde da quel corpus, non dall'impressione generale che un modello ha dei consigli di benessere. La ponderazione secondo l'adeguatezza nelle situazioni di crisi tiene i suggerimenti inappropriati lontani dagli stati gravi, i limiti di diversità impediscono a una sola fonte di dominare, e un indice di nutrizione in whitelist impedisce al modello di scivolare in consigli medici che non gli compete dare.

Il coach conversazionale che ci sta sopra ha memoria persistente tra le sessioni, un controllore di cadenza che spinge la conversazione verso un'azione concreta invece di lasciarla vagare piacevolmente, e una macchina a stati di moderazione a tre avvertimenti per i contenuti che dovrebbero chiudere lo scambio e passare la mano.

La parte di cui vado più fiera

Niente di quanto sopra vale qualcosa come semplice affermazione. Perciò ho costruito un harness Monte Carlo che genera utenti sintetici con stati vari e avversariali e li fa passare attraverso il motore reale.

Centoventimila sessioni in due esecuzioni, verificando due proprietà: che nessuna sessione in stato di crisi riceva mai una raccomandazione inappropriata e che nessun elemento del catalogo sia irraggiungibile - una scheda morta è contenuto che qualcuno ha scritto e che nessuno vedrà mai. Entrambe hanno tenuto.

L'harness è esposto come azione con un solo clic nell'admin, così il team editoriale lo rilancia dopo ogni modifica di contenuto invece di aspettare un ingegnere. È questa la parte che ne fa una proprietà di sicurezza e non uno screenshot del giorno del lancio: è verificato dalle persone che lo possono rompere, esattamente nel momento in cui potrebbero romperlo.

Una funzionalità di IA che non ha misurato nessuno non è una funzionalità. È un rischio che nessuno ha messo a prezzo e che per caso fa bella figura in demo.

Commercio e conformità

Abbonamenti Stripe con un motore bilingue di piani e sconti modificabile dall'admin, fatturazione elettronica con emissione automatica e sospensione in caso di insoluto, un motore di commissioni ambassador su più livelli, dieci integrazioni con wearable via OAuth e scoring dei lead che combina regole, un modello e un passaggio di AI.

Che cosa farei diversamente

Scriverei l'harness di valutazione prima del motore, non poco dopo. Ho costruito il motore di raccomandazione, poi ho costruito la cosa che lo dimostra - e ho perso una settimana a modificare il motore per poterlo testare. Se fossi partita da "che cosa dovrò dimostrare su questo?", il design sarebbe uscito meglio e con una settimana di anticipo.