Parafraziranje, preverjanje slovnice, povzetki, prevajanje in preverjanje plagiatorstva v 56 jezikih. Preprost REST, ki ga streže Cloudflarovo robno omrežje.
Isti izvor
API trenutno sprejema zahteve samo s strani adeptwrite.com (brez glav CORS). Zunanji dostop s ključi API je načrtovan skupaj s paketom Pro. Dokumentacijo objavljamo vnaprej, da je pogodba odprta in se lahko pripravite.
Povzetek
API AdeptWrite v1 ima tri delujoče končne točke. POST /api/v1/run sprejme JSON s polji task, mode, lang in text (do 6.000 znakov) in vrne izpis v obliki navadnega besedila iz modela Cloudflare Workers AI, izbranega glede na jezik; POST /api/v1/plagiarism besedilo primerja z odprtimi viri in našteje vse preiskane vire; GET /api/v1/health vrne stanje storitve. Besedilo se nikoli ne shrani ali zapiše v dnevnike, zahteve z UI pa so omejene na 30 na minuto na naslov IP.
Osnove
Osnovni naslov:https://adeptwrite.com/api/v1
Oblika: zahteve in odgovori so JSON (Content-Type: application/json, UTF-8).
Overjanje: zaenkrat ni; zahteve morajo priti s strani adeptwrite.com (isti izvor). Ključi API pridejo s paketom Pro.
Zasebnost: polje text se nikoli ne shrani ali zapiše v dnevnike; odgovori vsebujejo Cache-Control: no-store.
Različice: pot /v1/ se ne bo spremenila nezdružljivo; prelomne spremembe bodo uporabljale /v2/.
POST/api/v1/run
Izvede eno nalogo z UI nad besedilom in vrne rezultat kot navadno besedilo (brez uvoda in brez Markdownovih ograd).
Zahteva
Field
Type
Required
Notes
task
string
✓
Ime naloge; glejte seznam nalog spodaj.
text
string
✓
Vhodno besedilo, 1–6.000 znakov.
lang
string
✓
Jezik rezultata: ena od 56 kod jezikov strani (en, id, sl, pt-pt, zh-hant …; oznake BCP 47, kot je pt-BR, se preslikajo) ali auto za »isti jezik kot vnos«.
mode
string
—
Način, ki je na voljo za to orodje, na primer Formal, Akademik, Ringkas, Poin-poin (imena načinov so indonezijske oznake iz registra, ne slovenske oznake v vmesniku). Pri nalogah brez načinov se prezre.
options
object
—
Možnosti posamezne naloge: from / to za translate (kateri koli podprti jezik v kateri koli drugi; from je lahko auto; sr-Cyrl zahteva srbščino v cirilici), platform (instagram / tiktok / linkedin) za caption in neobvezna označena polja fields za bio, coverletter in meta. Drugi ključi se prezrejo.
POST /api/v1/run HTTP/1.1
Content-Type: application/json
{
"task": "paraphrase",
"mode": "Formal",
"lang": "sl",
"text": "Dobro pisanje je za študente zelo pomembno.",
"options": {}
}
Odgovor
Stanje 200 z ok: true, rezultat v output, model, ki je dejansko odgovoril, v model (ta se razlikuje, kadar je priskočil nadomestni model), in čas obdelave v milisekundah. Polje truncated: true se doda, kadar je odgovor dosegel omejitev dolžine ali časa in je bil odrezan.
{
"ok": true,
"output": "Kakovostno pisanje je za študente bistvenega pomena.",
"model": "@cf/qwen/qwen3-30b-a3b-fp8",
"ms": 812
}
Primer: curl
curl -X POST https://adeptwrite.com/api/v1/run \
-H "Content-Type: application/json" \
-d '{"task":"grammar","lang":"sl","text":"Šel sem z prijateljem v Ljubljano in nevem, kdaj se vrnem."}'
Primer: 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: 'sl', 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
Izbere 4–8 značilnih besednih zvez iz besedila, v jeziku besedila poišče po odprtih virih (Wikipedija, Wikisource, polno besedilo Internet Archive, Europe PMC, DOAJ, arXiv; ponudnik spletnega iskanja samo, če je nastavljen in zahtevan) in oceni prekrivanje. Strežnik zapustijo samo te kratke besedne zveze.
Zahteva
Field
Type
Required
Notes
text
string
✓
Vsaj 30 besed, največ 6.000 znakov.
lang
string
✓
Koda jezika strani ali auto.
options
object
—
web: true poizveduje tudi pri ponudniku spletnega iskanja, če ga je upravljavec nastavil; webSearched v odgovoru pove, ali je res odgovoril.
Stanje 200 s poljem score (ujemajoče se besede ÷ besede, 0–1), matches po virih z označenimi odlomki v passages (zamiki znakov v vašem besedilu), sourcesSearched (natanko viri, katerih odgovori so v rezultatu), sourcesSkipped z razlogom in webSearched.
Sporoča, katere storitve so vklopljene. Ne sprejme telesa in se ne všteva v kvoto.
Odgovor
Stanje 200. Polje ai je false, dokler je vklopljeno zasilno stikalo UI; plagiarism našteje vire, ki jih preverjanje lahko poizveduje; aidetect opisuje strežniško poglobljeno analizo AI detektorja, ki še ni nameščena (POST /api/v1/aidetect odgovori 503 disabled; detektor na strani deluje v vašem brskalniku).
Deset predlogov sloganov; načini: Merek (blagovna znamka), Kampanye (kampanja), Produk (izdelek).
paragraph
En odstavek iz teme; načini: Pembuka (uvodni), Isi (jedrni), Penutup (zaključni).
coverletter
Osnutek prošnje za zaposlitev; načini: Fresh graduate (po diplomi), Berpengalaman (z izkušnjami), Magang (praksa).
poem
Kratke pesmi; načini: Bebas (prosti verz), Berima (z rimo), Akrostik (akrostih), Haiku.
Omejitve
Dolžina besedila
Največ 6.000 znakov na zahtevo (nad tem 413 too_long).
Na naslov IP
30 zahtev na minuto.
Globalno
100 zahtev na minuto na celotni storitvi in dnevna zgornja meja za funkcije z UI.
Plagiatorstvo
5 preverjanj na minuto na naslov IP in 60 na minuto na celotni storitvi; najmanj 30 besed.
Izpis
Proračun dolžine za posamezno nalogo, nikoli več kot 2.048 žetonov; odrezan odgovor nosi truncated: true.
Model
Model je izbran glede na jezik in opravilo. Kadar je model zaseden, omejen, počasen ali odpove, zahteva preide na naslednji model v verigi. Polje model vedno poimenuje model, ki je odgovoril; imena modelov se lahko spremenijo.
Kode napak
Stanje
Koda
Kdaj se zgodi
400
invalid_request
Neveljaven JSON, manjkajoče obvezno polje ali neznan task oziroma lang.
413
too_long
text presega 6.000 znakov.
403
forbidden
Zahteva ni prišla s strani adeptwrite.com.
429
rate_limited
Presežena je omejitev na naslov IP ali globalna omejitev na minuto. Počakajte število sekund iz Retry-After.
429
quota_exceeded
Dnevna zgornja meja za funkcije z UI je porabljena. Poskusite naslednji dan (UTC).
502
upstream
Noben model v verigi ni pravočasno odgovoril.
502
empty_output
Modeli so odgovorili, a z praznim rezultatom.
503
disabled
Upravljavec je storitev začasno izklopil ali (za /api/v1/aidetect) še ni nameščena.
Oblika napak
Vsaka napaka se vrne kot JSON z ustrezno kodo stanja HTTP in enako obliko:
{ "ok": false, "error": { "code": "rate_limited", "message": "Too many requests. Please try again shortly." } }
Najprej preverite ok, nato za programsko obravnavo preberite error.code; error.message je varno pokazati uporabnikom.
Priporočena praksa
Besedilo pošiljajte po delih (na primer po odstavkih), ne kot dolg dokument; rezultati pridejo hitreje in jih je lažje pregledati.
Odgovor 429 obravnavajte z eksponentnim zamikom, ne s takojšnjimi ponovnimi poskusi.
Ne pošiljajte osebnih ali zaupnih podatkov, ki jih ne potrebujete – čeprav jih ne shranjujemo, še vedno velja zmanjševanje količine podatkov.
Izpis UI je lahko napačen; predstavite ga kot predlog za pregled, ne kot dokončno resnico.
Pogosta vprašanja
Ali lahko API kličem iz lastne aplikacije ali domene?
Še ne. Worker trenutno ne pošilja glav CORS in streže samo strani adeptwrite.com. Zunanji dostop s ključi API je načrtovan skupaj s paketom Pro; dokumentacijo bomo posodobili, ko bo na voljo.
Ali se besedilo, poslano v API, shrani?
Ne. Besedilo se posreduje modelu za pripravo odgovora in nato zavrže. Dnevniki vsebujejo samo metapodatke (kodo stanja, nalogo, trajanje). Vse podrobnosti so v pravilniku o zasebnosti.
Zakaj je izpis navadno besedilo in ne strukturiran JSON?
Vsaka naloga ustvari eno takoj uporabno besedilo brez uvoda in Markdownovih ograd, da ga je mogoče neposredno prikazati v urejevalniku. Dodatna struktura (na primer seznam sprememb) je načrtovana za kasnejšo različico, brez spremembe različice v1.
Koliko stane API?
S strani adeptwrite.com je brezplačen, omejen na 30 zahtev z UI na minuto na naslov IP. Cene za zunanji dostop bomo objavili skupaj s paketom Pro; do takrat se ne zaračuna nič.
Kateri model odgovori na mojo zahtevo?
Odvisno od jezika: angleščina in indonezijščina gresta na SEA-LION, drugi jeziki, tudi slovenščina, na Qwen3-30B. Če je ta model zaseden ali odpove, odgovori naslednji model v nadomestni verigi, polje model v odgovoru pa poimenuje tistega, ki je odgovoril.