基本資訊
- 基礎網址:
https://adeptwrite.com/api/v1 - 格式:請求與回應都是 JSON(
Content-Type: application/json,UTF-8)。 - 驗證:目前不需要;請求必須來自 adeptwrite.com 的頁面(同源)。API 金鑰隨 Pro 方案推出。
- 隱私:
text欄位不會儲存也不會寫入日誌;回應附有Cache-Control: no-store。 - 版本:
/v1/路徑不會做不相容的變更;破壞性的變更會使用/v2/。
改寫、文法檢查、摘要、翻譯與抄襲檢查,涵蓋 56 種語言。簡單的 REST 介面,由 Cloudflare 的邊緣節點提供服務。
AdeptWrite v1 API 有三個可用的端點。POST /api/v1/run 接收包含 task、mode、lang 與 text(最多 6,000 字元)的 JSON,回傳由 Cloudflare Workers AI 依語言選定的模型所產生的純文字結果;POST /api/v1/plagiarism 把文字與開放來源比對,並列出搜尋過的每一個來源;GET /api/v1/health 回傳服務狀態。文字不會儲存也不會寫入日誌,AI 請求每個 IP 每分鐘限 30 次。
https://adeptwrite.com/api/v1Content-Type: application/json,UTF-8)。text 欄位不會儲存也不會寫入日誌;回應附有 Cache-Control: no-store。/v1/ 路徑不會做不相容的變更;破壞性的變更會使用 /v2/。/api/v1/run對一段文字執行一項 AI 任務,並以純文字回傳結果(沒有開場白,也沒有 Markdown 程式碼框)。
| Field | Type | Required | Notes |
|---|---|---|---|
task | string | ✓ | 任務名稱;見下方的任務清單。 |
text | string | ✓ | 輸入文字,1 到 6,000 字元。 |
lang | string | ✓ | 結果的語言:網站 56 個語言代碼之一(en、id、ja、pt-pt、zh-hant……;pt-BR 這類 BCP 47 標籤會被對應),或 auto,表示「與輸入相同的語言」。 |
mode | string | — | 該工具可用的模式,例如 Formal、Akademik、Ringkas、Poin-poin(模式名稱是登錄表使用的印尼文標籤)。沒有模式的任務會忽略此欄位。 |
options | object | — | 各任務專屬的選項:translate 使用 from / to(任何支援的語言互譯;from 可為 auto;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": "zh-hant",
"text": "好的寫作能力對學生真的很重要。",
"options": {}
}
狀態碼 200,ok: true,結果放在 output,實際回答的模型放在 model(備援模型接手時會不同),處理時間(毫秒)放在 ms。如果答案用完長度預算或達到時間上限而被截斷,會加上 truncated: true。
{
"ok": true,
"output": "優良的寫作能力對學生而言至關重要。",
"model": "@cf/qwen/qwen3-30b-a3b-fp8",
"ms": 812
}
curl -X POST https://adeptwrite.com/api/v1/run \
-H "Content-Type: application/json" \
-d '{"task":"grammar","lang":"zh-hant","text":"他們明天要去圖書館借書,所已今天先整理書單。"}'const res = await fetch('/api/v1/run', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ task: 'summarize', mode: 'Poin-poin', lang: 'zh-hant', text }),
});
const data = await res.json();
if (!data.ok) throw new Error(data.error.code + ': ' + data.error.message);
console.log(data.output);
/api/v1/plagiarism從文字中挑出 4 到 8 個有特色的片語,在該文字語言的開放來源中搜尋(Wikipedia、Wikisource、Internet Archive 全文、Europe PMC、DOAJ、arXiv;只有在已設定並且被要求時才使用網路搜尋供應商),再計算重疊分數。只有這些簡短的片語會離開伺服器。
| Field | Type | Required | Notes |
|---|---|---|---|
text | string | ✓ | 至少 30 個字詞,最多 6,000 字元。 |
lang | string | ✓ | 網站的語言代碼,或 auto。 |
options | object | — | web: true 會在營運者已設定網路搜尋供應商時,一併查詢該供應商;回應中的 webSearched 會說明它是否真的回應。 |
POST /api/v1/plagiarism HTTP/1.1
Content-Type: application/json
{ "text": "……至少 30 個字詞……", "lang": "zh-hant", "options": { "web": false } }
狀態碼 200,包含 score(相符字詞數 ÷ 字詞數,0 到 1)、依來源列出的 matches(含標示出的 passages,為您文字中的字元偏移量)、sourcesSearched(正好是其回應已納入結果的來源)、附有原因的 sourcesSkipped,以及 webSearched。
{
"ok": true,
"score": 0.42,
"words": 52,
"matchedWords": 22,
"matches": [{ "source": "wikipedia", "title": "……", "url": "https://zh.wikipedia.org/wiki/……",
"matchedWords": 22, "passages": [{ "start": 0, "end": 131, "text": "……" }] }],
"sourcesSearched": ["wikipedia", "wikisource", "internet-archive-fts", "europepmc", "doaj"],
"sourcesSkipped": [],
"webSearched": false,
"ms": 2310
}
curl -X POST https://adeptwrite.com/api/v1/plagiarism \
-H "Content-Type: application/json" \
-d '{"lang":"zh-hant","text":"……至少 30 個字詞……"}'
/api/v1/health回報目前開啟了哪些服務。不需要請求內容,也不計入額度。
狀態碼 200。AI 緊急關閉開關啟用時,ai 為 false;plagiarism 列出抄襲檢查可以查詢的來源;aidetect 描述 AI 偵測器在伺服器端的深度分析,這項功能尚未部署(POST /api/v1/aidetect 會回應 503 disabled;網站上的偵測器在您的瀏覽器中執行)。
{
"ok": true,
"ai": true,
"plagiarism": { "enabled": true, "sources": ["wikipedia", "wikisource", "internet-archive-fts", "europepmc", "doaj", "arxiv"], "web": false },
"aidetect": { "enabled": false, "judge": false }
}
curl https://adeptwrite.com/api/v1/health
task | What it does |
|---|---|
paraphrase | 改寫;模式:Standar、Formal、Santai、Akademik、Kreatif、Ringkas、Panjangkan。 |
grammar | 文法與拼字更正。 |
tone | 轉換語氣;模式:Formal(正式)、Kantor(職場)、Santai(輕鬆)。 |
rewrite | 修正生硬或不通順的句子;模式:Standar、Formal。 |
resize | 縮短或擴寫句子;模式:Ringkas、Panjangkan。 |
essay | 把條列重點寫成段落或短文;模式:Akademik、Kreatif、Panjangkan。 |
summarize | 摘要;模式:Poin-poin(條列重點)、Paragraf(段落)、Satu kalimat(一句話)。 |
translate | 任意兩種支援語言之間的翻譯;options.from(或 auto)與 options.to;模式:Alami(自然,預設)、Formal、Santai(口語)。 |
thesis | 論文題目構想與章節大綱。 |
abstract | 依研究內容寫出結構完整的摘要。 |
caption | 社群貼文文案;options.platform:instagram、tiktok、linkedin。 |
email | 電子郵件與書信;模式:Lamaran kerja(求職信件)、Surat resmi(正式書信)、Follow-up(追蹤信)。 |
headline | 文章標題與開場句;模式:Kreatif、Ringkas。 |
product | 商品描述;模式:Marketplace(電商平台)、Toko online(自家網店)。 |
synonym | 單一詞語或片語的同義詞清單。 |
humanize | 讓生硬、制式的文字讀起來更自然;模式:Alami(自然)、Pribadi(個人)、Profesional(專業)。 |
meta | 三組 Meta 標題與描述;模式:Artikel(文章)、Produk(產品)、Halaman(任何網頁)。 |
hashtag | 一行 Hashtag;模式:Instagram、TikTok、LinkedIn、X。 |
bio | 三則個人簡介;模式:Instagram、LinkedIn、X、TikTok。 |
outline | 含子重點的編號大綱;模式:Artikel(文章)、Esai(作文)、Skripsi(論文)、Presentasi(簡報)。 |
slogan | 十則標語構想;模式:Merek(品牌)、Kampanye(活動)、Produk(產品)。 |
paragraph | 依主題寫出一個段落;模式:Pembuka(開頭)、Isi(主體)、Penutup(結尾)。 |
coverletter | 求職信草稿;模式:Fresh graduate(社會新鮮人)、Berpengalaman(有經驗)、Magang(實習)。 |
poem | 短詩;模式:Bebas(自由詩)、Berima(押韻)、Akrostik(藏頭詩)、Haiku(俳句)。 |
413 too_long)。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 超過 6,000 字元。 |
403 | forbidden | 請求不是來自 adeptwrite.com 的頁面。 |
429 | rate_limited | 超過每個 IP 或全站的每分鐘限制。請等待 Retry-After 指定的秒數。 |
429 | quota_exceeded | AI 功能的每日總量已用完。請隔天再試(UTC)。 |
502 | upstream | 備援鏈中的每個模型都沒有在時限內回答。 |
502 | empty_output | 模型有回應,但結果是空的。 |
503 | disabled | 營運者暫時關閉了服務,或(對 /api/v1/aidetect 而言)該功能尚未部署。 |
每個錯誤都以 JSON 回傳,附上對應的 HTTP 狀態碼,結構都相同:
{ "ok": false, "error": { "code": "rate_limited", "message": "Too many requests. Please try again shortly." } }
請先檢查 ok,再讀取 error.code 做程式處理;error.message 可以安全地顯示給使用者看。
429 時用指數退避,不要立刻重試。目前還不行。Worker 目前不傳送 CORS 標頭,只處理 adeptwrite.com 頁面的請求。使用 API 金鑰的外部存取預計隨 Pro 方案推出,開放時會更新這份文件。
不會。文字轉交給模型產生答案後就丟棄。日誌只含中繼資料(狀態碼、任務、處理時間)。完整細節請見隱私權政策。
每項任務都產生一段可直接使用的文字,沒有開場白,也沒有 Markdown 程式碼框,可以直接顯示在編輯器中。額外的結構(例如修改清單)預計在後續版本提供,不會改變 v1。
從 adeptwrite.com 呼叫是免費的,上限是每個 IP 每分鐘 30 次 AI 請求。外部存取的價格會隨 Pro 方案公布;在那之前不會收取任何費用。
依語言而定:英文與印尼文交給 SEA-LION,其他語言交給 Qwen3-30B。如果該模型忙碌或失敗,會由備援鏈中的下一個模型回答,回應的 model 欄位會標明是哪一個。