1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

gpt-3.5-turboを使ってチャットの異常を検知する

Last updated at Posted at 2023-03-30

背景

「起きたら全て消えていた」 Discordで横行する“サーバー凍結荒らし”、1万人参加サーバーが一夜で消えたその手口

という記事を読んで、「gpt-3.5-turboに検知させたらいいんじゃなイカ!?」

って思ったのでやってみようと思います。

・・・

できました。

サーバーを開いてあるのでいろいろ試してみて下さい。

一応言っておきますが、シークレットトークンは送信しないでくださいね?

実装のポイント

以下のような構成で作りました。

以下のようなプロンプトを使用して検知させてみました。

日本語にではなく英語を使用した理由は、いろいろ試した結果英語の方が精度が高いと感じたのと、日本語よりも英語の方がしっかりと意図を反映させた文章が書けると思ったからです。

やはり今話題のプログラミング言語である”English”なだけあって使いやすいですね。

from OpenAIClient import request_openai


# ChatGPTを使ってメッセージを検証する
async def validate_massage_by_chatgpt(message: str) -> bool:
    prompt = f"Output 1 if the following text is part of a Japanese conversation\n" \
             f"\n" \
             f"{message}\n" \
             f"\n" \
             f"Output:"

    response = await request_openai(prompt)
    response_message = response['choices'][0]['message']['content']

    # レスポンスメッセージに'1'が含まれている場合はTrueを返す
    return '1' in response_message

このプロンプトではトークンを節約する意図もあってOutput:で止めてあります。

こうすることで、日本語の会話の一部であると判断した場合に1だけを返信してくれる確率が上がります。

そうではない場合は0を出力して下さい。という文も入れていたのですが、返信に1が含まれていなければ、何かしらの理由で日本語の会話の一部ではないと判断したのだろうということで0を返信してもらう必要はないと思ったのと、指示が多いと精度が落ちると思ったのでプロンプトから削除しました。

完成したアプリを使ってDiscordを監視させている動画がこれです。

トークンらしきものをしっかり削除してくれてます。

これを応用すれば酔っている時に調子に乗ってツイートしてしまったツイートも自分が寝ているうちにBotに削除してもらったりすることができますね。

(お酒を飲んだらツイッターは触らないようにしましょう。)

リポジトリ

こちらに作成したコードを置いておくのでよかったら試してみて下さい。

プロンプト次第な気もしますが、たまにスルーしてしまうこともあるので

AIを使用せず、サーバー内で使用できるテキストのルールを決めて、それに反するメッセージは自動で削除する方がいいのかもしれないなーと思ったりもしました。

AIなし版

ということで作りましたのでもしよかったらこちらも試してみて下さい。

告知

そういえば、「今北産業」って送信すると直近の会話を3行で要約してくれるサービス(無料です)も作りましたのでもしよかったら試してみて下さい。

サーバーレスで頑張ったのにマジで誰も使ってなくて寂しいので使って下さい!!!!!!!

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?