Moderation
POST /v1/moderations revisa textos e imágenes en busca de contenido dañino —acoso, odio, autolesiones, contenido sexual, violencia— y devuelve un indicador y una puntuación por categoría. Úsalo para filtrar la entrada de los usuarios antes de que llegue a tu app o a un modelo, o para revisar la salida antes de mostrarla.
Sigue el formato de Moderation de OpenAI. El modelo es openai-moderation (también conocido como omni-moderation-latest) y se usa cuando omites model.
Revisar texto
curl https://api.inferray.com/v1/moderations \
-H "Authorization: Bearer $INFERRAY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"input": "I want to hurt someone."}'
const result = await client.moderations.create({
model: "omni-moderation-latest",
input: "I want to hurt someone.",
});
if (result.results[0].flagged) {
// block, queue for review, or respond carefully
}
input puede ser un string, un array de strings (un resultado por cada uno) o un array de partes que combine text y image_url:
{
"input": [
{ "type": "text", "text": "Is this image OK to post?" },
{ "type": "image_url", "image_url": { "url": "https://example.com/upload.jpg" } }
]
}
La respuesta
{
"id": "modr-...",
"model": "openai-moderation",
"results": [
{
"flagged": true,
"categories": { "violence": true, "harassment": false, "self-harm": false },
"category_scores": { "violence": 0.97, "harassment": 0.04, "self-harm": 0.01 }
}
]
}
flagged es true cuando alguna categoría lo es. Para tus propios umbrales, usa category_scores (de 0 a 1) en su lugar.
Precios
Moderation se cobra por solicitud, con un precio fijo bajo que se muestra en la página del modelo.