Skip to content

engkimo/pragin_ai_slackbot

Repository files navigation

pragin-ai slackbot

あなただけの、PersonalAISlackBot

この Slack ボットは、websocket、非同期実行、OpenAI API を使用して質問に答えます。Slack で/pragin-ai コマンドを受信すると、そのコマンドテキストを OpenAI API に送信し、API の応答をユーザーに直接一時的なメッセージで送り返します。

/pragin-ai コマンドがどのチャンネルから発行されても、質問と回答はアプリケーションの次回の再起動まで、特定のユーザーにのみ特定のデバイスで可視化されます。これは、ログ記録されたり、チャンネル/履歴を汚染することがないため便利です。

動作原理

ボットは slack_bolt ライブラリを使用して Slack で/pragin-ai コマンドを監視します。そのようなコマンドを受け取ると、コマンドテキストを handle_faq 関数に渡します。

handle_faq 関数はコマンドテキストを OpenAI API に送信し、応答を待ちます。これは、新しい OpenAI スレッドを作成し、そのスレッドにメッセージを送信してから、スレッドの応答を取得する ask_llm 関数を呼び出すことによって行われます。

handle_faq が OpenAI API の応答を受け取ると、その応答をユーザーに直接メッセージとして送信します。これは、slack_bolt ライブラリの chat_postEphemeral メソッドを使用する send_dm 関数を呼び出すことで行われます。

設定方法

Slack でアプリとボットを設定する Slack のワークスペースでボットを設定するには、新しい Slack アプリを作成し、提供された slack_app_manifest.yaml ファイルを使用して設定する必要があります。以下の手順で行います:

  1. Slack API ウェブサイトに行き、「Create New App」ボタンをクリックします。

  2. ポップアップウィンドウで「From an app manifest」を選択します。

  3. ボットをインストールしたいワークスペースを選択します。

  4. アプリマニフェストを入力するページに移動します。slack_app_manifest.yaml ファイルの内容をコピーして入力フィールドに貼り付けます。

  5. 「Next」ボタンをクリックします。Slack はマニフェストを検証し、アプリ設定の概要を表示します。

  6. 設定を確認し、「Create」ボタンをクリックします。

  7. アプリの基本情報ページに移動します。「Install to Workspace」ボタンをクリックして、ワークスペースにアプリをインストールします。

  8. アプリをインストールした後、Bot User OAuth Token が提供されます。このトークンを保存してください。ボットを実行する際に必要になります。

実行方法

slack_app_manifest.yaml ファイルは、ボットが常にオンラインであり、/pragin-ai スラッシュコマンドを監視するように設定します。スラッシュコマンドが任意のチャンネルで使用されると、ボットはコマンドテキストを受け取り、OpenAI API からの回答で応答します。

ボットを実行するために必要になるので、アシスタント ID を.env ファイルに保存してください。

Slack と OpenAI の設定が完了したら、必要な Python ライブラリを poetry install でインストールし、ツールを実行する準備が整いました。

  1. Poerty を使用して必要な Python ライブラリを poetry install でインストールします。
  2. .env.example に従って.env ファイルを作成し、必要な変数に値を割り当てます。
  3. poetry run python slackbot.py でスクリプトを実行します。
  4. 任意のチャンネルで/pragin-ai コマンドを発行して、Slack のワークスペースでテストします。

注意

このボットは非同期であり、ブロックすることなく複数のコマンドを同時に処理できます。これは、asyncio および concurrent.futures ライブラリを使用し、slack_bolt からの関連する組み込みライブラリとともに達成されます。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors