Skip to main content
Dokumentasi
Pusat Pembelajaran

Kuasai moderasi konten dengan panduan lengkap, tutorial, dan dokumentasi API

Tautan Cepat

Deteksi Gambar NSFW

Moderasi gambar Discuse memberi skor pada gambar yang dikirim pengguna untuk mendeteksi konten eksplisit. Kirim URL gambar ke POST https://api.discuse.com/api/v2/check dengan check_images diaktifkan, dan API akan mengembalikan probabilitas porn, sexual, dan neutral serta flag hit sesuai objek results.images.

Bagaimana cara kerja deteksi NSFW?

Model computer vision Discuse mengembalikan tiga probabilitas untuk setiap gambar, dengan total mendekati 1.0:

  • porn: kemungkinan gambar bersifat pornografis.
  • sexual: kemungkinan gambar bersifat sugestif secara seksual.
  • neutral: kemungkinan gambar aman.

Flag hit menunjukkan bahwa gambar melewati ambang NSFW proyek Anda. Gunakan skor mentah untuk membedakan gambar yang jelas eksplisit (blokir otomatis) dari gambar yang berada di area abu-abu (ditinjau manusia).

Bagaimana cara memeriksa gambar?

Kirim satu atau beberapa URL gambar dan aktifkan pemeriksaan gambar dengan check_images:

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
    }
  }'

Satu permintaan menerima hingga 10 URL gambar.

Format respons

{
  "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
  }
}

Hasil gambar berada di bawah results.images. processing_time_ms hanya muncul jika pengukuran waktu diaktifkan di pengaturan proyek Anda.

Memeriksa beberapa gambar

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

Setiap gambar yang dipindai dihitung secara terpisah terhadap kuota pemindaian gambar Anda.

Bagaimana cara menafsirkan skor?

porn, sexual, dan neutral adalah probabilitas dari 0.0 hingga 1.0. Untuk gambar eksplisit, porn tinggi dan neutral rendah; untuk gambar yang aman, neutral lebih dominan.

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';
  }
}

Anda juga dapat menggunakan flag hit sebagai gerbang, yang sudah menerapkan pengaturan threshold_images_porn dan threshold_images_sexual proyek Anda.

Kasus penggunaan

Platform sosial

Saring foto profil dan gambar postingan sebelum ditayangkan:

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 };
}

Marketplace

Terapkan batas yang lebih ketat untuk gambar produk:

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}

Praktik terbaik

Pindai sebelum penyimpanan permanen

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);
}

Gabungkan dengan moderasi teks

Satu permintaan dapat memindai gambar dan keterangannya sekaligus:

{
  "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
  }
}

Gunakan hasil cache

Respons yang di-cache tidak dihitung terhadap kuota Anda, sehingga menampilkan ulang atau memvalidasi ulang gambar yang sudah dipindai tidak dikenai biaya. Flag cached dalam respons memberi tahu Anda saat hasil berasal dari cache.

Batas penggunaan

Paket Pemindaian Gambar Bulanan Tarif Kelebihan
Basic 500 Tidak tersedia
Gold 2,000 $0.00075/pemindaian
Platinum 5,000 $0.00064/pemindaian (diskon 15%)
Ultimate 10,000 $0.00056/pemindaian (diskon 25%)

Contoh integrasi

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()

Langkah berikutnya

Ditulis oleh Tim Discuse · Terakhir diperbarui June 2026

Artikel Terkait

Analisis Teks dan Deteksi Sentimen

Deteksi spam, toksisitas, kata-kata kasar, dan analisis sentimen dalam konten teks

Deteksi Spam

Pemfilteran spam berbasis AI untuk teks dan pesan

Pemindaian Antivirus File

Lindungi platform Anda dari malware, virus, dan file berbahaya