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
Theme

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 la respuesta generada. Usa los resultados para aplicar la política de tu aplicación, por ejemplo, para filtrar contenido, enviar una solicitud a revisión o tomar medidas sobre las cuentas que envíen contenido marcado.

El modelo omni-moderation-latest admite texto e imágenes como entradas. No clasifica audio. El uso del 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 gestionar MASI y no sustituye las medidas específicas de protección infantil. Consulta nuestra guía sobre MASI para saber cómo prevenir y detectar casos de MASI, responder ante ellos y denunciarlos.

Elegir un flujo de trabajo de moderación

Flujo de trabajo Cuándo usarlo
Moderar contenido generado Tu aplicación genera texto con la API de respuestas o la API para completar chats y necesita señales de moderación.
Clasificar entradas independientes Tu aplicación necesita clasificar texto o imágenes sin que el modelo genere una respuesta.
Interpretar los resultados de moderación Tu aplicación necesita interpretar los indicadores, las categorías, las puntuaciones o los tipos de entrada a los que se aplican.
Consultar las categorías admitidas Tu aplicación necesita saber qué categorías de contenido dañino se aplican al texto, a las imágenes o a ambos.

Moderar contenido generado

Si tu aplicación necesita obtener el texto generado junto con las puntuaciones de moderación, incluye un objeto moderation en el nivel superior de la solicitud de generación. La API devuelve las puntuaciones de moderación de la entrada del modelo y de la salida generada sin necesidad de una solicitud de moderación por separado.

El modelo sigue generando contenido como de costumbre. Revisa los resultados de moderación antes de mostrarle la salida a un usuario o de realizar acciones posteriores.

Configura moderation.model al crear una respuesta:

Generar 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 de respuestas devuelve un objeto moderation_result para la entrada en response.moderation.input y un objeto moderation_result para la salida en response.moderation.output.

Los resultados de moderación incluidos en la respuesta usan los mismos campos de categoría que los resultados de una solicitud de moderación independiente. Consulta primero flagged para tomar una decisión preliminar. Luego revisa categories y category_scores para registrar eventos, dirigir solicitudes, mantener registros de auditoría o gestionar colas de revisión humana. El modelo puede negarse a responder o dar otra respuesta que tenga en cuenta la seguridad y, aun así, esa respuesta puede quedar marcada si menciona contenido dañino. Usa las puntuaciones de moderación como señales al aplicar la política de tu aplicación, sin convertirlas en decisiones automáticas de bloqueo.

Si tu aplicación necesita gestionar fallos de moderación, verifica el tipo de resultado de moderación antes de leer las puntuaciones. Si un paso de moderación no se completa, el campo de moderación de la entrada o salida correspondiente puede contener un error en lugar de puntuaciones.

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 del formato de respuesta.

Si transmites una respuesta a medida que se genera, recibirás las puntuaciones de moderación cuando esté disponible la salida completa. Las puntuaciones no se incluyen en los fragmentos de salida que recibes durante la generación.

Clasificar entradas independientes

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

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

Interpretar los resultados de moderación

Este ejemplo muestra la salida completa para una imagen tomada de un solo fotograma de una película de guerra. El modelo identifica indicios de violencia en la imagen y asigna a la categoría violence una puntuación superior a 0,8.

{
  "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 indican qué categorías están presentes en la entrada y el grado de confianza del modelo en la clasificación de cada una.

Categoría de salidaDescripción
flagged

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

categories

Contiene un diccionario con un indicador de infracción por categoría. El valor de cada categoría es true si el modelo detecta una infracción en esa categoría y false en caso contrario.

category_scores

Contiene un diccionario de puntuaciones por categoría. Cada puntuación representa el grado de confianza del modelo en que la entrada incluye contenido de esa categoría. El valor está entre 0 y 1. Cuanto mayor es el valor, mayor es la 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 las imágenes como al texto de entrada, la propiedad violence/graphic toma el valor ["image", "text"].

Planeamos seguir actualizando el modelo que usa el punto de acceso de moderación. Por eso, es posible que con el tiempo tengas que recalibrar las políticas personalizadas que dependen de category_scores.

Consultar las categorías admitidas

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

Las categorías marcadas como “Solo texto” no admiten imágenes como entrada. Si solo envías imágenes (sin texto que las acompañe) al modelo omni-moderation-latest, este devolverá una puntuación de 0 para esas categorías. El tamaño máximo de cada archivo de imagen es de 20 MB.

CategoríaDescripciónEntradas
harassment

Contenido que usa lenguaje de acoso contra cualquier persona o grupo, o que incita a usarlo o lo promueve.

Solo texto
harassment/threatening

Contenido de acoso que también incluye violencia o daños graves contra cualquier persona o grupo.

Solo texto
hate

Contenido que expresa o promueve el odio, o que incita a él, 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 clasifica como 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 da consejos o instrucciones para cometer actos ilícitos. Una frase como “cómo robar mercancía de una tienda” entraría en esta categoría.

Solo texto
illicit/violent

Los mismos tipos de contenido que se marcan en la categoría illicit, con referencias adicionales a la violencia o a la obtención de un arma.

Solo texto
self-harm

Contenido que promueve, alienta o representa conductas autolesivas, como el suicidio, las cortaduras autoinfligidas y las conductas asociadas a trastornos alimentarios.

Texto e imágenes
self-harm/intent

Contenido en el que una persona expresa que tiene conductas autolesivas o que tiene la intención de hacerse daño, por ejemplo, mediante el suicidio, las cortaduras autoinfligidas o las conductas asociadas a trastornos alimentarios.

Texto e imágenes
self-harm/instructions

Contenido que alienta conductas autolesivas, como el suicidio, las cortaduras autoinfligidas y las conductas asociadas a trastornos alimentarios, o que da instrucciones o consejos para llevarlas a cabo.

Texto e imágenes
sexual

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

Texto e imágenes
sexual/minors

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

Solo texto
violenceContenido 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