Rspamd GPT Plugin をさくらのAI Engine で動かしてみる その2

前回の記事「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】(安全)

信頼できる送信元や、正当なビジネスメールが正しく認識されています。

  1. Legitimate recruitment email from known domain with no suspicious requests. (既知のドメインからの正当な求人メールであり、不審な要求は見られません。)
  2. Legitimate job scouting email from a known domain with no malicious requests or urgent threats. (既知のドメインからの正当なスカウトメールであり、悪意ある要求や緊急の脅しはありません。)
  3. Official transactional update from a recognized service with no phishing indicators. (認識されているサービスからの公式な通知であり、フィッシングの兆候は見られません。)

【GPT_UNCERTAIN】(保留)

安全そうだが100%の確証がないグレーゾーンです。日本の配信システム経由のメールに多い傾向があります。

  1. Legitimate technical mailing list discussion with no suspicious requests or links. (不審なリンクや要求はありませんが、技術的なメーリングリストでの議論のようです。)
  2. Promotional language found, but it originates from a potentially recognized sender. (宣伝的な表現が含まれていますが、認識されている送信者からの可能性があります。)
  3. A standard technical update or notification that does not meet the strict threshold for ham. (標準的な通知ですが、完全に安全と断定するための厳格な基準には達していません。)

【GPT_SPAM】(迷惑メール)

詐欺ではないものの、一方的な宣伝や過度な売り込みを検知しています。

  1. Unsolicited promotional email pushing a business seminar with sensational claims. (衝撃的な主張を伴う、未承諾のビジネスセミナー勧誘メールです。)
  2. Dense promotional offer with discounts and coupon roulette, typical of marketing spam. (割引やクーポンが詰め込まれた過度な宣伝で、典型的なマーケティングスパムです。)
  3. The email is a promotional solicitation with multiple marketing pitches and calls‑to‑action. (複数の宣伝文句や行動を促す言葉が含まれた、一方的な営業メールです。)

【GPT_PHISHING】(フィッシング詐欺)

なりすましやアカウント停止を装う「明確な悪意」を正確に射抜いています。

  1. Sender uses unrelated domain and links to a third‑party URL instead of an official domain. (送信者が無関係なドメインを使用し、公式サイトではないURLへ誘導しています。)
  2. Urgent threat about account restriction combined with a mismatched URL domain. (アカウント制限という緊急の脅しと、送信元と一致しないドメインのURLが含まれています。)
  3. 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通前後のメールが届いており、月末に無料枠を使い切っていた。 さくらのAI Engine 1月分のリクエスト数 さくらのAI Engine 2月分のリクエスト数 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 と壁打ちして作成しています。