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
Eseguire query manipolando le liste contenute in un oggetto mappato verso una colonna JSON
Sfruttare gli embedding e la ricerca vettoriale con Azure SQL Database
Usare una container image come runner di GitHub Actions
Utilizzare QuickGrid di Blazor con Entity Framework
Visualizzare le change sul plan di Terraform tramite le GitHub Actions
Popolare una classe a partire dal testo, con Semantic Kernel e ASP.NET Core Web API
Utilizzare il nuovo modello GPT-4o con Azure OpenAI
Applicare un filtro per recuperare alcune issue di GitHub
Creare una libreria CSS universale: Immagini
Migliorare la scalabilità delle Azure Function con il Flex Consumption
Creare una libreria CSS universale - Rotazione degli elementi
Path addizionali per gli asset in ASP.NET Core MVC