For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Navegación principal

Moderación

Identifica contenido dañino en texto e imágenes.

Usa los modelos de moderación de OpenAI para detectar contenido dañino en texto e imágenes. Puedes clasificar entradas independientes con el punto de acceso de moderación o solicitar puntuaciones de moderación junto con una respuesta generada. Usa los resultados para aplicar la política de tu aplicación, por ejemplo, filtrando contenido, enviando una solicitud a revisión o tomando medidas sobre las cuentas que envían contenido marcado.

El modelo omni-moderation-latest acepta entradas de texto e imágenes. No clasifica audio. El punto de acceso de moderación es gratuito y los archivos de imagen pueden tener un tamaño de hasta 20 MB.

Seguridad infantil: no envíes a la API de Moderación contenido que sepas o sospeches que es material de abuso sexual infantil (MASI). La API no está diseñada para detectar ni manejar MASI y no sustituye las medidas específicas de protección infantil. Consulta nuestra guía sobre MASI para conocer los pasos para prevenir, detectar, responder y denunciar este tipo de material.

Elige un flujo de trabajo de moderación

Flujo de trabajoÚsalo cuando
Modera contenido generadoTu aplicación genera texto con la API Responses o la API para completar chats y necesita señales de moderación.
Clasifica entradas independientesTu aplicación necesita clasificar texto o imágenes sin generar una respuesta del modelo.
Comprende los resultados de moderaciónTu aplicación necesita interpretar indicadores, categorías, puntuaciones o los tipos de entrada a los que se aplican.
Consulta las categorías admitidasTu aplicación necesita saber qué categorías de contenido dañino se aplican al texto, a las imágenes o a ambos.

Modera contenido generado

Cuando tu aplicación necesite tanto texto generado como puntuaciones de moderación, pasa un objeto moderation en el nivel superior de la solicitud de generación. La API devuelve puntuaciones de moderación para la entrada del modelo y la salida generada sin necesidad de una solicitud de moderación por separado.

El modelo sigue generando contenido con normalidad. Revisa los resultados de moderación antes de mostrar la salida a un usuario o realizar acciones posteriores.

Configura moderation.model al crear una respuesta:

Genera una respuesta con puntuaciones de moderación
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)

La API Responses devuelve un objeto moderation_result de entrada en response.moderation.input y un objeto moderation_result de salida en response.moderation.output.

Los resultados de moderación integrados usan los mismos campos de categoría que un resultado de moderación independiente. Comienza con flagged para tomar una decisión inicial y luego examina categories y category_scores para registrar eventos, enrutar solicitudes, mantener registros de auditoría o gestionar colas de revisión humana. Un rechazo u otra respuesta que tenga en cuenta la seguridad también puede activar un indicador si trata sobre contenido dañino. Considera las puntuaciones de moderación como señales para aplicar la política de tu aplicación, no como una decisión automática de bloqueo.

Comprueba el tipo de resultado de moderación antes de leer las puntuaciones si tu aplicación necesita gestionar fallas de moderación. Si un paso de moderación no puede completarse, el campo de moderación de entrada o salida correspondiente puede contener un error en lugar de puntuaciones de moderación.

En las solicitudes con llamadas a herramientas, la moderación abarca los argumentos de las llamadas y las salidas de las herramientas cuando aparecen en el contenido de la conversación. No abarca los nombres, las descripciones ni los esquemas de las herramientas, ni los esquemas de formato de respuesta.

Si transmites una respuesta generada en streaming, las puntuaciones de moderación llegan después de que esté disponible toda la salida generada. No se incluyen en los fragmentos incrementales de la salida.

Clasifica entradas independientes

Usa el punto de acceso de moderación para clasificar entradas de texto o imágenes sin generar una respuesta del modelo. Las siguientes pestañas muestran cómo usar las bibliotecas de OpenAI y el modelo omni-moderation-latest:

Obtén información de clasificación para una 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)

Comprende los resultados de moderación

