Pular para o conteúdo
Skillpedia
Agentes48 mil · #2268

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

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/azure-ai-contentsafety-ts/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/azure-ai-contentsafety-ts/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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-ts

Ou 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.md
Conteú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.

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#2268
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas