Перейти к содержимому

Модерация при генерации картинок

Image-моделей с встроенной модерацией всё больше; типичный отказ — HTTP 400 / safety_violation. Точно так же, как с safety / prompt injection, важно ловить и разделять «свой баг» и «попытка abuse-а».

import os, openai, requests
def safe_generate(prompt: str, user_id: str):
try:
return openai.images.generate(model="dall-e-3", prompt=prompt, n=1)
except openai.BadRequestError as e:
body = getattr(e, "body", {}) or {}
if body.get("error", {}).get("code") == "content_policy_violation":
push("🚫 Image moderation",
f"User: {user_id}\nPrompt:\n{prompt[:600]}",
priority=7)
raise
def push(t, m, p):
requests.post(f"{os.environ['NOTIFLY_URL']}/message",
params={"token": os.environ["NOTIFLY_TOKEN"]},
json={"title": t, "message": m, "priority": p}, timeout=5)

Если в течение часа от одного user_id 5+ отказов — заведите отдельный алёрт уровня priority=10 (потенциальный abuse-кейс).