Skip to main content
Dokumentasi
Pusat Pembelajaran

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

Tautan Cepat

Ekstraksi Teks OCR

Discuse mengambil teks dari gambar dan dokumen agar Anda dapat membaca — dan memoderasi — konten yang sebelumnya tidak terlihat oleh filter teks. Kirim hingga 5 URL gambar atau dokumen ke POST /api/v2/ocr, lalu Anda akan menerima teks yang dikenali, dan, secara default, teks tersebut akan diproses melalui pemeriksaan konten proyek Anda.

Mengapa OCR untuk moderasi?

Banyak penyalahgunaan tersembunyi di dalam gambar: hinaan yang disisipkan ke meme, tautan phishing dalam tangkapan layar, atau nomor telepon penipuan di selebaran. Pemeriksaan teks biasa tidak akan melihatnya. OCR mengekstrak kata-katanya terlebih dahulu, sehingga pemeriksaan sentimen, spam, badword, dan bahasa yang sudah Anda jalankan pada teks juga berlaku untuk konten gambar dan dokumen.

Bagaimana cara mengekstrak teks?

Kirim satu atau beberapa URL file. moderate bernilai default true, sehingga teks yang diekstrak juga akan diperiksa dan Anda akan menerima objek results; atur ke false jika Anda hanya menginginkan teks mentah.

curl -X POST https://api.discuse.com/api/v2/ocr \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{
    "file_urls": ["https://example.com/user-meme.jpg"],
    "moderate": true
  }'

Satu permintaan menerima hingga 5 URL gambar atau dokumen.

Respons

{
  "text": "BUY FOLLOWERS NOW — dm @spammer for 50% off",
  "has_text": true,
  "num_files": 1,
  "has_violations": true,
  "results": {
    "hits": true,
    "spamfinder": {
      "label": "spam",
      "confidence": 0.94,
      "is_spam": true,
      "hit": true
    }
  },
  "usage": {
    "api_requests_used": 412,
    "api_requests_limit": 10000,
    "api_requests_remaining": 9588
  }
}

Saat moderate bernilai false (atau tidak ada teks yang ditemukan), results tidak disertakan dan has_violations bernilai false — Anda hanya menerima text yang diekstrak.

Kolom permintaan

Kolom Tipe Catatan
api_key string Opsional di body; Anda dapat mengirim X-API-Key sebagai gantinya
file_urls string[] URL gambar atau dokumen yang akan dibaca. Minimal satu diperlukan, hingga 5
moderate boolean Jalankan teks yang diekstrak melalui pemeriksaan teks Anda. Default-nya true

Kolom respons

Kolom Tipe Deskripsi
text string Teks yang dikenali, digabungkan dari semua file
has_text boolean True jika ada teks tidak kosong yang dikenali
num_files number Jumlah file yang berhasil dibaca
has_violations boolean True jika teks yang dimoderasi memicu pemeriksaan
results object Hasil pemeriksaan teks (lihat Analisis Teks), hanya ada saat moderasi dijalankan dan teks ditemukan
usage object api_requests_used, api_requests_limit, api_requests_remaining

Objek results memiliki bentuk yang sama dengan POST /api/v2/checkspamfinder, sentiment, language, badwords, dan flag tingkat atas hits. Lihat Analisis Teks untuk detail kolomnya.

Batas penggunaan

OCR adalah fitur paket berbayar; setiap file yang Anda ekstrak dihitung satu kali terhadap kuota OCR Anda.

Paket Ekstraksi OCR Bulanan Tarif Kelebihan
Basic Tidak tersedia -
Gold 1,000 $0.0015/ekstraksi
Platinum 2,000 $0.001275/ekstraksi (diskon 15%)
Ultimate 4,000 $0.001125/ekstraksi (diskon 25%)

Jika sebuah proyek tidak memiliki langganan aktif, permintaan OCR akan ditolak.

Praktik terbaik

Moderasi dalam satu panggilan

Biarkan moderate aktif (default) saat tujuan Anda adalah mendeteksi pelanggaran kebijakan dalam gambar. Satu panggilan OCR sekaligus mengekstrak teks dan memeriksanya, bukan panggilan OCR yang diikuti panggilan /check terpisah.

async function moderateImage(fileUrl) {
  const res = await ocr([fileUrl], true);
  if (res.has_violations) {
    await flagForReview(fileUrl, res.results);
  }
  return res.text;
}

Periksa has_text sebelum bertindak

Gambar tanpa teks yang dapat dibaca akan mengembalikan has_text: false dan text kosong. Buat percabangan berdasarkan nilai tersebut agar Anda tidak memperlakukan "tidak ada yang bisa dibaca" sebagai "bersih dan terkonfirmasi".

Kelompokkan file terkait

Jika sebuah kiriman berisi beberapa gambar, kirim semuanya bersama-sama (hingga 5) dalam satu permintaan, bukan satu panggilan per file — lebih sedikit perjalanan bolak-balik, dengan satu respons yang dilacak kuotanya.

Contoh integrasi

Node.js

async function ocr(fileUrls, moderate = true) {
  const response = await fetch('https://api.discuse.com/api/v2/ocr', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'X-API-Key': process.env.DISCUSE_API_KEY
    },
    body: JSON.stringify({ file_urls: fileUrls, moderate })
  });
  return response.json();
}

Python

import os
import requests

def ocr(file_urls, moderate=True):
    response = requests.post(
        'https://api.discuse.com/api/v2/ocr',
        headers={
            'Content-Type': 'application/json',
            'X-API-Key': os.environ['DISCUSE_API_KEY']
        },
        json={'file_urls': file_urls, 'moderate': moderate}
    )
    return response.json()

Siap membaca teks dari gambar? Mulai dengan Discuse.

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 NSFW pada Gambar

Deteksi dan filter gambar tidak pantas serta konten dewasa secara otomatis

Deteksi Spam

Pemfilteran spam berbasis AI untuk teks dan pesan