投稿欄の荒らし対策を生成AIなしで組むための判定と確認手順

投稿の判定を、生成AIなしで組み直す

お題に対して「相手を傷つけない返し」を投稿し、練習するサービスでは、投稿を受け付ける仕組みとともに、傷つける内容や個人情報をどう扱うかを決める必要があります。TechAthletes が開発する日本語・英語対応の返し道場でも、公開前にその判定と運営の確認手順を組みました。

2026年10月11日の設計では、投稿の判定に生成AIを使う予定でした。翌12日には、AIを使わない構成へ切り替えています。切り替え後は、AIの呼び出し・鍵・課金の経路がコードにもクラウドにも残っていないことを、テストで確認しました。

今回の設計で軸にしたのは、投稿への対応を「保存前に規則で止める」「判断が難しいものを保留する」「公開後に通報と人の確認で止める」に分けることです。規則で判定できる範囲と、人が受け持つ範囲を決め、それぞれの経路が働くことを公開の前提にしました。

保存を断れるか、通報を正しく数えるかを確かめる

検査はすべてサーバ側で強制します。画面からデータベースへの直接の書き込みは規則で断り、投稿は必ずサーバの関数を通します。投稿数などの検査にも、画面からの申告は使いません。

保存前には、長さ、電話番号、メール、URL、郵便番号と住所の並び、SNSのハンドル、使えない言葉などを確認します。メールは伏せ字の「at」「dot」、使えない言葉は伏せ字の綴りも検出対象です。規則に当たった場合は保存せず、理由と書き直しのヒントを返します。

公開の前提にしたのは、問題のある入力や操作を受け付けないことを確かめる「負のテスト」です。記録には、次の確認項目を置いています。

使えない言葉を含む回答 → 保存されない・理由が返る。
通報の重みの合計3 → 非表示になり確認の列に入る。
同じ人が同じ対象を2回通報 → 2回目は数えない。
「個人情報」の通報1件 → 即保留。
1人が21件目の回答 → 断る。

ここで確かめる対象は、判定の結果だけではありません。保存されないこと、通報が重複して数えられないこと、非表示にした投稿が運営の確認へ回ることまでを含みます。入力の検査と、その後の状態の変化を一緒に確認する構成です。

規則で止められる範囲と、公開後に残る限界

使えない言葉の照合では、無害な表現まで止めないための処理も入れました。「飯テロ」「ゴミ出し」「釘を刺す」、英語の「photo shoot」「take out the trash」といった決まった言い回しは、照合の前に取り除きます。

英語では語の境目で照合し、「skill」に含まれる文字列を「kill」として扱わないようにしています。また、日常の誇張である「this traffic will kill me」は通し、相手に向けた「I will kill you」で止めます。含まれる文字だけでなく、記録にある表現の形に応じて扱いを分けています。

ただし、この規則で文脈に依存する悪口をすべて止めることはできません。辞書にない言い回し、遠回しの皮肉、見た目をからかう文、新語、わざと崩した綴りは、保存前の検査を通ります。これらは通報と運営の確認で後から止めるため、公開から非表示までに時間差が残ります。

大人向けの判定も、対象は「語」です。対象の語を使わない際どい冗談は一般の枠に出るため、通報を受けて移す運用にしています。大人向けの枠自体は、18歳以上と申告し、設定をオンにした人だけが閲覧・投稿でき、一般のページに混ざらない構成です。

規則の限界と、枠を分ける仕組みの役割は別々に扱っています。枠があっても、そこへ振り分ける判定には限界があることを運営の文書にも記しました。

判断を保留する経路と、数えられないときの扱いを決める

保存を断るほど明確でないものには、保留の経路を用意しました。漢字3〜6字に「さん」「くん」「様」が続く名前らしい形や、その人の最初のお題3本は、本人にだけ見える状態にして運営の確認へ回します。

投稿数にも上限を設けています。通常は1人1日あたり回答20件・お題3件です。作成から72時間未満、または違反歴のあるアカウントは回答5件・お題0件に制限します。同じ接続元からは1日60件、表示名の変更は1日2回までです。

上限に達した場合は429を返します。ここで明示したのが、件数を数えられない場合の扱いです。その場合は503を返し、投稿を素通ししません。上限の数字だけでなく、上限を確認できないときの動作も決めています。

通報では、重みの合計が3になると自動で非表示にし、運営の確認へ回します。「個人情報」「自傷」の通報は1件で即保留です。作成から72時間未満のアカウントによる通報は重み0.5とし、同じ接続元からの複数の通報は1人分として扱います。

確認の列は人が毎日見ます。復帰・削除・移動・凍結を運営が決め、通報者と投稿者に知らせます。誤検知を見つけた場合は、先にテストへ1行追加し、その後で除外の一覧へ追加する手順です。投稿が増えた場合には手元のAIで一次判定の案を作る構想もありますが、今回の構成では、日々の人の確認が運用に含まれています。

業務に置き換えると

問い合わせフォーム、投稿欄、コメント欄に置き換えるなら、AIの判定を選ぶ前に、次の項目を点検できます。

  • 規則・回数・通報で対応を分けられるか。 保存前に断る条件、件数で止める条件、公開後に確認する条件を書き出し、その組み合わせで足りるかを考えます。
  • 規則を通る問題を明記しているか。 遠回しの表現や辞書にない言葉など、止められない範囲を記し、通報と人が受け持つことを決めます。公開から対応までの時間差も、この運用の一部です。
  • 数えられない場合の動作が決まっているか。 回数の上限だけを設定せず、件数を確認できない場合にも素通ししないことを確かめます。
  • 人の確認と誤検知の修正手順があるか。 保留した投稿を見る作業を運用に含め、誤検知はテストに追加してから除外の一覧を直します。

今回の判断は、規則で判定できる範囲を明確にし、残る問題を通報と人の確認につなぐものでした。業務への導入でも、何を自動で止めるかと同時に、何が通り、その後を誰が確認するかまで決めることが点検の対象になります。

この記事は、TechAthletes が自社のサービスを作る中で記録した実測をもとに書いています。業務への導入のご相談は 仕事の窓口 で受け付けています。

AI と数学をまとめて読むなら
運営している解説サイト PaperLens に、AI・半導体・計算アルゴリズム・AIのための数学の教科書と論文解説があります。読み放題は月額 ¥490。
PaperLens を見る →
※ PaperLens は当サイトの運営者が作っているサービスです。
✨ Claudeエージェントを複数走らせるならAgent Desk
Terminal tile manager for macOS。全ソース付き $10 買切り。
Agent Desk を見る →

投稿者 TechAthletes 編集部

TechAthletes は、AI・クラウド・開発ツールの技術記事を公開しているメディアです。記事内の商品リンクには広告(アフィリエイトリンク)が含まれます。

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

Click to listen highlighted text!