Parafrasa, semakan tatabahasa, ringkasan, terjemahan dan semakan plagiarisme dalam 56 bahasa. REST yang ringkas, disampaikan dari rangkaian tepi Cloudflare.
Asal sama
API pada masa ini hanya melayan permintaan daripada adeptwrite.com sendiri (tiada pengepala CORS). Akses luar dengan kunci API dirancang bersama pelan Pro. Dokumentasi ini diterbitkan awal supaya kontraknya terbuka dan anda boleh bersedia.
Ringkasan
API v1 AdeptWrite mempunyai tiga titik akhir yang aktif. POST /api/v1/run menerima JSON dengan task, mode, lang dan text (sehingga 6,000 aksara) lalu memulangkan keluaran teks biasa daripada model Cloudflare Workers AI yang dipilih mengikut bahasa; POST /api/v1/plagiarism membandingkan teks dengan sumber terbuka dan menyenaraikan setiap sumber yang dicari; GET /api/v1/health memulangkan status perkhidmatan. Teks tidak pernah disimpan atau direkodkan, dan permintaan AI dihadkan kepada 30 seminit bagi setiap IP.
Asas
URL asas:https://adeptwrite.com/api/v1
Format: permintaan dan respons ialah JSON (Content-Type: application/json, UTF-8).
Pengesahan: belum ada; permintaan mesti datang daripada halaman adeptwrite.com (asal sama). Kunci API menyusul bersama Pro.
Privasi: medan text tidak pernah disimpan atau direkodkan; respons membawa Cache-Control: no-store.
Versi: laluan /v1/ tidak akan berubah secara tidak serasi; perubahan yang memecahkan akan menggunakan /v2/.
POST/api/v1/run
Menjalankan satu tugas AI pada teks dan memulangkan hasilnya sebagai teks biasa (tanpa pembukaan, tanpa pagar kod Markdown).
Permintaan
Field
Type
Required
Notes
task
string
✓
Nama tugas; lihat senarai tugas di bawah.
text
string
✓
Teks input, 1–6,000 aksara.
lang
string
✓
Bahasa hasil: salah satu daripada 56 kod lokal laman (en, id, ms, ja, pt-pt, zh-hant…; teg BCP 47 seperti pt-BR dipetakan) atau auto bagi "bahasa yang sama dengan input".
mode
string
—
Mod yang tersedia untuk alat itu, contohnya Formal, Akademik, Ringkas, Poin-poin (nama mod ialah label registri berbahasa Indonesia). Diabaikan bagi tugas tanpa mod.
options
object
—
Pilihan khusus tugas: from / to untuk translate (mana-mana bahasa yang disokong ke mana-mana yang lain; from boleh jadi auto; sr-Cyrl meminta bahasa Serbia dalam aksara Cyrillic), platform (instagram / tiktok / linkedin) untuk caption, dan fields berlabel pilihan untuk bio, coverletter dan meta. Kunci lain diabaikan.
POST /api/v1/run HTTP/1.1
Content-Type: application/json
{
"task": "paraphrase",
"mode": "Formal",
"lang": "ms",
"text": "Penulisan yang baik sangat penting untuk pelajar.",
"options": {}
}
Respons
Status 200 dengan ok: true, hasil dalam output, model yang benar-benar menjawab dalam model (ia berbeza apabila model sandaran mengambil alih) dan masa pemprosesan dalam milisaat. truncated: true ditambah apabila jawapan mencapai bajet panjangnya atau had masa lalu dipotong.
{
"ok": true,
"output": "Kualiti penulisan amat penting bagi para pelajar.",
"model": "@cf/aisingapore/gemma-sea-lion-v4-27b-it",
"ms": 812
}
Contoh: curl
curl -X POST https://adeptwrite.com/api/v1/run \
-H "Content-Type: application/json" \
-d '{"task":"grammar","lang":"ms","text":"Mereka pergi ke perpustakan semalam."}'
Contoh: 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: 'ms', 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
Memilih 4–8 frasa tersendiri daripada teks, mencari sumber terbuka dalam bahasa teks itu (Wikipedia, Wikisource, teks penuh Internet Archive, Europe PMC, DOAJ, arXiv; penyedia carian web hanya apabila dikonfigurasi dan diminta) dan menilai pertindihan. Hanya frasa pendek itu yang meninggalkan pelayan.
Permintaan
Field
Type
Required
Notes
text
string
✓
Sekurang-kurangnya 30 perkataan, paling banyak 6,000 aksara.
lang
string
✓
Kod lokal laman atau auto.
options
object
—
web: true turut menanyakan penyedia carian web apabila pengendali telah mengkonfigurasinya; webSearched dalam respons menyatakan sama ada ia benar-benar menjawab.
Status 200 dengan score (perkataan sepadan ÷ perkataan, 0–1), matches bagi setiap sumber dengan passages yang diserlahkan (ofset aksara dalam teks anda), sourcesSearched (tepat sumber yang jawapannya ada dalam hasil), sourcesSkipped beserta sebab, dan webSearched.
Melaporkan perkhidmatan yang dihidupkan. Tidak mengambil badan permintaan dan tidak dikira dalam kuota.
Respons
Status 200. ai bernilai false apabila suis pemati AI dihidupkan; plagiarism menyenaraikan sumber yang boleh ditanya oleh pemeriksa; aidetect menerangkan analisis mendalam sisi pelayan bagi pengesan AI, yang belum dikerahkan (POST /api/v1/aidetect menjawab 503 disabled; pengesan di laman berjalan dalam pelayar anda).
Puisi pendek; mod: Bebas (sajak bebas), Berima, Akrostik, Haiku.
Had
Panjang teks
Paling banyak 6,000 aksara bagi setiap permintaan (413 too_long jika melebihi).
Bagi setiap alamat IP
30 permintaan seminit.
Global
100 permintaan seminit merentas seluruh perkhidmatan, ditambah had harian bagi ciri AI.
Plagiarisme
5 semakan seminit bagi setiap IP dan 60 seminit merentas perkhidmatan; minimum 30 perkataan.
Keluaran
Bajet panjang bagi setiap tugas, tidak pernah melebihi 2,048 token; jawapan yang dipotong membawa truncated: true.
Model
Dipilih mengikut bahasa: bahasa Inggeris dan Indonesia berjalan pada @cf/aisingapore/gemma-sea-lion-v4-27b-it, setiap bahasa lain pada @cf/qwen/qwen3-30b-a3b-fp8. Apabila sesuatu model sibuk, terhad kadar, perlahan atau gagal, permintaan beralih kepada model seterusnya dalam rantaian (Qwen3-30B, kemudian @cf/google/gemma-4-26b-a4b-it, kemudian @cf/meta/llama-3.3-70b-instruct-fp8-fast). Medan model sentiasa menamakan model yang menjawab.
Kod ralat
Status
Kod
Bila berlaku
400
invalid_request
JSON tidak sah, medan wajib tiada, atau task atau lang tidak dikenali.
413
too_long
text melebihi 6,000 aksara.
403
forbidden
Permintaan tidak datang daripada halaman adeptwrite.com.
429
rate_limited
Had seminit bagi setiap IP atau had global dilampaui. Tunggu sebanyak saat yang dinyatakan dalam Retry-After.
429
quota_exceeded
Had harian ciri AI telah habis. Cuba lagi pada hari berikutnya (UTC).
502
upstream
Setiap model dalam rantaian gagal menjawab dalam masa yang ditetapkan.
502
empty_output
Model menjawab, tetapi hasilnya kosong.
503
disabled
Perkhidmatan dimatikan sementara oleh pengendali, atau (bagi /api/v1/aidetect) belum dikerahkan.
Format ralat
Setiap ralat dipulangkan sebagai JSON dengan kod status HTTP yang sepadan dan bentuk yang sama:
{ "ok": false, "error": { "code": "rate_limited", "message": "Too many requests. Please try again shortly." } }
Semak ok dahulu, kemudian baca error.code untuk pengendalian secara atur cara; error.message selamat dipaparkan kepada pengguna.
Amalan yang disyorkan
Hantar teks secara berperingkat (contohnya satu perenggan sekali) dan bukan satu dokumen panjang; hasil kembali lebih cepat dan lebih mudah disemak.
Kendalikan 429 dengan back-off eksponen, bukan percubaan semula serta-merta.
Jangan menghantar data peribadi atau sulit yang tidak anda perlukan; walaupun kami tidak menyimpannya, prinsip meminimumkan data tetap terpakai.
Hasil AI boleh tersilap; paparkan ia sebagai cadangan untuk disemak, bukan sebagai kebenaran muktamad.
Soalan lazim
Bolehkah saya memanggil API daripada aplikasi atau domain saya sendiri?
Belum. Worker pada masa ini tidak menghantar pengepala CORS dan hanya melayan halaman adeptwrite.com. Akses luar dengan kunci API dirancang bersama pelan Pro; dokumentasi ini akan dikemas kini apabila ia tersedia.
Adakah teks yang dihantar kepada API disimpan?
Tidak. Teks diteruskan kepada model untuk menghasilkan jawapan, kemudian dibuang. Log hanya mengandungi metadata (kod status, tugas, tempoh). Lihat dasar privasi untuk butiran lengkap.
Mengapa keluarannya teks biasa dan bukan JSON berstruktur?
Setiap tugas menghasilkan satu teks siap guna tanpa pembukaan atau pagar kod Markdown supaya ia boleh dipaparkan terus dalam editor. Struktur tambahan (contohnya senarai perubahan) dirancang untuk versi kemudian tanpa mengubah v1.
Berapakah kos API?
Daripada adeptwrite.com ia percuma, dihadkan kepada 30 permintaan AI seminit bagi setiap IP. Harga untuk akses luar akan diumumkan bersama pelan Pro; tiada apa-apa dikenakan sebelum itu.
Model manakah yang menjawab permintaan saya?
Bergantung pada bahasa: bahasa Inggeris dan Indonesia dihantar ke SEA-LION, bahasa lain ke Qwen3-30B. Jika model itu sibuk atau gagal, model seterusnya dalam rantaian sandaran menjawab, dan medan model dalam respons menamakan model yang berbuat demikian.