Logic Apps è un motore di workflow fortemente basato su servizi che permette di esprimere velocemente logiche in forma visuale. E' perfetto quando i requisiti non sono particolarmente complicati e ci esonera da moltissimi aspetti di hosting e setup del progetto.
In questo script lo vogliamo utilizzare abbinandolo ad un servizio dei Cognitive Service: content moderator. Il servizio permette di inviare un'immagine e ottenere una valutazione sul grado di razzismo o della presenza di contenuti per adulti. Nelle Logic Apps esiste un connettore che ci permette facilmente di integrare questo servizio e di realizzare, per esempio, un workflow che analizzi tutte le nuove immagini inserite in un blob per ricevere un'e-mail che inviti a controllare il contenuto nel caso l'esito dia un controllo positivo.
Creiamo quindi una nuova Logic App e posizioniamoci nel designer. Inseriamo prima di tutto un trigger When a blob is added or modified.
![](https://www.cloudnativeitalia.com/script/images/182.jpg)
Indichiamo il container e gli intervalli di controllo. Successivamente creiamo una action di nome Create SAS URI by path, in modo da creare un indirizzo temporaneo di lettura all'immagine.
![](https://www.cloudnativeitalia.com/script/images/182_2.jpg)
Diamo una scadenza di un'ora usando l'espressione addDays(utcNow(), 1). Procediamo con la action Check if an image contains racy or adult content indicando di usare l'indirizzo temporaneo appena creato.
![](https://www.cloudnativeitalia.com/script/images/182_3.jpg)
Creiamo infine una condizione che vada a valutare la presenza in OR di contenuti per adulti o razzisti.
![](https://www.cloudnativeitalia.com/script/images/182_4.jpg)
In caso positivo inviamo un'e-mail al moderatore indicando l'indirizzo dell'immagine e la classificazione data.
![](https://www.cloudnativeitalia.com/script/images/182_5.jpg)
Ad ogni passaggio sarà richiesto di impostare le rispettive connessioni e chiavi, ma in pochi minuti otteniamo un sistema scalabile in grado di effettuare controlli su poche o moltissime immagini.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Inizializzare i container in Azure Container Apps
Accesso sicuro ai secrets attraverso i file in Azure Container Apps
Generare un hash con SHA-3 in .NET
Short-circuiting della Pipeline in ASP.NET Core
Utilizzare il nuovo modello GPT-4o con Azure OpenAI
Generare HTML a runtime a partire da un componente Razor in ASP.NET Core
Generare la software bill of material (SBOM) in GitHub
Usare lo spread operator con i collection initializer in C#
Autenticarsi in modo sicuro su Azure tramite GitHub Actions
Gestire errori funzionali tramite exception in ASP.NET Core Web API
Utilizzare un service principal per accedere a Azure Container Registry
Eseguire le GitHub Actions offline