基本信息
- 基础地址:
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、zh-hans、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-hans",
"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-hans","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-hans', 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 个有代表性的短语,用文本所用的语言在公开来源(维基百科、维基文库、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-hans", "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-hans","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 | 语法和拼写纠正(中文按《通用规范汉字表》与 GB/T 15834 的用字和标点规范)。 |
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 | 一行话题标签;模式: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 页面发来的请求。带密钥的外部访问计划与 Pro 套餐一起推出,开放后本文档会同步更新。
不会。文字被转交给模型生成答案,之后即被丢弃。日志中只有元数据(状态码、任务、耗时)。详情见隐私政策。
每个任务都生成一段可直接使用的文字,没有开场白和 Markdown 代码围栏,可以直接显示在编辑器里。额外的结构(例如修改清单)计划在以后的版本提供,不会改变 v1。
从 adeptwrite.com 调用是免费的,限制为每个 IP 每分钟 30 次 AI 请求。外部访问的价格将随 Pro 套餐一起公布;在那之前不收取任何费用。
取决于语言:英语和印尼语交给 SEA-LION,其他语言交给 Qwen3-30B。如果该模型繁忙或出错,则由备用链条中的下一个模型作答,响应的 model 字段会写明是哪一个。