gpt-discord-bot - 入力候補 API を使用して 'text-davinci-003' モデルと会話し、モデレーション API を使用してメッセージをフィルター処理する Python で記述された Discord ボットの例。

(Example Discord bot written in Python that uses the completions API to have conversations with the `text-davinci-003` model, and the moderations API to filter the messages.)

Created at: 2022-12-22 05:53:06
Language: Python
License: MIT

入力候補 API を使用してモデルと会話し、モデレーション API を使用してメッセージをフィルター処理する Python で記述された Discord ボットの例。

text-davinci-003

このボットは、OpenAI Python ライブラリdiscord.py を使用します。

このリポジトリはプル要求を受け入れません。機能を追加または変更する場合は、このリポジトリをフォークしてください。

顔立ち

  • /chat
    ボットに渡される最初のユーザーメッセージである引数を使用して、パブリックスレッドを開始します
    message
  • モデルは、で開始されたスレッド内のすべてのユーザーメッセージに対して応答を生成します
    /chat
  • 要求ごとにスレッド全体がモデルに渡されるため、モデルはスレッド内の以前のメッセージを記憶します
  • コンテキスト制限に達するか、スレッドで最大メッセージ数に達すると、ボットはスレッドを閉じます
  • ボットの指示をカスタマイズするには、
    config.yaml
  • モデルを変更することができます、ハードコードされた値は
    text-davinci-003

セットアップ

  1. 以下に詳述するように、値をコピーして入力を開始します
    .env.example
    .env
  2. https://beta.openai.com/account/api-keys に移動し、新しいAPIキーを作成して、
    OPENAI_API_KEY
  3. https://discord.com/developers/applications で独自の不和アプリケーションを作成する
  4. [ボット]タブに移動し、[ボットの追加]をクリックします
    • 「トークンのリセット」をクリックして入力します
      DISCORD_BOT_TOKEN
    • ボットをすべてのユーザーに表示する場合を除き、「パブリックボット」を無効にします
    • 「特権ゲートウェイ・インテント」の下の「メッセージ・コンテンツ・インテント」を有効にする
  5. OAuth2タブに移動し、「クライアントID」をコピーして入力します
    DISCORD_CLIENT_ID
  6. サーバーアイコンを右クリックし、[IDのコピー]をクリックして、ボットの使用を許可するサーバーのIDをコピーします。書き込む。複数のサーバーを許可する場合は、ID を "," のように区切ります。
    ALLOWED_SERVER_IDS
    server_id_1,server_id_2
  7. 依存関係をインストールしてボットを実行する コンソールに招待 URL が表示されます。それをコピーしてブラウザーに貼り付け、ボットをサーバーに追加します。
    pip install -r requirements.txt
    python -m src.main
    

オプションの構成

  1. モデレート メッセージが必要な場合は、モデレート メッセージを送信する各サーバーのチャネル ID を作成してコピーします。これは次の形式である必要があります。
    SERVER_TO_MODERATION_CHANNEL
    server_id:channel_id,server_id_2:channel_id_2
  2. ボットの性格を変更したい場合は、
    src/config.yaml
  3. メッセージにフラグを付けたりブロックしたりするモデレート設定を変更する場合は、 の値を編集します。値が小さいほど、トリガーされる可能性が低くなります。
    src/constants.py

FAQ

ボットがコマンドに応答しないのはなぜですか?

ボットがアクセスできるチャネルが、ボットがこれらのアクセス許可を持つことができるようにします。

  • メッセージの送信
  • スレッドでのメッセージの送信
  • 公開スレッドの作成
  • メッセージの管理(ブロックされたメッセージを削除するためのモデレートのみ)
  • スレッドの管理
  • メッセージ履歴の読み取り
  • アプリケーションコマンドの使用