Este es un ejemplo de salida completa para una imagen de un solo fotograma de una película de guerra. El modelo identifica indicios de violencia en la imagen, con una puntuación superior a 0,8 en la categoría 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"]
      }
    }
  ]
}

La respuesta JSON incluye campos que describen qué categorías están presentes en la entrada y la confianza del modelo en cada categoría.

Categoría de salida Descripción
flagged

Su valor es true si el modelo clasifica el contenido como potencialmente dañino; false en caso contrario.

categories

Contiene un diccionario de indicadores de infracción por categoría. Para cada categoría, el valor es true si el modelo detecta una infracción en la categoría correspondiente; false en caso contrario.

category_scores

Contiene un diccionario de puntuaciones por categoría. Cada puntuación representa la confianza del modelo en que la entrada contiene contenido de esa categoría. El valor está entre 0 y 1; los valores más altos indican mayor confianza.

category_applied_input_types

Contiene los tipos de entrada a los que se aplica la puntuación de la categoría. Por ejemplo, si la categoría violence/graphic se aplica tanto a entradas de imagen como de texto, la propiedad violence/graphic se establece en ["image", "text"].

Planeamos actualizar continuamente el modelo subyacente del punto de acceso de moderación. Por lo tanto, las políticas personalizadas que dependen de category_scores podrían necesitar ajustes de calibración con el tiempo.

Consulta las categorías admitidas

La siguiente tabla describe las categorías de contenido que el punto de acceso de moderación puede detectar y los tipos de entrada que admite cada categoría.

Las categorías marcadas como “Solo texto” no admiten entradas de imagen. Si envías solo imágenes (sin texto que las acompañe) al modelo omni-moderation-latest, este devolverá una puntuación de 0 para esas categorías no admitidas. Los archivos de imagen tienen un límite de 20 MB.

CategoríaDescripciónEntradas
harassment

Contenido que expresa, incita o promueve lenguaje de acoso dirigido a cualquier destinatario.

Solo texto
harassment/threatening

Contenido de acoso que también incluye violencia o daños graves dirigidos a cualquier destinatario.

Solo texto
hate

Contenido que expresa, incita o promueve odio por motivos de raza, género, etnia, religión, nacionalidad, orientación sexual, discapacidad o casta. El contenido de odio dirigido a grupos no protegidos (por ejemplo, jugadores de ajedrez) se considera acoso.

Solo texto
hate/threatening

Contenido de odio que también incluye violencia o daños graves contra el grupo al que se dirige por motivos de raza, género, etnia, religión, nacionalidad, orientación sexual, discapacidad o casta.

Solo texto
illicit

Contenido que ofrece consejos o instrucciones sobre cómo cometer actos ilícitos. Una frase como “cómo hurtar en una tienda” entraría en esta categoría.

Solo texto
illicit/violent

Los mismos tipos de contenido que marca la categoría illicit, pero que también incluyen referencias a la violencia o a la obtención de un arma.

Solo texto
self-harm

Contenido que promueve, fomenta o representa actos de autolesión, como el suicidio, los cortes autoinfligidos y los trastornos alimentarios.

Texto e imágenes
self-harm/intent

Contenido en el que la persona expresa que está realizando o tiene la intención de realizar actos de autolesión, como el suicidio, los cortes autoinfligidos y los trastornos alimentarios.

Texto e imágenes
self-harm/instructions

Contenido que fomenta actos de autolesión, como el suicidio, los cortes autoinfligidos y los trastornos alimentarios, o que da instrucciones o consejos sobre cómo realizar esos actos.

Texto e imágenes
sexual

Contenido destinado a provocar excitación sexual, como las descripciones de actividad sexual, o que promueve servicios sexuales (se excluyen la educación y el bienestar sexuales).

Texto e imágenes
sexual/minors

Contenido sexual que incluye a una persona menor de 18 años.

Solo texto
violence Contenido que representa muerte, violencia o lesiones físicas. Texto e imágenes
violence/graphic

Contenido que representa muerte, violencia o lesiones físicas con detalles gráficos explícitos.

Texto e imágenes