ttizze / chatgpt-slackbot

OpenAIのChatGPT APIをSlack上で利用するためのSlackbotスクリプト

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ChatGPT Slackbot

Slackを通じて会話人工知能のChatGPTを利用するためのBOTスクリプト。
会話の履歴数はデフォルトでは10個前まで参照。ユーザーごと、チャンネルごとに異なる履歴を保持する。 環境構築にはOpenAIのAPIトークンとSlackのBoltのアプリケーショントークン3種が必要。
ユーザーを過去の発言から分析するワークスペースの結果を加味して質問に答えることもできる。

ボットの使い方

  • AIとの会話: !gpt [会話内容]
  • AIとの会話の履歴をリセット: !gpt-rs
  • 指定したユーザーの直近のパブリックチャンネルで発言からユーザー分析を依頼: !gpt-ua [@ユーザー名]
  • パブリックチャンネルの検索結果を加味して質問に答える: !gpt-q [質問]
  • 使い方を表示: !gpt-help

セッションの概念はないが、API側には不正行為検出のためにSlack上のユーザーIDを渡している。

環境構築

OpenAIのAPI Token(SECRET KEY)とOrganazation IDを取得。

OpenAI API Keysにアクセスしてアカウント作成の後、SECRET KEYとOrganization IDを取得。

Slack Botのトークンの用意

Bolt 入門ガイドに準拠。

  • SLACK_BOT_TOKEN
  • SLACK_APP_TOKEN
  • SLACK_USER_TOKEN

を取得しておく。

SLACK_BOT_TOKENで要求するスコープ

Bot Token Scopes
  • chat:write
User Token Scopes
  • search:read

Event SubscriptionsのSubscribe to Bot Events で要求するスコープ

  • message.channels
  • message.groups
  • message.im
  • message.mpim

インストール方法

Python3.9.6以上で動作を確認済み。

.env ファイルを実行フォルダ内に作成して、自分のクレデンシャル情報を記述

ORGANAZTION_ID=org-xxxxxxxxxxxxxxxxx
OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxx
SLACK_BOT_TOKEN=xoxb-9999999
SLACK_APP_TOKEN=xapp-9999999-9999999
NAME_SUFFIX=-main

NAME_SUFFIXは複数、Dockerコンテナを起動する際にコンテナ名がかぶらないようにするためのサフィックス。

あとは以下を実行してイメージをビルド&実行。

docker compose --env-file ./opt/.env up -d --build

以上で起動。

docker compose --env-file ./opt/.env down

で停止。

docker compose logs

でログ確認。

LICNESE

MIT

About

OpenAIのChatGPT APIをSlack上で利用するためのSlackbotスクリプト


Languages

Language:Python 96.3%Language:Dockerfile 3.7%