५६ भाषामा पुनर्लेखन, व्याकरण जाँच, सारांश, अनुवाद र साहित्यिक चोरी जाँच। सरल REST, Cloudflare को एज (edge) बाट सेवा।
Same-origin
हाल API ले adeptwrite.com बाटै आएका अनुरोधलाई मात्र सेवा दिन्छ (CORS हेडर छैन)। API कुञ्जीसहितको बाह्य पहुँच Pro योजनासँगै ल्याउने योजना छ। सम्झौता खुला होस् र तपाईं तयारी गर्न सक्नुहोस् भनेर यो दस्तावेज चाँडै प्रकाशित गरिएको हो।
सारांश
AdeptWrite v1 API का तीन सक्रिय इन्डपोइन्ट छन्। POST /api/v1/run ले task, mode, lang र text (बढीमा ६,००० क्यारेक्टर) लिन्छ र सादा पाठ नतिजा फर्काउँछ; POST /api/v1/plagiarism ले पाठलाई खुला स्रोतसँग तुलना गर्छ; GET /api/v1/health ले अवस्था देखाउँछ। पाठ कहिल्यै भण्डारण वा लग गरिँदैन।
आधारभूत कुरा
आधार URL:https://adeptwrite.com/api/v1
ढाँचा: अनुरोध र प्रतिक्रिया JSON हुन् (Content-Type: application/json, UTF-8)।
प्रमाणीकरण: अहिले छैन; अनुरोध adeptwrite.com का पृष्ठबाट (same-origin) आउनुपर्छ। API कुञ्जी Pro सँगै आउनेछन्।
गोपनीयता:text फिल्ड कहिल्यै भण्डारण वा लग गरिँदैन; प्रतिक्रियामा Cache-Control: no-store हुन्छ।
संस्करण:/v1/ मार्ग असंगत ढङ्गले बदलिने छैन; भाँचिने परिवर्तनले /v2/ प्रयोग गर्नेछन्।
POST/api/v1/run
पाठमा एउटा एआई काम चलाउँछ र नतिजा सादा पाठका रूपमा फर्काउँछ (भूमिका वाक्य र Markdown बाड बिना)।
अनुरोध
Field
Type
Required
Notes
task
string
✓
कामको नाम; तलको कामको सूची हेर्नुहोस्।
text
string
✓
इनपुट पाठ, १–६,००० क्यारेक्टर।
lang
string
✓
नतिजाको भाषा: साइटका ५६ लोकेल कोडमध्ये एक (en, id, ne, ja, pt-pt, zh-hant…; pt-BR जस्ता BCP 47 ट्याग रूपान्तरण गरिन्छन्) वा "इनपुटकै भाषा" का लागि auto।
mode
string
—
त्यस टुलमा उपलब्ध मोड, जस्तै Formal, Akademik, Ringkas, Poin-poin (मोडका नाम इन्डोनेसियाली रजिस्ट्री लेबल हुन्)। मोड नभएका कामले यसलाई बेवास्ता गर्छन्।
options
object
—
कामअनुसारका विकल्प: translate का लागि from / to (कुनै पनि समर्थित भाषाबाट अर्कोमा; fromauto हुन सक्छ; sr-Cyrl ले सर्बियन सिरिलिकमा माग्छ), caption का लागि platform (instagram / tiktok / linkedin), र bio, coverletter र meta का लागि ऐच्छिक लेबलसहितका fields। अन्य कुञ्जी बेवास्ता गरिन्छन्।
POST /api/v1/run HTTP/1.1
Content-Type: application/json
{
"task": "paraphrase",
"mode": "Formal",
"lang": "ne",
"text": "विद्यार्थीका लागि राम्रो लेखाइ साह्रै महत्त्वपूर्ण हुन्छ।",
"options": {}
}
प्रतिक्रिया
स्थिति 200, ok: true, नतिजा output मा, वास्तवमा जवाफ दिएको मोडेल model मा (वैकल्पिक मोडेलले काम गरेको खण्डमा फरक हुन्छ) र प्रशोधन समय मिलिसेकेन्डमा। जवाफ लम्बाइको सीमा वा समयसीमामा पुगेर काटिएको भए truncated: true थपिन्छ।
{
"ok": true,
"output": "विद्यार्थीका निम्ति राम्रो लेखन अत्यन्त आवश्यक हुन्छ।",
"model": "@cf/qwen/qwen3-30b-a3b-fp8",
"ms": 812
}
उदाहरण: curl
curl -X POST https://adeptwrite.com/api/v1/run \
-H "Content-Type: application/json" \
-d '{"task":"grammar","lang":"ne","text":"म भोलि बजार जान्छु र तरकारी किन्नेछु।"}'
उदाहरण: JavaScript (fetch)
const res = await fetch('/api/v1/run', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ task: 'summarize', mode: 'Poin-poin', lang: 'ne', text }),
});
const data = await res.json();
if (!data.ok) throw new Error(data.error.code + ': ' + data.error.message);
console.log(data.output);
POST/api/v1/plagiarism
पाठबाट ४–८ विशिष्ट वाक्यांश छान्छ, पाठकै भाषाका खुला स्रोत (Wikipedia, Internet Archive को पूर्ण पाठ, Europe PMC, DOAJ, arXiv; वेब खोज प्रदायक सेट गरिएको र माग गरिएको अवस्थामा मात्र) मा खोज्छ र मिलानको स्कोर निकाल्छ। ती छोटा वाक्यांश मात्र सर्भरबाट बाहिर जान्छन्।
अनुरोध
Field
Type
Required
Notes
text
string
✓
कम्तीमा ३० शब्द, बढीमा ६,००० क्यारेक्टर।
lang
string
✓
साइटको लोकेल कोड वा auto।
options
object
—
सञ्चालकले वेब खोज प्रदायक सेट गरेको छ भने web: true ले वेब खोज पनि गर्छ; वास्तवमा जवाफ आयो कि आएन भन्ने प्रतिक्रियाको webSearched ले बताउँछ।
POST /api/v1/plagiarism HTTP/1.1
Content-Type: application/json
{ "text": "…कम्तीमा ३० शब्द…", "lang": "ne", "options": { "web": false } }
प्रतिक्रिया
स्थिति 200, score (मिलेका शब्द ÷ शब्द, ० देखि १), हरेक स्रोतको matches र हाइलाइट गरिएका passages (तपाईंको पाठमा क्यारेक्टर अफसेट), sourcesSearched (नतिजामा जवाफ समावेश भएका स्रोत मात्र), कारणसहितको sourcesSkipped, र webSearched।
curl -X POST https://adeptwrite.com/api/v1/plagiarism \
-H "Content-Type: application/json" \
-d '{"lang":"ne","text":"…कम्तीमा ३० शब्द…"}'
GET/api/v1/health
कुन सेवा सक्रिय छन् भनेर बताउँछ। कुनै body लिँदैन र कोटामा गनिँदैन।
प्रतिक्रिया
स्थिति 200। एआई किल स्विच खुला हुँदा ai false हुन्छ; plagiarism ले चेकरले खोज्न सक्ने स्रोत सूचीबद्ध गर्छ; aidetect ले एआई डिटेक्टरको सर्भर-पक्षीय गहिरो विश्लेषण वर्णन गर्छ, जुन अझै तैनाथ गरिएको छैन (POST /api/v1/aidetect ले 503 disabled दिन्छ; साइटको डिटेक्टर तपाईंको ब्राउजरमै चल्छ)।
छोटा कविता; मोड: Bebas (गद्य कविता), Berima (तुकबन्दी), Akrostik (एक्रोस्टिक), Haiku (हाइकु)।
सीमा
पाठको लम्बाइ
प्रति अनुरोध बढीमा ६,००० क्यारेक्टर (त्योभन्दा बढी भए 413 too_long)।
प्रति IP ठेगाना
प्रति मिनेट ३० अनुरोध।
विश्वव्यापी
सम्पूर्ण सेवामा प्रति मिनेट १०० अनुरोध, र एआई सुविधाका लागि दैनिक सीमा।
साहित्यिक चोरी
प्रति IP प्रति मिनेट ५ जाँच र सम्पूर्ण सेवामा प्रति मिनेट ६०; कम्तीमा ३० शब्द।
आउटपुट
हरेक कामको आफ्नै लम्बाइ सीमा, कहिल्यै २,०४८ टोकनभन्दा बढी हुँदैन; काटिएको जवाफमा truncated: true हुन्छ।
मोडेल
भाषाअनुसार छानिन्छ: अङ्ग्रेजी र इन्डोनेसियाली @cf/aisingapore/gemma-sea-lion-v4-27b-it मा, अन्य सबै भाषा (नेपाली सहित) @cf/qwen/qwen3-30b-a3b-fp8 मा चल्छन्। मोडेल व्यस्त, दर-सीमित, ढिलो वा असफल भए अनुरोध शृङ्खलाको अर्को मोडेलमा सर्छ (Qwen3-30B, त्यसपछि @cf/google/gemma-4-26b-a4b-it, त्यसपछि @cf/meta/llama-3.3-70b-instruct-fp8-fast)। model फिल्डले जवाफ दिने मोडेलको नाम सधैँ बताउँछ।
त्रुटी कोड
स्थिति
कोड
कहिले हुन्छ
400
invalid_request
अमान्य JSON, आवश्यक फिल्ड छुटेको, वा अज्ञात task वा lang।
413
too_long
text ६,००० क्यारेक्टरभन्दा लामो छ।
403
forbidden
अनुरोध adeptwrite.com को पृष्ठबाट आएको थिएन।
429
rate_limited
प्रति IP वा विश्वव्यापी प्रति मिनेट सीमा नाघ्यो। Retry-After मा दिइएको सेकेन्ड कुर्नुहोस्।
429
quota_exceeded
एआई सुविधाको दैनिक सीमा सकियो। भोलिपल्ट (UTC) फेरि प्रयास गर्नुहोस्।
502
upstream
शृङ्खलाका सबै मोडेल समयमै जवाफ दिन असफल भए।
502
empty_output
मोडेलले जवाफ दियो, तर नतिजा खाली थियो।
503
disabled
सञ्चालकले सेवा अस्थायी रूपमा बन्द गरेको छ, वा (/api/v1/aidetect का लागि) अझै तैनाथ गरिएको छैन।
त्रुटिको ढाँचा
हरेक त्रुटि सम्बन्धित HTTP स्थिति कोडसहित JSON मा, एउटै बनोटमा फर्कन्छ:
{ "ok": false, "error": { "code": "rate_limited", "message": "Too many requests. Please try again shortly." } }
पहिले ok जाँच्नुहोस्, अनि प्रोग्रामले ह्यान्डल गर्न error.code पढ्नुहोस्; error.message प्रयोगकर्तालाई देखाउन सुरक्षित छ।
सिफारिस गरिएको अभ्यास
लामो कागजात एकैपटक नपठाई भागभाग (जस्तै अनुच्छेदअनुसार) पठाउनुहोस्; नतिजा छिटो आउँछ र जाँच्न सजिलो हुन्छ।
429 लाई तुरुन्तै पुनःप्रयास नगरी exponential back-off ले सम्हाल्नुहोस्।
आवश्यक नपर्ने व्यक्तिगत वा गोप्य डेटा नपठाउनुहोस् — हामीले भण्डारण नगरे पनि डेटा न्यूनीकरणको सिद्धान्त लागू हुन्छ।
एआईको नतिजा गलत हुन सक्छ; यसलाई अन्तिम सत्य होइन, जाँचिनुपर्ने सुझावका रूपमा प्रस्तुत गर्नुहोस्।
बारम्बार सोधिने प्रश्न
आफ्नै एप वा डोमेनबाट API कल गर्न मिल्छ?
अहिले मिल्दैन। Worker ले हाल CORS हेडर पठाउँदैन र adeptwrite.com का पृष्ठलाई मात्र सेवा दिन्छ। API कुञ्जीसहितको बाह्य पहुँच Pro योजनासँगै ल्याउने योजना छ; उपलब्ध भएपछि यो दस्तावेज अद्यावधिक गरिनेछ।
API मा पठाइएको पाठ भण्डारण हुन्छ?
हुँदैन। पाठ जवाफ बनाउन मोडेलमा पठाइन्छ र त्यसपछि फ्याँकिन्छ। लगमा मेटाडेटा मात्र हुन्छ (स्थिति कोड, काम, अवधि)। पूर्ण विवरण गोपनीयता नीतिमा हेर्नुहोस्।
आउटपुट संरचित JSON नभई सादा पाठ किन हो?
हरेक कामले भूमिका वाक्य वा Markdown बाड बिना प्रयोगका लागि तयार एउटै पाठ दिन्छ, ताकि त्यसलाई सिधै सम्पादकमा देखाउन सकियोस्। थप संरचना (जस्तै परिवर्तनको सूची) v1 नबदली पछिल्लो संस्करणमा ल्याउने योजना छ।
API को शुल्क कति पर्छ?
adeptwrite.com बाट यो निःशुल्क हो, प्रति IP प्रति मिनेट ३० एआई अनुरोधसम्म सीमित। बाह्य पहुँचको मूल्य Pro योजनासँगै घोषणा गरिनेछ; त्यसअघि कुनै शुल्क लाग्दैन।
मेरो अनुरोधमा कुन मोडेलले जवाफ दिन्छ?
यो भाषामा निर्भर छ: अङ्ग्रेजी र इन्डोनेसियाली SEA-LION मा जान्छन्, अन्य भाषा (नेपाली सहित) Qwen3-30B मा। त्यो मोडेल व्यस्त वा असफल भए वैकल्पिक शृङ्खलाको अर्को मोडेलले जवाफ दिन्छ, र प्रतिक्रियाको model फिल्डले कुन मोडेलले दियो भनेर बताउँछ।