Skip to main content
Dokümantasyon
ÖĞRENME MERKEZİ

Kapsamlı rehberler, eğitimler ve API dokümantasyonuyla içerik moderasyonunda uzmanlaşın

Hızlı Bağlantılar

Görsel NSFW Tespiti

Discuse görsel moderasyonu, kullanıcıların gönderdiği görselleri müstehcen içerik açısından puanlar. Görsel URL’lerini check_images etkinleştirilmiş şekilde POST https://api.discuse.com/api/v2/check adresine gönderin; API, results.images nesnesine göre porn, sexual ve neutral olasılıklarının yanı sıra bir hit bayrağı döndürür.

NSFW tespiti nasıl çalışır?

Discuse’ın bilgisayarlı görü modeli, her görsel için toplamı 1.0’a yaklaşan üç olasılık döndürür:

  • porn: görselin pornografik olma olasılığı.
  • sexual: görselin cinsel çağrışım içerme olasılığı.
  • neutral: görselin güvenli olma olasılığı.

hit bayrağı, görselin projenizin NSFW eşiklerini aştığını gösterir. Açıkça müstehcen bir görseli (otomatik engelleme) sınırda kalan bir görselden (insan incelemesi) ayırmak için ham puanları kullanın.

Bir görseli nasıl kontrol ederim?

Bir veya daha fazla görsel URL’si gönderin ve görsel kontrolünü check_images ile etkinleştirin:

curl -X POST https://api.discuse.com/api/v2/check \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{
    "content": {
      "image_urls": ["https://example.com/user-upload.jpg"]
    },
    "settings": {
      "check_images": true
    }
  }'

Tek bir istek en fazla 10 görsel URL’si kabul eder.

Yanıt biçimi

{
  "has_violations": true,
  "cached": false,
  "message": "NSFW content detected",
  "results": {
    "hits": true,
    "images": {
      "status": "ok",
      "porn": 0.95,
      "sexual": 0.85,
      "neutral": 0.02,
      "hit": true
    }
  },
  "usage": {
    "api_requests_used": 12,
    "api_requests_limit": 2000,
    "api_requests_remaining": 1988
  }
}

Görsel sonucu results.images altında yer alır. processing_time_ms yalnızca proje ayarlarınızda zamanlama etkinleştirildiğinde bulunur.

Birden fazla görseli kontrol etme

{
  "content": {
    "image_urls": [
      "https://example.com/image1.jpg",
      "https://example.com/image2.jpg",
      "https://example.com/image3.jpg"
    ]
  },
  "settings": {
    "check_images": true
  }
}

Taranan her görsel, görsel tarama kotanızdan ayrı ayrı düşülür.

Puanları nasıl yorumlamalıyım?

porn, sexual ve neutral, 0.0 ile 1.0 arasında olasılıklardır. Müstehcen bir görselde porn yüksek, neutral düşüktür; güvenli bir görselde ise neutral baskındır.

function interpretImageResult(result) {
  const img = result.results.images;

  if (img.porn > 0.8) {
    return 'block';   // automatically reject
  } else if (img.porn > 0.5 || img.sexual > 0.7) {
    return 'review';  // queue for human review
  } else if (img.sexual > 0.5) {
    return 'warn';    // allow with a content-warning label
  } else {
    return 'allow';
  }
}

Ayrıca, projenizin threshold_images_porn ve threshold_images_sexual ayarlarını zaten uygulayan hit bayrağını temel alarak da geçiş kuralı koyabilirsiniz.

Kullanım alanları

Sosyal platformlar

Profil fotoğraflarını ve gönderi görsellerini yayına alınmadan önce tarayın:

async function handleImageUpload(imageUrl) {
  const result = await checkImage(imageUrl);
  const img = result.results.images;

  if (img.porn > 0.7) {
    throw new Error('This image violates our community guidelines');
  }
  if (img.sexual > 0.7) {
    return { url: imageUrl, hasContentWarning: true };
  }
  return { url: imageUrl, hasContentWarning: false };
}

Pazaryerleri

Ürün görselleri için daha sıkı bir eşik uygulayın:

def validate_product_image(image_url):
    result = check_image(image_url)
    img = result['results']['images']

    if img['porn'] > 0.3 or img['sexual'] > 0.3:
        return {'approved': False, 'reason': 'Image contains inappropriate content'}

    return {'approved': True}

En iyi uygulamalar

Kalıcı depolamadan önce tarayın

async function processUpload(file) {
  const tempUrl = await uploadToTemp(file);
  const result = await checkImage(tempUrl);

  if (result.has_violations) {
    await deleteTempFile(tempUrl);
    throw new Error('Image rejected');
  }
  return await moveToPermanent(tempUrl);
}

Metin moderasyonuyla birlikte kullanın

Tek bir istek, bir görseli ve başlığını birlikte tarayabilir:

{
  "content": {
    "text": "Check out this photo from my vacation!",
    "image_urls": ["https://example.com/vacation.jpg"]
  },
  "settings": {
    "check_sentiment": true,
    "check_spam": true,
    "check_images": true
  }
}

Önbelleğe alınmış sonuçları kullanın

Önbelleğe alınmış yanıtlar kotanızdan düşülmez; bu nedenle daha önce taranmış bir görseli yeniden göstermek veya yeniden doğrulamak ücretsizdir. Yanıttaki cached bayrağı, bir sonucun önbellekten geldiğini belirtir.

Kullanım limitleri

Plan Aylık Görsel Taramaları Aşım Ücreti
Basic 500 Kullanılamaz
Gold 2,000 $0.00075/tarama
Platinum 5,000 $0.00064/tarama (%15 indirim)
Ultimate 10,000 $0.00056/tarama (%25 indirim)

Entegrasyon örnekleri

Node.js

const checkImage = async (imageUrl) => {
  const response = await fetch('https://api.discuse.com/api/v2/check', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'X-API-Key': process.env.DISCUSE_API_KEY
    },
    body: JSON.stringify({
      content: { image_urls: [imageUrl] },
      settings: { check_images: true }
    })
  });

  return response.json();
};

Python

import os
import requests

def check_image(image_url):
    response = requests.post(
        'https://api.discuse.com/api/v2/check',
        headers={
            'Content-Type': 'application/json',
            'X-API-Key': os.environ['DISCUSE_API_KEY']
        },
        json={
            'content': {'image_urls': [image_url]},
            'settings': {'check_images': True}
        }
    )
    return response.json()

Sonraki adımlar

Discuse Ekibi tarafından yazıldı · Son güncelleme June 2026

İlgili Makaleler

Metin Analizi ve Duygu Tespiti

Metin içeriğinde spam, toksisite, küfür tespit edin ve duygu analizi yapın

Spam Tespiti

Metin ve mesajlar için AI destekli spam filtreleme

Dosya Antivirüs Taraması

Platformunuzu kötü amaçlı yazılımlardan, virüslerden ve zararlı dosyalardan koruyun