azure-ai-contentsafety-ts
Analisa textos e imagens para encontrar conteúdo prejudicial. Permite personalizar listas de bloqueio para maior controle sobre o que é permitido.
O que ela faz
Este serviço verifica textos e imagens para encontrar conteúdo prejudicial, como ódio, conteúdo sexual, violência ou automutilação. Ele também permite que você crie listas de palavras ou frases proibidas.
Quando usar
- ✓Para moderar comentários em um site.
- ✓Para verificar se um texto ou imagem é seguro antes de publicar.
- ✓Para criar listas de palavras que não devem aparecer em seu conteúdo.
Exemplo do que pedir para a IA
“Verifique este texto: 'O evento foi cancelado devido a ameaças de violência.'”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
Você envia o texto ou a imagem para o serviço. Ele analisa o conteúdo e diz se há algo prejudicial e qual o nível de gravidade. Você pode adicionar suas próprias palavras proibidas para uma verificação mais personalizada.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add sickn33/agentic-awesome-skills --skill azure-ai-contentsafety-tsOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/azure-ai-contentsafety-ts/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
SDK REST do Azure AI Content Safety para TypeScript
Analise texto e imagens em busca de conteúdo prejudicial com listas de bloqueio personalizáveis.
Instalação
npm install @azure-rest/ai-content-safety @azure/identity @azure/core-auth
Variáveis de Ambiente
CONTENT_SAFETY_ENDPOINT=https://<resource>.cognitiveservices.azure.com
CONTENT_SAFETY_KEY=<api-key>
Autenticação
Importante: Este é um cliente REST. ContentSafetyClient é uma função, não uma classe.
Chave de API
import ContentSafetyClient from "@azure-rest/ai-content-safety";
import { AzureKeyCredential } from "@azure/core-auth";
const client = ContentSafetyClient(
process.env.CONTENT_SAFETY_ENDPOINT!,
new AzureKeyCredential(process.env.CONTENT_SAFETY_KEY!)
);
DefaultAzureCredential
import ContentSafetyClient from "@azure-rest/ai-content-safety";
import { DefaultAzureCredential } from "@azure/identity";
const client = ContentSafetyClient(
process.env.CONTENT_SAFETY_ENDPOINT!,
new DefaultAzureCredential()
);
Analisar Texto
import ContentSafetyClient, { isUnexpected } from "@azure-rest/ai-content-safety";
const result = await client.path("/text:analyze").post({
body: {
text: "Text content to analyze",
categories: ["Hate", "Sexual", "Violence", "SelfHarm"],
outputType: "FourSeverityLevels" // or "EightSeverityLevels"
}
});
if (isUnexpected(result)) {
throw result.body;
}
for (const analysis of result.body.categoriesAnalysis) {
console.log(`${analysis.category}: severity ${analysis.severity}`);
}
Analisar Imagem
Conteúdo Base64
import { readFileSync } from "node:fs";
const imageBuffer = readFileSync("./image.png");
const base64Image = imageBuffer.toString("base64");
const result = await client.path("/image:analyze").post({
body: {
image: { content: base64Image }
}
});
if (isUnexpected(result)) {
throw result.body;
}
for (const analysis of result.body.categoriesAnalysis) {
console.log(`${analysis.category}: severity ${analysis.severity}`);
}
URL do Blob
const result = await client.path("/image:analyze").post({
body: {
image: { blobUrl: "https://storage.blob.core.windows.net/container/image.png" }
}
});
Gerenciamento de Listas de Bloqueio
Criar Lista de Bloqueio
const result = await client
.path("/text/blocklists/{blocklistName}", "my-blocklist")
.patch({
contentType: "application/merge-patch+json",
body: {
description: "Custom blocklist for prohibited terms"
}
});
if (isUnexpected(result)) {
throw result.body;
}
console.log(`Created: ${result.body.blocklistName}`);
Adicionar Itens à Lista de Bloqueio
const result = await client
.path("/text/blocklists/{blocklistName}:addOrUpdateBlocklistItems", "my-blocklist")
.post({
body: {
blocklistItems: [
{ text: "prohibited-term-1", description: "First blocked term" },
{ text: "prohibited-term-2", description: "Second blocked term" }
]
}
});
if (isUnexpected(result)) {
throw result.body;
}
for (const item of result.body.blocklistItems ?? []) {
console.log(`Added: ${item.blocklistItemId}`);
}
Analisar com Lista de Bloqueio
const result = await client.path("/text:analyze").post({
body: {
text: "Text that might contain blocked terms",
blocklistNames: ["my-blocklist"],
haltOnBlocklistHit: false
}
});
if (isUnexpected(result)) {
throw result.body;
}
// Check blocklist matches
if (result.body.blocklistsMatch) {
for (const match of result.body.blocklistsMatch) {
console.log(`Blocked: "${match.blocklistItemText}" from ${match.blocklistName}`);
}
}
Listar Listas de Bloqueio
const result = await client.path("/text/blocklists").get();
if (isUnexpected(result)) {
throw result.body;
}
for (const blocklist of result.body.value ?? []) {
console.log(`${blocklist.blocklistName}: ${blocklist.description}`);
}
Excluir Lista de Bloqueio
await client.path("/text/blocklists/{blocklistName}", "my-blocklist").delete();
Categorias de Dano
| Categoria | Termo da API | Descrição |
|---|---|---|
| Ódio e Justiça | Hate |
Linguagem discriminatória direcionada a grupos de identidade |
| Sexual | Sexual |
Conteúdo sexual, nudez, pornografia |
| Violência | Violence |
Dano físico, armas, terrorismo |
| Autoagressão | SelfHarm |
Automutilação, suicídio, transtornos alimentares |
…
Perguntas frequentes
Quais tipos de conteúdo prejudicial ele detecta?
Ele detecta ódio, conteúdo sexual, violência e automutilação.
O que são 'listas de bloqueio'?
São listas que você cria com palavras ou frases específicas que deseja proibir em seu conteúdo.
Como sei se o conteúdo é realmente prejudicial?
O serviço atribui um nível de gravidade (de 0 a 6) para cada categoria de conteúdo prejudicial detectado. Níveis mais altos indicam maior risco.
Detalhes
Descrição original do autor
Analyze text and images for harmful content with customizable blocklists.
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #2268
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
agent-architecture-audit
Faz seu agente verificar se tudo está funcionando corretamente. Ele encontra e conserta problemas em sistemas de IA, garantindo que funcionem como esperado.
affaan-m/ECC
agent-eval
Ajuda seu agente a comparar diferentes ferramentas de programação de IA. Ele mede qual é mais rápido, barato e confiável para realizar tarefas específicas.
affaan-m/ECC
agent-harness-construction
Faz seu agente entender melhor como realizar tarefas. Ele otimiza as ferramentas e instruções que o agente usa para aumentar suas chances de sucesso.
affaan-m/ECC