DiscordのBOTは、コミュニティの運営をサポートしたり、自動化された便利な機能を提供したりと、多くの活用方法がありますが、初心者にとっては少しハードルが高く感じることもあるでしょう。しかし、心配はいりません!このガイドでは、初心者でもわかりやすく、ChatGPTとPythonを使って簡単にDiscord BOTを作成する手順を解説していきます。初めてプログラミングに挑戦する方や、BOT開発に興味がある方でも安心して取り組める内容となっていますので、一緒に楽しく学びましょう!
Discodeって何?
アカウント作成はこちら
Discordは、ゲーマーやコミュニティ、友人とのコミュニケーションを目的とした無料のチャットアプリケーションです。テキストチャット、ボイスチャット、ビデオチャットなどができるほか、サーバーと呼ばれるコミュニティスペースを作成して、さまざまなトピックについて話し合うことができます。
オンラインでのコミュニケーションを一新するなら、Discordが最適です!無料で使えるこのアプリは、テキスト、ボイス、ビデオの各チャット機能を備え、ゲーマーから一般ユーザーまで、誰でも手軽に利用できます。あなた専用のコミュニティスペース「サーバー」を作成し、趣味や興味を共有する仲間たちと活発な議論が可能です。さらに、DiscordのAPIを使えば、カスタムボットの作成や様々な自動化も実現でき、あなたのオンライン体験を次のレベルへと引き上げます。今すぐDiscordを活用して、コミュニティを盛り上げましょう!
コミュニティ参加はこちらから
Pythonの空ファイルの作成
コマンドプロンプトを開く
まず、コマンドプロンプトを開きます。Windowsでは、「スタートメニュー」→「検索」に「cmd」と入力し、「コマンドプロンプト」をクリックします。
ファイルを作成するディレクトリに移動する
ファイルを保存したいフォルダ(ディレクトリ)に移動します。例えば、C:\my-python-project
というフォルダにファイルを保存したい場合、次のコマンドを入力して移動します。
ファイルを作成するコマンド
コマンドプロンプト上でファイルを作成する方法は主に2つあります。echo
コマンドを使ってファイルを作成する方法、もしくは notepad
を使って作成する方法です。
方法 1: echo
コマンドを使ってファイルを作成する
echo
コマンドを使って、簡単なファイルを作成することができます。以下のコマンドを入力して、api.py
というファイルを作成します。
方法 2: notepad
を使ってファイルを作成する
また、notepad
コマンドを使ってファイルを作成し、その場で編集することもできます。以下のコマンドを入力します。
ファイルにコードを入力する
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
import os import requests from dotenv import load_dotenv # .envファイルを読み込む load_dotenv() # 環境変数からAPIキーを取得 OPENAI_API_KEY = os.getenv('OPENAI_API_KEY') # APIキーが正しく読み込まれているか確認 print(OPENAI_API_KEY) # None でないことを確認 def call_chatgpt_api(prompt): """ChatGPT APIを呼び出して、プロンプトに対する応答を取得する関数""" url = "https://api.openai.com/v1/chat/completions" # 修正:正しいエンドポイント headers = { "Authorization": f"Bearer {OPENAI_API_KEY}", "Content-Type": "application/json" } data = { "model": "gpt-3.5-turbo", # 使用するモデル "messages": [{"role": "user", "content": prompt}], # チャット形式のメッセージ "max_tokens": 100, # 最大トークン数 "temperature": 0.7 # 応答のランダム性(0.0から1.0) } try: response = requests.post(url, headers=headers, json=data) response.raise_for_status() # HTTPステータスコードをチェック result = response.json() return result['choices'][0]['message']['content'].strip() # チャット形式の応答 except requests.exceptions.HTTPError as http_err: print(f"HTTPエラーが発生しました: {http_err}") print(f"レスポンス内容: {response.text}") # エラー時のレスポンスの内容を表示 except requests.exceptions.RequestException as e: print(f"APIリクエストに失敗しました: {e}") return None # テスト: プロンプトに対する応答を確認 response = call_chatgpt_api("こんにちは、元気ですか?") if response: print(f"ChatGPTの応答: {response}") else: print("ChatGPT APIからの応答に失敗しました。") |
ポイント
dotenv
ライブラリを使って.env
ファイルからAPIキーなどの機密情報を読み込むようにしています。
- **
load_dotenv()
**は、現在のディレクトリにある.env
ファイルを読み込み、環境変数として扱います。この手法はセキュリティの観点から、APIキーやパスワードをコード内に直接書かないため、よく使われます。
- **
os.getenv('OPENAI_API_KEY')
**で、環境変数に設定されたOpenAIのAPIキーを取得します。このAPIキーは、ChatGPT APIを使用する際に認証として使用されます。
- APIのエンドポイント:
OpenAIのgpt-3.5-turbo
モデルを利用するために、正しいエンドポイントとしてhttps://api.openai.com/v1/chat/completions
を使用しています。このエンドポイントは、チャット形式のAPIリクエストを受け付けます。
.envファイル
まず、.env
ファイルに OpenAI の API キーを追加保存します。
|
OPENAI_API_KEY=your_openai_api_key_here |
現在のディレクトリ構造
|
my-python-project/ ├── main.py └── commands/ └── api.py |
この構造において、main.py
からcommands/api.py
の関数をインポートするためには、commands
フォルダをモジュールとして認識させる必要があります。これを行うには、いくつかのステップを確認して実行する必要があります。
main.py
でモジュールをインポート(コードの書き換え)
commands/api.py
にあるget_data
関数をインポートする際には、次のように書き換えます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
import os import asyncio import discord from discord.ext import commands from dotenv import load_dotenv from utils.logging_setup import setup_logging from commands.api import call_chatgpt_api # ChatGPT APIを呼び出す関数をインポート # 環境変数の読み込み load_dotenv() TOKEN = os.getenv('DISCORD_TOKEN') # Intentsを設定 intents = discord.Intents.default() intents.message_content = True # ログの設定を実行 logger = setup_logging() logger.info('Bot is starting...') # Botの初期化 bot = commands.Bot(command_prefix="!", intents=intents) # !ask コマンドでChatGPTに質問を投げる @bot.command(name="ask") async def ask_chatgpt(ctx, *, question): """ユーザーの質問をChatGPTに投げて、その応答を返す""" response = call_chatgpt_api(question) # API呼び出し if response: await ctx.send(f"ChatGPTの応答: {response}") else: await ctx.send("ChatGPT APIからの応答に失敗しました。") async def load_extensions(): BASE_DIR = os.path.dirname(os.path.abspath(__file__)) COMMANDS_DIR = os.path.join(BASE_DIR, 'commands') EVENTS_DIR = os.path.join(BASE_DIR, 'events') # commands ディレクトリ内のファイルを拡張としてロード for filename in os.listdir(COMMANDS_DIR): if filename.endswith('.py') and filename != '__init__.py' and filename != 'api.py': # api.py を除外 await bot.load_extension(f'commands.{filename[:-3]}') # events ディレクトリ内のファイルを拡張としてロード for filename in os.listdir(EVENTS_DIR): if filename.endswith('.py') and filename != '__init__.py': await bot.load_extension(f'events.{filename[:-3]}') async def main(): async with bot: await load_extensions() await bot.start(TOKEN) if __name__ == "__main__": asyncio.run(main()) |
ポイント
環境変数の読み込み
.env
ファイルからDISCORD_TOKEN
を取得し、Discord Botのトークンとして使用します。
2. Botの初期化
commands.Bot
を使用して、!
をコマンドプレフィックスにしたDiscord Botを作成し、メッセージ内容へのアクセスを許可します。
3. !askコマンドの実装
ユーザーが!ask
コマンドを使って質問を送ると、call_chatgpt_api
関数を使ってChatGPT APIにリクエストを送り、応答を取得してDiscordに返します。
4. コマンドとイベントのロード
commands
ディレクトリとevents
ディレクトリから拡張機能(Cog)をロードし、Botの機能を追加します。
5. Botの起動
main()
関数内で拡張機能をロードし、bot.start()
でDiscordに接続してBotを起動します。
出力結果
ダダ
よく見ると誤字がありましたが、とりあえず無事に完成しました
とりあえず、無事に完成いたしました。
実際にBOTを常時動かすためには、クラウドサービス等を使わないといけませんが、とりあえずはここまでです。
まとめ
今回の記事では、初心者向けにDiscord BOTの作成手順を解説しました。特に、初めてプログラミングに挑戦する方でも安心して取り組めるように、PythonとChatGPT APIを活用してBOTを作成する方法を紹介しました。この記事のポイントは以下の通りです。
- Discordとは何か: ゲーマーやコミュニティ向けの無料チャットアプリで、テキスト、ボイス、ビデオチャット機能を提供します。
- Python環境の準備: コマンドプロンプトを使って簡単にファイルを作成し、プログラミングの基本的な環境を整える方法を解説しました。
- ChatGPT APIの利用: OpenAIのAPIを活用し、質問に応答するBOTを実装しました。セキュリティ面での配慮として、環境変数からAPIキーを読み込む手法も紹介しました。
- BOTの実装と拡張: Discord APIを使った簡単なBOTの作成方法を学び、チャット形式で質問を受け付けてChatGPTから応答を得る仕組みを構築しました。
今後は、このBOTをさらに発展させ、自動化機能やコミュニティ運営の支援機能を追加していくこともできます。この記事を参考に、ぜひ自分だけのオリジナルBOTを作り上げ、Discordでの活動をより一層便利にしていきましょう!
Pythonってどんな物?
プログラミングってどんな物?という方はこちらの記事を参考にしてみてください!!
また、プログラミングに興味はあるけどどうやって勉強していいのかわからないという方はプログラミングを視覚的に理解できる講座を作っていますのでこちらを参考にしてみてください!
Udemyというプラットホームを使用して作成した講座です。
初心者向けに作った講座となっております。以下から講座の確認ができるので見てみてください
Udemyの講座はこちらから
プログラミング学習を進めているけれど、まだ副収入につなげられていない…そんなあなたへ!今こそ、学んだスキルを活かして副業に挑戦する絶好のチャンスです。プログラミングだけでなく、自分のスキルや商品をネットで販売する『ネットショップ』を開設してみませんか?
ネットショップを持つことで、自分の知識やスキルをより多くの人に届け、副収入を得ることが可能です。学んできたプログラミングを活かして、ショップのカスタマイズや運営も自由自在に行えますし、もし商品作成が難しい場合でも、デジタル商品やサービス提供など、いろんな選択肢があります。
このステップで一歩踏み出せば、今学んでいることが副収入に直結し、自分の時間をより有効に使うことができるはずです!一緒にネットショップを開設し、副業の第一歩を踏み出しましょう!
関連