For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Navegação principal

Moderação

Identifique conteúdo prejudicial em textos e imagens.

Use os modelos de moderação da OpenAI para detectar conteúdo prejudicial em textos e imagens. Você pode classificar entradas de forma independente com o endpoint de moderação ou solicitar pontuações de moderação junto com uma resposta gerada. Use os resultados para aplicar a política do seu aplicativo, por exemplo, filtrando conteúdo, encaminhando uma solicitação para revisão ou tomando medidas em relação a contas que enviam conteúdo sinalizado.

O modelo omni-moderation-latest aceita entradas de texto e imagem. Ele não classifica áudio. O endpoint de moderação é gratuito, e os arquivos de imagem podem ter até 20 MB.

Segurança infantil: Não envie à API de Moderação material identificado como abuso sexual infantil (CSAM) ou suspeito de conter esse tipo de conteúdo. A API não foi projetada para detectar ou lidar com CSAM e não substitui medidas específicas de proteção infantil. Consulte nossas Orientações sobre CSAM para conhecer as etapas de prevenção, detecção, resposta e denúncia de CSAM.

Escolha um fluxo de trabalho de moderação

Fluxo de trabalhoUse quando
Modere conteúdo geradoSeu aplicativo gera texto com a Responses API ou a API chat completions e precisa de sinais de moderação.
Classifique entradas de forma independenteSeu aplicativo precisa classificar textos ou imagens sem gerar uma resposta do modelo.
Entenda os resultados da moderaçãoSeu aplicativo precisa interpretar sinalizações, categorias, pontuações ou os tipos de entrada aos quais elas se aplicam.
Consulte as categorias compatíveisSeu aplicativo precisa saber quais categorias de conteúdo prejudicial se aplicam a textos, imagens ou ambos.

Modere conteúdo gerado

Quando seu aplicativo precisar de texto gerado e pontuações de moderação juntos, passe um objeto moderation no nível superior da solicitação de geração. A API retorna pontuações de moderação para a entrada do modelo e a saída gerada sem uma solicitação de moderação separada.

O modelo continua gerando normalmente. Revise os resultados da moderação antes de mostrar a saída a um usuário ou executar ações subsequentes.

Defina moderation.model ao criar uma resposta:

Gere uma resposta com pontuações de moderação
from openai import OpenAI

client = OpenAI()

response = client.responses.create(
    model="gpt-6-astra",
    input=[
        {
            "role": "user",
            "content": (
                "A user asks for instructions to make a harmful weapon. "
                "Draft a brief refusal and offer a safer alternative."
            ),
        }
    ],
    moderation={"model": "omni-moderation-latest"},
)

input_moderation = response.moderation.input
output_moderation = response.moderation.output
if input_moderation.type == "error":
    raise RuntimeError(input_moderation.message)
if output_moderation.type == "error":
    raise RuntimeError(output_moderation.message)

print(input_moderation.flagged)
print(output_moderation.flagged)

A Responses API retorna um objeto moderation_result referente à entrada em response.moderation.input e um objeto moderation_result referente à saída em response.moderation.output.

Os resultados de moderação incluídos na resposta usam os mesmos campos de categoria que um resultado de moderação independente. Comece com flagged para uma decisão inicial e, em seguida, examine categories e category_scores para registro em logs, roteamento, trilhas de auditoria ou filas de revisão humana. Uma recusa ou outra resposta que leve a segurança em consideração ainda pode ser sinalizada se abordar conteúdo prejudicial. Trate as pontuações de moderação como sinais para a política do seu aplicativo, não como uma decisão automática de bloqueio.

Verifique o tipo do resultado de moderação antes de ler as pontuações se seu aplicativo precisar lidar com falhas de moderação. Se uma etapa de moderação não puder ser concluída, o campo de moderação correspondente à entrada ou à saída poderá conter um erro em vez de pontuações de moderação.

Para solicitações com chamadas de ferramentas, a moderação abrange os argumentos dessas chamadas e as saídas das ferramentas quando aparecem no conteúdo da conversa. Ela não abrange nomes, descrições ou esquemas de ferramentas, nem esquemas de formato de resposta.

Se você transmitir uma resposta gerada por streaming, as pontuações de moderação chegarão depois que toda a saída gerada estiver disponível. Elas não são incluídas nos deltas parciais da saída.

Classifique entradas de forma independente

Use o endpoint de moderação para classificar entradas de texto ou imagem sem gerar uma resposta do modelo. As abas abaixo mostram como usar as bibliotecas da OpenAI e o modelo omni-moderation-latest:

Obtenha informações de classificação para uma entrada de texto
from openai import OpenAI

client = OpenAI()

response = client.moderations.create(
    model="omni-moderation-latest",
    input="...text to classify goes here...",
)

print(response)

Entenda os resultados da moderação

Veja um exemplo completo de saída para uma imagem de um único quadro de um filme de guerra. O modelo identifica indícios de violência na imagem, com uma pontuação superior a 0,8 na categoria violence.

