API dokumentācija

Pārfrāzēšana, gramatikas un pareizrakstības pārbaude, kopsavilkumi, tulkojumi un plaģiāta pārbaude 56 valodās jūsu lietotnei. Vienkāršs REST no Cloudflare malas.

Same-origin
Pašlaik API apkalpo tikai pieprasījumus no pašas vietnes adeptwrite.com (bez CORS galvenēm). Ārēja piekļuve ar API atslēgu ir paredzēta kopā ar Pro plānu. Šī dokumentācija publicēta savlaicīgi, lai līgums būtu atklāts un jūs varētu sagatavoties.
Kopsavilkums

AdeptWrite API v1 ir trīs aktīvi galapunkti. POST /api/v1/run saņem JSON ar task, mode, lang un text (līdz 6 000 rakstzīmju) un atgriež vienkāršu tekstu no Cloudflare Workers AI modeļa, kas izvēlēts atbilstoši valodai; POST /api/v1/plagiarism salīdzina tekstu ar atvērtiem avotiem un uzskaita katru pārbaudīto avotu; GET /api/v1/health atgriež pakalpojuma statusu. Teksts netiek glabāts vai ierakstīts žurnālos, un MI pieprasījumi ir ierobežoti līdz 30 minūtē no vienas IP adreses.

Pamati

  • Bāzes URL: https://adeptwrite.com/api/v1
  • Formāts: pieprasījumi un atbildes ir JSON (Content-Type: application/json, UTF-8).
  • Autentifikācija: vēl nav; pieprasījumiem jānāk no lapas adeptwrite.com (same-origin). API atslēgas sekos kopā ar Pro.
  • Privātums: lauka text saturs netiek glabāts un netiek ierakstīts žurnālos; atbildēm ir galvene Cache-Control: no-store.
  • Versija: ceļš /v1/ netiks mainīts nesaderīgi; lielas izmaiņas izmantos /v2/.

POST/api/v1/run

Izpilda vienu MI uzdevumu ar tekstu un atgriež rezultātu kā vienkāršu tekstu (bez ievada, bez Markdown blokiem).

Pieprasījums

FieldTypeRequiredNotes
taskstring✓Uzdevuma nosaukums; skatiet uzdevumu sarakstu zemāk.
textstring✓Ievades teksts, 1–6 000 rakstzīmju.
langstring✓Rezultāta valoda: viens no 56 vietnes lokāles kodiem (lv, en, id, pt-pt, zh-hant un tā tālāk; BCP 47 tagi, piemēram, pt-BR, tiek attēloti attiecīgi) vai auto, kas nozīmē “tāda pati kā ievades valoda”.
modestring—Rīkam pieejams režīms, piemēram, Formal, Akademik, Ringkas, Poin-poin (režīmu nosaukumi ir reģistra etiķetes). Tiek ignorēts, ja uzdevumam nav režīmu.
optionsobject—Papildu opcijas katram uzdevumam: from / to uzdevumam translate (no jebkuras atbalstītas valodas uz citu; from drīkst būt auto; sr-Cyrl pieprasa serbu valodu kirilicā), platform (instagram / tiktok / linkedin) uzdevumam caption, kā arī neobligāti marķēti fields uzdevumiem bio, coverletter un meta. Citas atslēgas tiek ignorētas.
POST /api/v1/run HTTP/1.1
Content-Type: application/json

{
  "task": "paraphrase",
  "mode": "Formal",
  "lang": "lv",
  "text": "Teksta kvalitāte studentiem ir ļoti svarīga.",
  "options": {}
}

Atbilde

Statuss 200 ar ok: true, rezultātu laukā output, modeli, kas faktiski atbildēja, laukā model (tas atšķiras, ja pārņēma rezerves modelis), un apstrādes ilgumu milisekundēs. truncated: true tiek pievienots, ja atbilde sasniedza garuma vai laika ierobežojumu un tika nogriezta.

