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
Utilizzare Azure Cosmos DB con i vettori
Gestire gli accessi con Token su Azure Container Registry
Ottimizzare le pull con Artifact Cache di Azure Container Registry
Disabilitare automaticamente un workflow di GitHub (parte 2)
Sfruttare gli embedding e la ricerca vettoriale con Azure SQL Database
Referenziare un @layer più alto in CSS
Gestire i dati con Azure Cosmos DB Data Explorer
Utilizzare il metodo IntersectBy per eseguire l'intersection di due liste
Utilizzare gRPC su App Service di Azure
Anonimizzare i dati sensibili nei log di Azure Front Door
Ottenere un token di accesso per una GitHub App
Utilizzare Locust con Azure Load Testing