{
  "id": "modr-970d409ef3bef3b70c73d8232df86e7d",
  "model": "omni-moderation-latest",
  "results": [
    {
      "flagged": true,
      "categories": {
        "sexual": false,
        "sexual/minors": false,
        "harassment": false,
        "harassment/threatening": false,
        "hate": false,
        "hate/threatening": false,
        "illicit": false,
        "illicit/violent": false,
        "self-harm": false,
        "self-harm/intent": false,
        "self-harm/instructions": false,
        "violence": true,
        "violence/graphic": false
      },
      "category_scores": {
        "sexual": 2.34135824776394e-7,
        "sexual/minors": 1.6346470245419304e-7,
        "harassment": 0.0011643905680426018,
        "harassment/threatening": 0.0022121340080906377,
        "hate": 3.1999824407395835e-7,
        "hate/threatening": 2.4923252458203563e-7,
        "illicit": 0.0005227032493135171,
        "illicit/violent": 3.682979260160596e-7,
        "self-harm": 0.0011175734280627694,
        "self-harm/intent": 0.0006264858507989037,
        "self-harm/instructions": 7.368592981140821e-8,
        "violence": 0.8599265510337075,
        "violence/graphic": 0.37701736389561064
      },
      "category_applied_input_types": {
        "sexual": ["image"],
        "sexual/minors": [],
        "harassment": [],
        "harassment/threatening": [],
        "hate": [],
        "hate/threatening": [],
        "illicit": [],
        "illicit/violent": [],
        "self-harm": ["image"],
        "self-harm/intent": ["image"],
        "self-harm/instructions": ["image"],
        "violence": ["image"],
        "violence/graphic": ["image"]
      }
    }
  ]
}

A resposta JSON inclui campos que descrevem quais categorias estão presentes na entrada e o grau de confiança do modelo em cada categoria.

Categoria de saída Descrição
flagged

Definido como true se o modelo classificar o conteúdo como potencialmente prejudicial; caso contrário, false.

categories

Contém um dicionário de sinalizações de violação por categoria. Para cada categoria, o valor é true se o modelo sinalizar uma violação na categoria correspondente; caso contrário, false.

category_scores

Contém um dicionário de pontuações por categoria. Cada pontuação representa a confiança do modelo de que a entrada contém conteúdo da categoria. O valor fica entre 0 e 1, sendo que valores mais altos indicam maior confiança.

category_applied_input_types

Contém os tipos de entrada aos quais a pontuação da categoria se aplica. Por exemplo, se a categoria violence/graphic se aplicar tanto a entradas de imagem quanto de texto, a propriedade violence/graphic será definida como ["image", "text"].

Planejamos aprimorar continuamente o modelo usado pelo endpoint de moderação. Por isso, políticas personalizadas que dependem de category_scores podem precisar de recalibração ao longo do tempo.

Consulte as categorias compatíveis

A tabela abaixo descreve as categorias de conteúdo que o endpoint de moderação pode detectar e os tipos de entrada aceitos por cada categoria.

As categorias marcadas como "Somente texto" não aceitam entradas de imagem. Se você enviar apenas imagens (sem texto) ao modelo omni-moderation-latest, ele retornará uma pontuação de 0 para essas categorias não compatíveis com imagens. Os arquivos de imagem têm um limite de 20 MB.

CategoriaDescriçãoEntradas
harassment

Conteúdo que expressa, incita ou promove linguagem de assédio contra qualquer alvo.

Somente texto
harassment/threatening

Conteúdo de assédio que também inclui violência ou danos graves contra qualquer alvo.

Somente texto
hate

Conteúdo que expressa, incita ou promove ódio com base em raça, gênero, etnia, religião, nacionalidade, orientação sexual, deficiência ou casta. Conteúdo de ódio direcionado a grupos não protegidos (por exemplo, jogadores de xadrez) é considerado assédio.

Somente texto
hate/threatening

Conteúdo de ódio que também inclui violência ou danos graves contra o grupo visado com base em raça, gênero, etnia, religião, nacionalidade, orientação sexual, deficiência ou casta.

Somente texto
illicit

Conteúdo que oferece conselhos ou instruções sobre como cometer atos ilícitos. Uma frase como "como furtar em lojas" se enquadraria nesta categoria.

Somente texto
illicit/violent

Os mesmos tipos de conteúdo sinalizados pela categoria illicit, mas que também incluem referências à violência ou à obtenção de uma arma.

Somente texto
self-harm

Conteúdo que promove, incentiva ou retrata atos de autolesão, como suicídio, cortes autoinfligidos e transtornos alimentares.

Texto e imagens
self-harm/intent

Conteúdo em que a pessoa expressa que está praticando ou pretende praticar atos de autolesão, como suicídio, cortes autoinfligidos e transtornos alimentares.

Texto e imagens
self-harm/instructions

Conteúdo que incentiva a prática de atos de autolesão, como suicídio, cortes autoinfligidos e transtornos alimentares, ou que fornece instruções ou orientações sobre como praticar esses atos.

Texto e imagens
sexual

Conteúdo destinado a provocar excitação sexual, como descrições de atividade sexual, ou que promove serviços sexuais (excluindo educação sexual e bem-estar).

Texto e imagens
sexual/minors

Conteúdo sexual que inclui uma pessoa com menos de 18 anos.

Somente texto
violence Conteúdo que retrata morte, violência ou lesões físicas. Texto e imagens
violence/graphic

Conteúdo que retrata morte, violência ou lesões físicas com detalhes explícitos.

Texto e imagens