コンテンツにスキップ

Discord Bot統合・拡張 (#92)

Discord Botの構築・コマンド・連携機能に関するドキュメント。

コマンド一覧

基本コマンド

コマンド 説明
$help コマンド一覧を表示
$status Bot稼働状況を表示
$ping レスポンス時間を表示

会話ログ

コマンド 説明
$savelog <title> <summary> 会話ログを保存
$savelog-i インタラクティブモードで保存

いいね記事要約

コマンド 説明
$likes [platform] いいね記事を要約して投稿
$likes qiita Qiitaストック記事を取得・要約
$likes all 全プラットフォームの記事を取得
$likes --no-summary 要約なしで投稿

Web記事 要約・翻訳

コマンド 説明 使用API
$summary <URL> 記事を日本語で要約 Gemini
$translate <URL> 記事を日本語に全文翻訳 Gemini
$summarize <URL> 記事を日本語で要約 Claude

AI チャット・質問

コマンド 説明
$chat <message> Claude AIと会話(チャンネルごとに履歴を保持)
$ask <question> Claude AIに単発質問(履歴なし、即回答)
$reset 会話履歴をリセット

コマンド詳細

$summarize <URL>

URLで指定したWeb記事をPlaywrightで取得し、Claude APIで日本語要約を生成します。

  • 使い方: $summarize https://example.com/article
  • クールダウン: 15秒(ユーザーごと)
  • 動作:
  • PlaywrightでWebページのタイトルと本文を取得
  • Claude APIに本文を送信し、300〜500文字程度の日本語要約を生成
  • Discord Embedとして返信
  • エラー時: URL不正・取得失敗・API制限時はエラーメッセージを返信
  • 前提: Playwrightが起動済み、Claude APIキーが設定済みであること

$ask <question>

Claude APIに単発で質問し、回答を取得します。$chat と異なり会話履歴を保持しません。

  • 使い方: $ask Pythonのデコレータとは何ですか?
  • クールダウン: 10秒(ユーザーごと)
  • 動作:
  • 質問をClaude APIに送信
  • 回答をDiscord Embedとして返信
  • エラー時: APIキー未設定・API制限時はエラーメッセージを返信
  • 前提: Claude APIキーが設定済みであること

$chat vs $ask の使い分け

  • $chat: 前の会話を踏まえて応答してほしいとき(文脈付き)
  • $ask: 独立した質問を投げたいとき(単発)

認証情報の設定

Discord Bot Token

Credentials/mylab_discord_bot.json:

{
  "bot_token": "YOUR_DISCORD_BOT_TOKEN",
  "guild_id": "YOUR_GUILD_ID"
}

Claude API($chat, $ask, $summarize 用)

Credentials/anthropic_learn_bot.json:

{
  "anthropic_api_key": "YOUR_ANTHROPIC_API_KEY"
}

Gemini API($summary, $translate 用)

Credentials/gemini_api.json:

{
  "api_key": "YOUR_GEMINI_API_KEY"
}