AI検出API

このページは既存の編集・モデレーションの流れにAIチェックを組み込むエンジニアのためのものです。SlopTotalは同じ文章に23の独立した検出器をかけ、すべてのスコアを無料・アカウント不要で表示します。

自分のサーバーで動かす

コンテナ 1 つで動き、アカウントも API キーも不要です。CPU で動作し、最初のスキャンで約 2 GB のモデルがボリュームにダウンロードされます。

shell
docker run -p 8000:8000 -v sloptotal-models:/app/models ghcr.io/pablocaeg/sloptotal

テキストを分析する

テキストか url を送ります。返ってくるのはレポート全体で、較正済みスコア、判定、各エンジンの結果が含まれます。

shell
curl -X POST http://localhost:8000/api/analyze \
  -H "Content-Type: application/json" \
  -d '{"text": "Paste at least 50 characters of text here..."}'

レスポンス(抜粋)

json
{
  "id": "8a17312e3cb5",
  "source_type": "text",
  "word_count": 95,
  "overall_score": 77.9,
  "overall_verdict": "Likely AI-generated",
  "engines_flagged": 13,
  "engines_total": 23,
  "language": "en",
  "language_support": "supported",
  "engine_results": [
    {
      "engine_name": "Fakespot",
      "score": 1,
      "verdict": "slop",
      "details": "AI probability: 100.0% (Fakespot APOLLO RoBERTa)"
    },
    {
      "engine_name": "Linguistic Markers",
      "score": 1,
      "verdict": "slop",
      "details": "Found 5 AI markers (density: 84.2/1k words): \"ever-evolving\", \"landscape\", \"moreover\", \"in conclusion\", \"ultimately\""
    },
    …
  ]
}

すべてのエンジンが使用中のときは 202 とチケットが返ります。レポートができるまで /api/queue/ticket/{id} を確認してください。429 はキューが満杯という意味なので、指定された秒数をおいて再試行してください。

エンドポイント

エンドポイント内容CPU での目安時間
POST/api/analyze テキストまたは url の 23 エンジン完全レポート 2–8 s
POST/api/quick-score 4 つの分類器とヒューリスティック。拡張機能や一括チェック向け 0.1–0.5 s
POST/api/paragraph-score 段落ごとのスコア 1–3 s
POST/api/scan/site AI アプリビルダーの痕跡と、ページ本文のクイックスコア 1–3 s
POST/api/extract アップロードした .pdf、.docx、.txt、.md ファイルのテキスト < 1 s
GET/api/report/{id} 保存済みのレポート < 0.1 s

すべてのエンドポイントとフィールドは README に

ホスト型 API. このサイトの API は https://api.sloptotal.com です。共有でキューの制限があり、レポートは 30 日間保存されます。継続的な利用や非公開のテキストには、ご自身の環境で動かしてください。

エンジンが見ているもの

あらゆるLLMの文章で学習した分類器、各単語がどれだけ予測しやすいかを測る統計テスト、そしてAIモデルが繰り返しがちな構成や言い回しのチェックです。

短い文章ではシグナルが弱くなります。80語以上、できれば200語以上を使ってください。

結果の読み方

スコアは0から100です。55以上になる人間の文章は100本中2本未満、80以上は200本中1本未満です。

エンジン表も確認してください。ほぼすべてのエンジンが一致していれば、スコアは強い証拠になります。意見が分かれる場合は、AIの手を借りて書かれたか大きく手直しされた文章であることが多く、人の目で丁寧に読む価値があります。

背景

対象:既存の編集・モデレーションの流れにAIチェックを組み込むエンジニア。エンジンはあらゆるLLMの痕跡を探し、統計的な検定も行います。

23のエンジンがスコアを出す仕組み

SlopTotalは1つのモデルだけに意見を求めません。23の独立した検出器を動かし、23のスコアをすべて表示します。役に立つ情報は、意見の食い違いの中にあることが多いからです。9つは人間の文章と機械の文章を見分けるように学習したニューラル分類器で、DeBERTa-v3-large、RoBERTa-large、パラメータ数440万のBERT-tinyなどがあります。7つは学習を必要としない統計テストで、GPT-2モデルにとって文章がどれだけ予測しやすいかを、パープレキシティ、トークン順位、log-rank、2つのモデル間の交差エントロピーで測ります。残りの7つは文章そのものを読み、文の長さのばらつき、語彙、構成、ぼかした表現、AIモデルが繰り返しがちな決まり文句を見ます。

全体のスコアは平均ではありません。SlopBenchで当てはめたロジスティックモデルが、ほかのエンジンの結果がわかったうえで各エンジンが加える情報の量に応じて重みを付けるため、同じように間違えるエンジンが二重に数えられることはありません。ごく短い文章は中央に寄せられます。数語では証拠がほとんどないからです。

判定の帯域は人間の文章をもとに決めています。45はスコアが高い上位5%の人間の文章が始まる位置、55は上位2%、80は上位0.5%です。つまりスコアが55以上なら、そこまで高くなる人間の文章は100本中2本未満ということです。ほかの言語には独自のモデルがあり、言語ごとに対応、試験的、まだ信頼できない、のいずれかが示されます。

3,252本の文章で測定

精度の数字は、何で測ったかを示さなければほとんど意味がありません。SlopTotalはSlopBenchで測定しています。これは、すべてChatGPT登場以前に書かれた人間の文章1,626本と、同じテーマ・同じ長さで最新の14モデル(GPT-6、DeepSeek、Qwen、Llama、Mistral、Gemma、GLMなど)が書いたAIの文章1,626本からなる公開ベンチマークです。ニュース、百科事典、科学論文の要旨、Q&Aの回答、Redditの投稿、レビュー、学生の作文、母語ではない英語、小説を含みます。1種類の文章だけで試した検出器の数字は、現実の場面では崩れてしまうからです。

不公平を見つけるための区分が二つあります。1532年から1915年に出版された文学の87の抜粋(高いスコアは定義上すべて誤り)と、英語を第二言語として書く人の作文です。後者は、検出器が最も誤って疑う人たちです。主要な数字はすべて、モデルの調整に使っていない種類の文章で測定しており、結果は失敗も含めてリポジトリで公開しています。

検出が機能しなくなるところ

短い文章は、どの検出器でも信頼できません。約80語未満ではスコアが言葉の選び方だけで大きく揺れ、約200語以上で落ち着きます。ツイートに自信たっぷりの答えが出たら、その答えを疑ってください。

少しだけ手直ししたAIの文章は難しいケースです。人が書き直すたびに機械の痕跡は消えていき、ここから先は手直しが関係なくなるという境目はありません。ソースコードは対象外です。エンジンは自然言語で学習しており、AIが書いたコードを確実には検出できないため、SlopTotalもそうは主張しません。

スコアは証拠であって、判決ではありません。23のスコアを使ってどこを見て何を尋ねるかを決め、実際に尋ねてください。検出器の結果だけで、成績、採用、掲載を決めるべきではありません。

よくいただく質問

SlopTotalはあらゆるLLMの文章を検出できますか?

はい。スコアは最新の14モデルの文章で較正されており、分類器はあらゆるLLMのような出力で学習しています。大きく手直しされた文章は中間の帯域に入りやすいので、エンジン表を確認してください。

無料ですか?

はい。アカウントも、クレジットも、有料プランもありません。