{
  "ok": true,
  "output": "Studentiem ļoti svarīga ir rakstu darba kvalitāte.",
  "model": "@cf/qwen/qwen3-30b-a3b-fp8",
  "ms": 812
}

Piemērs: curl

curl -X POST https://adeptwrite.com/api/v1/run \
  -H "Content-Type: application/json" \
  -d '{"task":"grammar","lang":"lv","text":"Cik ilgi jums vajadzēja lai uzrakstītu referātu?"}'

Piemērs: 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: 'lv', 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

Izvēlas 4–8 raksturīgas frāzes no teksta, meklē tās atvērtos avotos atbilstoši teksta valodai (Wikipedia, Wikisource, Internet Archive pilnteksti, Europe PMC, DOAJ, arXiv; tīmekļa meklēšanas pakalpojuma sniedzējs tikai tad, ja tas ir konfigurēts un pieprasīts) un aprēķina pārklājumu. No servera iziet tikai šīs īsās frāzes.

Pieprasījums

FieldTypeRequiredNotes
textstring✓Vismaz 30 vārdi, ne vairāk kā 6 000 rakstzīmju.
langstring✓Vietnes lokāles kods vai auto.
optionsobject—web: true papildus izmanto tīmekļa meklēšanas sniedzēju, ja operators to ir konfigurējis; atbildes lauks webSearched norāda, vai šis sniedzējs tiešām atbildēja.
POST /api/v1/plagiarism HTTP/1.1
Content-Type: application/json

{ "text": "…vismaz 30 vārdi…", "lang": "lv", "options": { "web": false } }

Atbilde

Statuss 200 ar score (sakritīgie vārdi ÷ vārdu skaits, 0–1), matches pa avotiem kopā ar izceltajiem passages (rakstzīmju pozīcijas jūsu tekstā), sourcesSearched (tieši tie avoti, kuru atbilde ir rezultātā), sourcesSkipped ar iemesliem un webSearched.

{
  "ok": true,
  "score": 0.42,
  "words": 52,
  "matchedWords": 22,
  "matches": [{ "source": "wikipedia", "title": "…", "url": "https://lv.wikipedia.org/wiki/…",
                "matchedWords": 22, "passages": [{ "start": 0, "end": 131, "text": "…" }] }],
  "sourcesSearched": ["wikipedia", "wikisource", "internet-archive-fts", "europepmc", "doaj"],
  "sourcesSkipped": [],
  "webSearched": false,
  "ms": 2310
}

Piemērs: curl

curl -X POST https://adeptwrite.com/api/v1/plagiarism \
  -H "Content-Type: application/json" \
  -d '{"lang":"lv","text":"…vismaz 30 vārdi…"}'

GET/api/v1/health

Ziņo, kuri pakalpojumi ir aktīvi. Pieprasījuma pamatteksts nav vajadzīgs, un tas netiek ieskaitīts kvotā.

Atbilde

Statuss 200. ai ir false, kamēr ir ieslēgts MI avārijas slēdzis; plagiarism uzskaita avotus, kurus pārbaude var meklēt; aidetect apraksta AI detektora dziļo analīzi serverī, kas vēl nav uzstādīta (POST /api/v1/aidetect atbild ar 503 disabled; vietnes detektors darbojas jūsu pārlūkā).

{
  "ok": true,
  "ai": true,
  "plagiarism": { "enabled": true, "sources": ["wikipedia", "wikisource", "internet-archive-fts", "europepmc", "doaj", "arxiv"], "web": false },
  "aidetect": { "enabled": false, "judge": false }
}

Piemērs: curl

curl https://adeptwrite.com/api/v1/health

Task list

