待检文本
内测版 检测不保存正文,只在点 👍/👎 时记录统计特征用于改进模型。 结果为「AI 味体检」,仅供辅助判断,不构成对作品来源的认定。
粘一段小说进来,右侧给出 AI 味指数、维度拆解和改写建议。
检测完,左边原文会按段落染色:绿=人写 黄=疑似 AI 红=高度怀疑 AI。
结论是疑似度 + 证据链,不是司法意义上的判定。
整本 / 多章
章节曲线
上传整本后,这里会画出一条按章排列的 AI 味曲线。
批量检测
每段之间用一行 ===== 分隔;也可以直接拖入多个 txt 文件。适合工作室批量过稿。
双文本对照
拿作者自己写的当基线,比空口判断更有说服力A · 基线(已知是真人写的)
B · 待测(怀疑有 AI 参与)
接口文档
REST / JSON,零依赖 Node 服务启动服务后用 X-API-Key 或 Authorization: Bearer 调用。所有端点都支持 CORS。
请求示例
# curl
curl -X POST http://127.0.0.1:8787/api/v1/detect \
-H "Content-Type: application/json" \
-H "X-API-Key: 你的Key" \
-d '{"text":"夜色如水,月光透过窗棂……"}'
返回结构
{
"ok": true,
"score": 78, // AI 味指数 0-100
"verdict": { "key": "high", "label": "高度怀疑 AI" }, // 三档结论
"confidence": { "level": "较高", "margin": 6, ... },
"suspiciousParagraphs": [
{ "index": 2, "score": 84, "text": "夜色如水……", "hits": [...] }
],
"dimensions": [ { "key": "rhythm", "score": 82, ... } ],
"findings": [ { "title": "...", "evidence": ["..."], "fix": "..." } ]
}
错误码
401缺少或无效 API Key413文本超长(默认单次 2 MB / 20 万字)422文本过短或中文占比过低429超出每分钟速率或每日配额
领取 API Key
1 token = 1000 字 · 内测免费 200 token填个名字就能领。**同名再次领取 = 换一把新的,旧 Key 立即作废**(忘了 Key 就用这个办法重置)。 Key 只显示一次,请立刻保存。
在线试用
检查运行环境…// 响应会显示在这里
部署命令
# 1. 启动(首次会生成 keys.json 并打印一把新 Key) node server.js # 2. 自定义端口 / 超时 PORT=9000 node server.js # 3. 自检引擎 node server.js --selftest
训练:用你的标注让判定越来越准
每次检测完点一下「这是 AI 写的 / 这是人写的」,样本就会存进 samples.jsonl。
攒够之后跑 node calibrate.js,它会重新学习 46 项特征的「人类均值 / AI 均值 / 区分度权重」,
写进 calibration.json,服务端自动热加载。
它不会记住具体文本,只调整每个特征该有多敏感——所以判定依然可解释,也依然能给出证据。
样本总数
—
AI 标注 / 人类标注
—
当前准确率(阈值 50)
—
AUC
—
独立页面,功能更全(趋势图、Key 增删、CSV 导出)。
打开后台 ↗
默认只保存正文前 500 字(够定位问题,不是整篇存档)。要存全文:启动前设
LOG_TEXT_MAX=0。记录文件在项目目录的 testlogs.jsonl。
| 时间 | IP | 身份 | 字数 | 分数 | 内容 |
|---|---|---|---|---|---|
| 点「刷新记录」加载 | |||||
- 在「检测」页贴文本、检测,然后点底部的三个反馈按钮之一。每类至少标 8 条,30 条以上效果才明显。
- 标完之后,在项目目录执行
node calibrate.js。 - 看它打印的「留出集准确率 校准前 → 校准后」,确认变好再保留;要回滚就删掉
calibration.json。 - 服务端每 15 秒检查一次校准文件,改了自动生效,不用重启。
node calibrate.js # 训练 + 评估 + 写入 calibration.json node calibrate.js --dry # 只看结果,不写文件 node calibrate.js --min 20 # 每类至少 20 条才训练 node calibrate.js --cv 5 # 5 折交叉验证,对外宣传用这个数字
curl -X POST http://127.0.0.1:8787/api/v1/feedback \
-H "Content-Type: application/json" -H "X-API-Key: $KEY" \
-d '{"label":"ai","text":"夜色如水,月光透过窗棂……"}'
这个工具是怎么判的
方法、边界与免责
每个特征都给出「实测值 / 人类参考值 / AI 参考值」,用线性映射把实测值换算成 0–1 的偏离度,再按维度加权得出 AI 味指数。
没有任何一环是黑箱:你可以在报告里看到是哪一条特征、偏离了多少、命中了哪些原文。
对外呈现的是段落级判定(和朱雀一致,按段给结论 + 原文 + 依据),逐句热力图收在细节里,给编辑细看用。
权重和参考值都写在 assets/engine.js 顶部的特征表里,可以直接改。
① 句式节奏
句长变异系数、短句率、节拍器连击、单句成段率。人类句子忽长忽短,模型偏爱 15–35 字的匀速输出。
② 用词习惯
叠词副词(轻轻/缓缓/淡淡)、四字成语、抽象大词、具体物、数字量词。模型写概念,人写东西。
③ 套路句式
「不是…而是…」、排比、仿佛…一般、眼底闪过、嘴角勾起一抹、深吸一口气。这是最容易命中的指纹。
④ 语病杂糅
「大约…左右」「目的是为了」这类语义重复,「原因是…造成的」这类句式杂糅,「通过…,让…」的主语残缺,「说的好」的的/得误用,以及一逗到底。
⑤ 逻辑松散
前言不搭后语:相邻两句内容词完全不重叠又没有转场词;车轱辘话:把上一句换个说法再说一遍;以及「从未…又一次」这类前后矛盾。
⑥ 标点口语
标点种类数、破折号、感叹问号、语气词、网络用语、手写毛边。人打字会有毛边,模型太干净。
⑦ 重复自噬
6 字串复用、句首雷同、相邻句相似度。模型会把自己刚写过的句子再说一遍。
⑧ 意象感官
视觉垄断度、对话占比、对话句长、具体动作。模型只会写「看」,很少写「闻」和「疼」。
⑨ 空转密度
似乎/仿佛/某种/下意识、空转句、升华式收尾。说了很多,什么也没说。
⑩ 可预测性(实验)
字符级条件熵,作为困惑度的廉价代理。越可预测,越像模型输出。权重刻意压低。
| 指数 | 结论 | 含义 | 处置建议 |
|---|---|---|---|
| 0–39 | 人写 | 未检出成规模的机器书写特征 | 直接通过 |
| 40–69 | 疑似 AI | 命中部分模型书写特征,也可能是人机混写或 AI 初稿人工润色 | 人工复核;占全文超 30% 再走下一步 |
| 70–100 | 高度怀疑 AI | 多项模型书写特征同时命中,且分布集中在模型一侧 | 要求作者说明创作过程或提供修改记录 |
0–100 的「AI 味指数」只作为内部量化的精细刻度,对外一律只讲这三档。 想看更细的层次,看右侧「维度拆解」和「可疑段落」里的分段分数。
- 翻译腔 / 严肃文学:用词规整、标点克制、少口语,容易被打高分。建议调低「标点口语」维度权重。
- 公文体 / 说明文:本来就该句句等长,检测失去意义。
- 1500 字以下:统计特征不稳,置信度会自动降级,请务必看置信区间。
- 诗歌 / 意识流:句长和标点本身就是形式,指标会失效。
- AI 生成后人工精修:分数通常落在 40–59,这正是「无法定论」区间,符合实际情况。
点一下,用一段典型模型腔和一段真人网文跑一遍引擎,验证判定方向是否正常。