前回の記事「Rspamd GPT Plugin をさくらのAI Engine で動かしてみた」で Rspamd のバージョンを 3.13.0 から 3.14.2 へ更新してから40日が経過しました。AI 側に送信するプロンプト(指示文)も改善されたので記事に残しておきます。
約4,000通の受信データを解析したところ、AIの「回答」が変化し、実用的なフィルタへと進化していることが分かりました。
1. 判定結果の劇的な変化(比較)
バージョンアップ前後で、判定の割合は以下のように変化しました。違いは、新しく導入された GPT_UNCERTAIN(判定保留) の登場です。
| 判定項目 | 以前 (v3.13.0) | 今回 (v3.14.2) | 傾向と分析 |
|---|---|---|---|
| GPT_HAM (安全) | 44.1% | 72.3% | 救済ルールにより「白」判定が大幅増。 |
| GPT_UNCERTAIN (保留) | 0% | 19.9% | 証拠不十分なものを「保留」にする慎重派へ。 |
| GPT_SPAM/PHISHING | 9.6% | 4.3% | 確実な「黒」のみを絞り込み。誤判定が激減。 |
| NONE (判定なし) | 3.6% | 3.5% | 既存フィルタで確定したスパムは賢くスキップ。 |
「無理に白黒つけない」
以前のプロンプトは「厳格に判断せよ」という指示だったため、少しでも怪しいとスパム扱いされ、誤判定もありました。更新後は「複数のレッドフラグがない限り決めつけない」というルールが徹底されており、柔軟な判断になっています。
2. 判定理由の具体例(英文と日本語訳)
AIが実際にどのような理由(X-GPT-Reason)で判定を下しているのか、各カテゴリーの代表例をまとめました。
【GPT_HAM】(安全)
信頼できる送信元や、正当なビジネスメールが正しく認識されています。
- Legitimate recruitment email from known domain with no suspicious requests. (既知のドメインからの正当な求人メールであり、不審な要求は見られません。)
- Legitimate job scouting email from a known domain with no malicious requests or urgent threats. (既知のドメインからの正当なスカウトメールであり、悪意ある要求や緊急の脅しはありません。)
- Official transactional update from a recognized service with no phishing indicators. (認識されているサービスからの公式な通知であり、フィッシングの兆候は見られません。)
【GPT_UNCERTAIN】(保留)
安全そうだが100%の確証がないグレーゾーンです。日本の配信システム経由のメールに多い傾向があります。
- Legitimate technical mailing list discussion with no suspicious requests or links. (不審なリンクや要求はありませんが、技術的なメーリングリストでの議論のようです。)
- Promotional language found, but it originates from a potentially recognized sender. (宣伝的な表現が含まれていますが、認識されている送信者からの可能性があります。)
- A standard technical update or notification that does not meet the strict threshold for ham. (標準的な通知ですが、完全に安全と断定するための厳格な基準には達していません。)
【GPT_SPAM】(迷惑メール)
詐欺ではないものの、一方的な宣伝や過度な売り込みを検知しています。
- Unsolicited promotional email pushing a business seminar with sensational claims. (衝撃的な主張を伴う、未承諾のビジネスセミナー勧誘メールです。)
- Dense promotional offer with discounts and coupon roulette, typical of marketing spam. (割引やクーポンが詰め込まれた過度な宣伝で、典型的なマーケティングスパムです。)
- The email is a promotional solicitation with multiple marketing pitches and calls‑to‑action. (複数の宣伝文句や行動を促す言葉が含まれた、一方的な営業メールです。)
【GPT_PHISHING】(フィッシング詐欺)
なりすましやアカウント停止を装う「明確な悪意」を正確に射抜いています。
- Sender uses unrelated domain and links to a third‑party URL instead of an official domain. (送信者が無関係なドメインを使用し、公式サイトではないURLへ誘導しています。)
- Urgent threat about account restriction combined with a mismatched URL domain. (アカウント制限という緊急の脅しと、送信元と一致しないドメインのURLが含まれています。)
- Uses a fake sender address and directs users to a suspicious URL, classic signs of phishing. (偽の送信アドレスを使用し、不審なURLへ誘導しています。フィッシングの典型的な兆候です。)
3. さくらのAI Engine の活用について
2ヶ月半使ってみて、 さくらのAI Engine は迷惑メール判定に十分活用できるということがわかりました。
- 安定性: さくらのAI Engineの平均判定時間は 1.66秒。最長でも3秒程度。
- 納得感: 判定理由(Reason)を読むと、AIが文脈をしっかり理解して「なぜ怪しいか」を論理的に説明している
毎日100通前後のメールが届いており、月末に無料枠を使い切っていた。
Rspamd のログを確認したところ、1/30 20時頃から制限され、2/1 8時過ぎまで続いた。月初の9時にリセットされるのかな。
2026-01-30 20:11:11 #3605770(normal) <ace518>; lua; gpt.lua:896: bad reply: {"error":{"message":"rate limit exceeded"}}
...
2026-02-01 08:17:52 #3605770(normal) <67de09>; lua; gpt.lua:896: bad reply: {"error":{"message":"rate limit exceeded"}}
この記事は Gemini と壁打ちして作成しています。