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
Gestire liste di tipi semplici con Entity Framework Core
Creare un webhook in Azure DevOps
Creare una libreria CSS universale: i bottoni
Estrarre dati randomici da una lista di oggetti in C#
Utilizzare gRPC su App Service di Azure
Utilizzare Azure AI Studio per testare i modelli AI
Disabilitare automaticamente un workflow di GitHub (parte 2)
Popolare una classe a partire dal testo, con Semantic Kernel e ASP.NET Core Web API
Ottenere un token di accesso per una GitHub App
Gestire i dati con Azure Cosmos DB Data Explorer
Gestire domini wildcard in Azure Container Apps
Sfruttare i KeyedService in un'applicazione Blazor in .NET 8