taskWhat it does
paraphrasePārfrāzēšana; režīmi: Standar, Formal, Santai, Akademik, Kreatif, Ringkas, Panjangkan.
grammarGramatikas un pareizrakstības labojumi teksta valodā (lang).
toneStila maiņa; režīmi: Formal, Kantor (lietišķs), Santai (neformāls).
rewriteSmagnēju vai neskaidru teikumu uzlabošana; režīmi: Standar, Formal.
resizeTeikumu saīsināšana un paplašināšana; režīmi: Ringkas, Panjangkan.
essayRindkopu vai esejas veidošana no tēzēm; režīmi: Akademik, Kreatif, Panjangkan.
summarizeKopsavilkums; režīmi: Poin-poin (punkti), Paragraf (rindkopa), Satu kalimat (viens teikums).
translateTulkojums starp jebkurām divām atbalstītajām valodām; options.from (vai auto) un options.to; režīmi: Alami (dabisks, noklusējums), Formal, Santai (neformāls).
thesisDarba tēmu idejas un nodaļu plāns.
abstractStrukturēta anotācija no pētījuma kopsavilkuma.
captionSociālo tīklu apraksti; options.platform: instagram, tiktok, linkedin.
emailE-pasti un vēstules; režīmi: Lamaran kerja (darba pieteikums), Surat resmi (oficiāla vēstule), Follow-up (atkārtota saziņa).
headlineRakstu virsraksti; režīmi: Kreatif, Ringkas.
productProduktu apraksti; režīmi: Marketplace (tirdzniecības platforma), Toko online (interneta veikals).
synonymSinonīmu saraksts vienam vārdam vai frāzei.
humanizePadara stīvu, vispārīgu tekstu dabiskāku; režīmi: Alami (dabisks), Pribadi (personisks), Profesional (profesionāls).
metaTrīs meta virsraksta un apraksta pāri; režīmi: Artikel (raksts), Produk (produkts), Halaman (lapa).
hashtagViena rinda ar tēmturiem; režīmi: Instagram, TikTok, LinkedIn, X.
bioTrīs profila apraksti; režīmi: Instagram, LinkedIn, X, TikTok.
outlineNumurēts plāns ar apakšpunktiem; režīmi: Artikel (raksts), Esai (eseja), Skripsi (noslēguma darbs), Presentasi (prezentācija).
sloganDesmit sauklu idejas; režīmi: Merek (zīmols), Kampanye (kampaņa), Produk (produkts).
paragraphViena rindkopa par tēmu; režīmi: Pembuka (ievads), Isi (galvenā daļa), Penutup (nobeigums).
coverletterMotivācijas vēstules melnraksts; režīmi: Fresh graduate (absolvents), Berpengalaman (pieredzējis), Magang (prakse).
poemĪss dzejolis; režīmi: Bebas (brīvs), Berima (atskaņu), Akrostik (akrostihs), Haiku, Pantun.

Ierobežojumi

Teksta garums
Ne vairāk kā 6 000 rakstzīmju pieprasījumā (413 too_long, ja vairāk).
Vienai IP adresei
30 pieprasījumi minūtē.
Kopumā
100 pieprasījumu minūtē visam pakalpojumam un dienas ierobežojums MI funkcijām.
Plaģiāta pārbaude
5 pārbaudes minūtē no vienas IP adreses un 60 minūtē visam pakalpojumam; vismaz 30 vārdi.
Izvade
Garuma budžets katram uzdevumam, nekad vairāk par 2 048 tokeniem; nogrieztas atbildes nes truncated: true.
Modelis
Tiek izvēlēts pēc valodas: latviešu un lielākā daļa citu valodu izmanto @cf/qwen/qwen3-30b-a3b-fp8, indonēziešu un angļu valoda — @cf/aisingapore/gemma-sea-lion-v4-27b-it. Ja modelis ir aizņemts, sasniedzis ierobežojumu, lēns vai atteicies, pieprasījums pāriet uz nākamo modeli rezerves ķēdē (Qwen3-30B, tad @cf/google/gemma-4-26b-a4b-it, tad @cf/meta/llama-3.3-70b-instruct-fp8-fast). Lauks model vienmēr nosauc modeli, kas atbildēja.

