त्वरित शुरुआत गाइड
Discuse के साथ सामग्री मॉडरेट करने के लिए, X-API-Key हेडर और एक JSON बॉडी के साथ https://api.discuse.com/api/v2/check पर POST भेजें, जिसमें वह टेक्स्ट, इमेज URLs या फ़ाइल URLs हों जिन्हें आप जाँचना चाहते हैं। प्रतिक्रिया हर श्रेणी का अलग-अलग विवरण और एक ही has_violations फ़्लैग लौटाती है। यह गाइड आपको पहली कॉल, प्रतिक्रिया फ़ॉर्मैट और बुनियादी एरर हैंडलिंग के बारे में बताती है — शुरू से अंत तक लगभग पाँच मिनट में।
पूर्वापेक्षाएँ
शुरू करने से पहले, सुनिश्चित करें कि आपके पास ये चीज़ें हैं:
- एक Discuse अकाउंट (discuse.com पर साइन अप करें)
- आपके डैशबोर्ड से मिली API key
- HTTP अनुरोध करने का कोई टूल (cURL, Postman, या आपका एप्लिकेशन कोड)
चरण 1: अपनी API key प्राप्त करें
साइन अप करने के बाद, अपने डैशबोर्ड पर जाएँ और API Keys सेक्शन खोजें। नई API key बनाने के लिए "Create New Key" पर क्लिक करें। इस key को सुरक्षित रखें - यह आपके अकाउंट और उपयोग कोटा तक पहुँच देती है।
हर Discuse key disc_ प्रीफ़िक्स से शुरू होती है, उदाहरण के लिए:
disc_aB3dEf6GhIjKlMnOpQrStUvWxYz012345-_6789
चरण 2: अपनी पहली API कॉल करें
API को टेस्ट करने का सबसे आसान तरीका टेक्स्ट विश्लेषण अनुरोध है। यहाँ cURL का उपयोग करते हुए एक बुनियादी उदाहरण दिया गया है:
curl -X POST https://api.discuse.com/api/v2/check \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY" \
-d '{
"content": {
"text": "Hello, this is a test message to analyze!"
}
}'
चरण 3: प्रतिक्रिया को समझें
सफल अनुरोध विश्लेषण परिणामों के साथ JSON प्रतिक्रिया लौटाता है:
{
"has_violations": false,
"cached": false,
"results": {
"hits": false,
"sentiment": {
"is_negative": false,
"is_toxic": false,
"score": 0.03,
"toxic": 0.02,
"profanity": 0.01,
"threat": 0.00,
"insult": 0.03,
"hit": false
},
"spamfinder": {
"label": "ham",
"confidence": 0.08,
"is_spam": false,
"hit": false
},
"language": {
"language": "en",
"confidence": 0.98
}
},
"usage": {
"api_requests_used": 42,
"api_requests_limit": 1000,
"api_requests_remaining": 958
}
}
processing_time_ms केवल तब शामिल होता है जब आपके प्रोजेक्ट सेटिंग्स में टाइमिंग सक्षम हो, और message केवल कोटा-सीमा पार होने वाली प्रतिक्रियाओं पर सेट होता है — इसलिए ऊपर दिए गए उदाहरण में दोनों को छोड़ा गया है।
प्रतिक्रिया फ़ील्ड्स की व्याख्या
| Field | Description |
|---|---|
has_violations |
Boolean: यदि किसी सक्षम जाँच ने सामग्री को फ़्लैग किया हो तो true (यह results.hits को दर्शाता है) |
cached |
क्या यह परिणाम कैश से दिया गया था (फिर भी कोटा में एक अनुरोध के रूप में गिना जाता है) |
results.hits |
सभी जाँचों में समग्र hit फ़्लैग |
results.sentiment |
0.0 (सुरक्षित) से 1.0 (बहुत ज़हरीला) तक टॉक्सिसिटी स्कोर, साथ में is_toxic/hit निर्णय फ़्लैग |
results.spamfinder |
स्पैम निर्णय: label, confidence, is_spam (raw) और hit (थ्रेशोल्ड के हिसाब से) |
results.language |
पहचाना गया language कोड और confidence |
usage |
मौजूदा बिलिंग अवधि के लिए आपकी API अनुरोध संख्या, सीमा और बचा हुआ कोटा |
चरण 4: इमेज का विश्लेषण करें
किसी इमेज में NSFW सामग्री की जाँच करने के लिए, अपने अनुरोध में इमेज URL शामिल करें:
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/image.jpg"]
},
"settings": {
"check_images": true
}
}'
चरण 5: कई जाँचों को एक साथ मिलाएँ
आप एक ही अनुरोध में टेक्स्ट और इमेज का साथ-साथ विश्लेषण कर सकते हैं:
{
"content": {
"text": "Check out this amazing photo!",
"image_urls": ["https://example.com/photo.jpg"]
},
"settings": {
"check_sentiment": true,
"check_spam": true,
"check_images": true,
"check_language": true
}
}
इंटीग्रेशन उदाहरण
JavaScript/Node.js
async function checkContent(text) {
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: { text }
})
});
return response.json();
}
// Usage
const result = await checkContent('Hello world!');
if (result.has_violations) {
console.log('Content flagged:', result.message);
}
Python
import requests
import os
def check_content(text):
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': {'text': text}
}
)
return response.json()
# Usage
result = check_content('Hello world!')
if result['has_violations']:
print(f"Content flagged: {result['message']}")
क्या कैशिंग मेरे कोटा में गिनी जाती है?
Discuse समान सामग्री के परिणामों को कुछ मिनटों के लिए कैश करता है। जब प्रतिक्रिया में "cached": true आता है, तो वह कैश से दी गई थी, इसलिए वह तेज़ी से लौटती है और जाँचों को दोबारा चलाने से बचती है। अनुरोध फिर भी आपके कोटा में एक API अनुरोध के रूप में गिना जाता है, लेकिन अंतर्निहित प्रति-फ़ीचर स्कैन (इमेज, एंटीवायरस) के लिए आपसे दोबारा शुल्क नहीं लिया जाता। कैशिंग मुख्य रूप से तब मदद करती है जब वही सामग्री थोड़े समय में बार-बार सबमिट की जाती है।
मैं एरर कैसे हैंडल करूँ?
सफल जाँच HTTP 200 लौटाती है। असफल key, रेट लिमिट या गलत फ़ॉर्मैट वाला अनुरोध non-2xx स्टेटस लौटाता है। ध्यान दें कि कोटा समाप्त होना HTTP एरर नहीं है: जब आपकी बिलिंग अवधि का कोटा पूरा उपयोग हो जाता है, तब भी API has_violations: false और कोटा पार होने की व्याख्या करने वाले message के साथ 200 लौटाती है — इसलिए स्टेटस कोड पर निर्भर रहने के बजाय message और usage फ़ील्ड्स जाँचें।
try {
const response = await fetch('https://api.discuse.com/api/v2/check', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-API-Key': apiKey
},
body: JSON.stringify({ content: { text } })
});
if (!response.ok) {
if (response.status === 401 || response.status === 403) {
throw new Error('Invalid or unauthorized API key');
} else if (response.status === 429) {
throw new Error('Rate limit exceeded - slow down requests');
}
throw new Error(`API error: ${response.status}`);
}
const result = await response.json();
// Quota exhaustion is returned as a 200 with a message, not an error status.
if (result.message && result.usage && result.usage.api_requests_remaining === 0) {
console.warn('Quota exceeded:', result.message);
}
return result;
} catch (error) {
console.error('Content check failed:', error);
throw error;
}
अगले कदम
अब जब आपने अपनी पहली API कॉल कर ली है, तो इन संसाधनों को देखें:
- प्रमाणीकरण और API Keys - सुरक्षित key प्रबंधन के बारे में जानें
- टेक्स्ट विश्लेषण - सेंटीमेंट और स्पैम डिटेक्शन को गहराई से समझें
- इमेज NSFW डिटेक्शन - अपने प्लेटफ़ॉर्म को अनुचित इमेज से सुरक्षित रखें
- थ्रेशोल्ड कॉन्फ़िगर करना - डिटेक्शन संवेदनशीलता को बारीकी से समायोजित करें