Quando sviluppiamo web app pubbliche è frequente dare la possibilità all'utente di immettere contenuti testuali, brevi o lunghi. Se questi poi vengono condivisi con altre persone, è fondamentale mettere in atto dei controlli per evitare che contenuti inappropriati vengano caricati.
A tale scopo, Microsoft ha creato una serie di servizi identificati con il nome Microsoft Cognitive Service, che risolvono facilmente questo e tanti altri problemi. Tra questi servizi sono presenti anche le content moderator API, le quali permettono di validare un testo conoscendo se sono presenti parole volgari e riconoscere numeri di telefono o indirizzi e-mail al suo interno, anche se l'utente cerca di camuffarli.
Se disponiamo già di un account Azure, usufruire di questi servizi è molto semplice: è sufficiente andare a questo indirizzo https://portal.azure.com/#create/Microsoft.CognitiveServices/apitype/ContentModerator e creare un nuovo account. Possiamo utilizzare anche la forma gratuita, più che sufficiente anche in piccole realtà.

Recuperiamo successivamente la chiave per poterci autenticare al servizio, come visibile nell'immagine seguente.

I servizi sono esposti tramite endpoint HTTP perciò sono invocabili con qualsiasi linguaggio. Per poter provare velocemente questi servizi, possiamo sfruttare la pagina di test disponibile a questo indirizzo https://docs.microsoft.com/en-us/azure/cognitive-services/content-moderator/try-text-api, cliccare su Text Moderation API Reference e scegliere la region più vicina. Ci viene presentata una pagina dove indicare la chiave, la lingua (ita nel caso di italiano) e PII per indicare se riconoscere anche numeri di telefono o e-mail.

Nel corpo del messaggio HTTP inseriamo il testo, il quale può essere anche HTML o markdown e premiamo send. Il risultato è un JSON contenente le informazioni delle parole riconosciute, simile a questo:
{ "OriginalText": "manda l'email a io at io.it, s****o", "PII": { "Email": [{ "Detected": "io@io.it", "SubType": "Suspected", "Text": "io at io.it", "Index": 16 }], "IPA": [], "Phone": [], "Address": [] }, "Terms": [{ "Index": 29, "OriginalIndex": 29, "ListId": 0, "Term": "s****o" }],
Il tool visualizza l'intera richiesta e risposta, perciò emularla con il proprio linguaggio di riferimento diventa piuttosto banale.
La documentazione è visibile a questo indirizzo
https://docs.microsoft.com/en-us/azure/cognitive-services/content-moderator/text-moderation-api
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Usare le navigation property in QuickGrid di Blazor
Configurare e gestire sidecar container in Azure App Service
Sfruttare GPT-4o realtime su Azure Open AI per conversazioni vocali
Migliorare la scalabilità delle Azure Function con il Flex Consumption
Utilizzare Locust con Azure Load Testing
Testare l'invio dei messaggi con Event Hubs Data Explorer
.NET Conference Italia 2024
Path addizionali per gli asset in ASP.NET Core MVC
Migliorare l'organizzazione delle risorse con Azure Policy
Creare agenti facilmente con Azure AI Agent Service
Utilizzare Container Queries nominali
Aprire una finestra di dialogo per selezionare una directory in WPF e .NET 8