Kļūdu kodi

StatussKodsKad tas notiek
400invalid_requestNederīgs JSON, tukši obligātie lauki, nezināms task vai lang.
413too_longtext garāks par 6 000 rakstzīmēm.
403forbiddenPieprasījums nenāk no lapas adeptwrite.com.
429rate_limitedPārsniegts minūtes ierobežojums vienai IP adresei vai kopējais ierobežojums. Pagaidiet Retry-After norādīto sekunžu skaitu.
429quota_exceededMI funkciju dienas ierobežojums ir izsmelts. Mēģiniet nākamajā dienā (UTC).
502upstreamNeviens modelis ķēdē neatbildēja laikā.
502empty_outputModelis atbildēja, bet rezultāts ir tukšs.
503disabledOperators pakalpojumu uz laiku izslēdzis vai (galapunktam /api/v1/aidetect) tas vēl nav uzstādīts.

Kļūdu formāts

Visas kļūdas tiek atgrieztas kā JSON ar atbilstošu HTTP statusa kodu un vienādu struktūru:

{ "ok": false, "error": { "code": "rate_limited", "message": "Pārāk daudz pieprasījumu. Mēģiniet vēlreiz pēc brīža." } }

Vispirms pārbaudiet ok, pēc tam programmatiskai apstrādei lasiet error.code; error.message drīkst rādīt lietotājam.

Ieteicamā prakse

  • Sūtiet tekstu pa daļām (piemēram, pa rindkopām), nevis kā vienu garu dokumentu; rezultāts būs ātrāks un vieglāk pārbaudāms.
  • 429 apstrādājiet ar eksponenciālu pauzi, nevis tūlītēju atkārtošanu.
  • Nesūtiet nevajadzīgus personas datus vai noslēpumus — lai gan mēs tos neglabājam, datu minimizēšanas princips joprojām ir spēkā.
  • MI rezultāti var būt nepareizi; rādiet tos kā pārbaudāmu ieteikumu, nevis galīgu patiesību.

Biežāk uzdotie jautājumi

Vai API drīkst izmantot no savas lietotnes vai domēna?

Vēl nē. Pašlaik Worker nesūta CORS galvenes un apkalpo tikai lapas adeptwrite.com. Ārēja piekļuve ar API atslēgu ir paredzēta kopā ar Pro plānu; šī dokumentācija tiks atjaunināta, tiklīdz piekļuve tiešām būs pieejama.

Vai uz API nosūtītais teksts tiek glabāts?

Nē. Teksts tiek nodots modelim, lai izveidotu atbildi, un pēc tam atmests. Žurnālos ir tikai metadati, piemēram, statusa kods, uzdevuma nosaukums un ilgums, bez teksta satura. Pilnu informāciju skatiet privātuma politikā.

Kāpēc rezultāts ir vienkāršs teksts, nevis strukturēts JSON?

Katrs uzdevums atgriež vienu lietošanai gatavu tekstu bez ievada vai Markdown blokiem, lai to varētu uzreiz parādīt redaktorā. Papildu struktūra (piemēram, izmaiņu saraksts) ir paredzēta nākamajām versijām, nemainot v1.

Cik maksā API lietošana?

No vietnes adeptwrite.com — bez maksas, ar ierobežojumu 30 MI pieprasījumi minūtē no vienas IP adreses. Maksu shēma ārējai piekļuvei tiks paziņota kopā ar Pro plānu; līdz tam nekādi rēķini netiek izrakstīti.

Kurš modelis atbild uz manu pieprasījumu?

Atkarīgs no valodas: latviešu un lielāko daļu citu valodu apstrādā Qwen3-30B, indonēziešu un angļu valodu — SEA-LION. Ja šis modelis ir aizņemts vai atsakās, atbild nākamais modelis rezerves ķēdē, un atbildes lauks model nosauc modeli, kas faktiski atbildēja.