forked from masuidrive/slack-summarizer
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request masuidrive#4 from masuidrive/develop-masuidrive
Refactoring code and Support M18N, English documents
- Loading branch information
Showing
11 changed files
with
684 additions
and
202 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
{ | ||
"python.linting.enabled": true, | ||
"python.linting.pylintPath": "pylint", | ||
"editor.formatOnSave": true, | ||
"python.formatting.provider": "yapf", // or "black" here | ||
"python.linting.pylintEnabled": true, | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,90 @@ | ||
# ChatGPT を使って Slack の Public channel をまとめて要約するスクリプト | ||
|
||
[In English](./README.md) | ||
|
||
by [masuidrive](https://twitter.com/masuidrive) @ [Bloom&Co., Inc.](https://www.bloom-and-co.com/) 2023- | ||
[APACHE LICENSE, 2.0](https://www.apache.org/licenses/LICENSE-2.0) | ||
|
||
![](./images/slack-summarized.ja.png) | ||
|
||
OpenAI の ChatGPT API を使って、Slack の Public channel の要約を作って投稿するスクリプトです。 | ||
|
||
チャンネルが増えた組織では読むのが追いつかないことが多いため、要約を作って投稿することで、チャンネルの活動を把握しやすくすることができます。 | ||
|
||
このコードの大半も ChatGPT を使って書きました。もっといいプロンプトや機能拡張があったら、Pull Request を送ってください | ||
|
||
簡単な解説などはこちらの記事に書いています。 | ||
|
||
https://note.com/masuidrive/n/na0ebf8a4c4f0 | ||
|
||
OpenAI の情報取扱に関する規約は下記などを自分で確認してください | ||
|
||
https://platform.openai.com/docs/data-usage-policies | ||
|
||
## GitHub Actions で動かす | ||
|
||
GitHub Actions で毎日午前 5 時に動くようになっています。これ以外の環境で動かす場合は適当に頑張ってください。 | ||
|
||
### 自分の GitHub アカウントに fork する | ||
|
||
- 右上の"Fork"ボタンを押して、自分のリポジトリに fork します | ||
- 有料プランにするなどして GitHub Actions が実行できるようにしておきます | ||
|
||
### 環境変数を設定する | ||
|
||
- "Settings"タブを開き、左の"Secrets and variables"→"Actions"を開きます | ||
- 右上の緑の"New Repository Secret"をクリックすると環境変数が設定できるので、次の 3 つの変数を設定します | ||
|
||
![](https://raw.githubusercontent.com/masuidrive/slack-summarizer/main/images/github-settings.png) | ||
|
||
#### OPEN_AI_TOKEN | ||
|
||
- OpenAI の認証トークン | ||
- [OpenAI の Web サイト](https://platform.openai.com/)にアクセスしてください | ||
- 右上の"Sign In"ボタンをクリックし、アカウントにログインしてください | ||
- ページ上部の"API"メニューから、"API Key"をクリックして、API キーを生成します | ||
- "API Key"ページにアクセスすると、API キーが表示されます。これをコピーして Value に貼り付けます | ||
|
||
#### SLACK_BOT_TOKEN | ||
|
||
- Slack の API 認証トークン | ||
- [Slack API の Web サイト](https://api.slack.com/)にアクセスし、ログインしてください | ||
- "Create a new app"をクリックして、"From an app manifest"を選択し manifest に下記の内容をコピーします | ||
|
||
``` | ||
{"display_information":{"name":"Summary","description":"Public channelのサマリーを作る","background_color":"#d45f00"},"features":{"bot_user":{"display_name":"Summary","always_online":false}},"oauth_config":{"scopes":{"bot":["channels:history","channels:join","channels:read","chat:write","users:read"]}},"settings":{"org_deploy_enabled":true,"socket_mode_enabled":false,"token_rotation_enabled":false}} | ||
``` | ||
|
||
- 画面左の"Install App"をクリックし、右に出る"Install App to Workspace"をクリックして、アプリをワークスペースにインストールします。インストールが完了すると、bot の OAuth アクセストークンが表示されます | ||
- この`xoxb-`で始まるトークンをコピーして Value に貼り付けます | ||
|
||
#### SLACK_POST_CHANNEL_ID | ||
|
||
- 要約結果を投稿する Slack の channel_id | ||
- Slack で要約結果を投稿したいチャンネルを開きます | ||
- 上部のチャンネル名をクリックし、出てきた Popup の最下部にある Channel ID を Value に貼り付けます | ||
|
||
#### LANGUAGE | ||
|
||
- 要約を作る言語を指定します | ||
- "ja"や"Japanese", "en" "English"などなんでも指定できます | ||
|
||
#### TIMEZONE | ||
|
||
- 主に読まれる地域のタイムゾーンを指定します。 | ||
- "Asia/Tokyo", "America/New_York"など"TZ database name"形式で指定します | ||
- https://en.wikipedia.org/wiki/List_of_tz_database_time_zones | ||
|
||
### Channel に bot をインストール | ||
|
||
- 画面上部の検索窓から"Summary"を検索し、"Summary [APP]"をクリックします。 | ||
- 上の"Summary"をクリックし、"Add this app to a channel"をクリックして、要約結果を投稿したいチャンネルを指定します | ||
|
||
### 実行 | ||
|
||
- GitHub のリポジトリで"Settings"タブを開き、左の"Actions"→"General"を開きます | ||
- "Actions permissions"の"Allow all actions and reusable workflows"を選択して保存してください | ||
|
||
これらの設定をすると、毎日午前 5 時に Slack の Public channel の要約結果が投稿されます。 | ||
|
||
手動で実行してみる場合には"Actions" タブを開き、左の"Summary"をクリックして、右の"Run workflow"をおしてください。 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,79 +1,94 @@ | ||
# ChatGPT を使って Slack の Public channel をまとめて要約するスクリプト | ||
# Script for summarizing Slack public channels using ChatGPT | ||
|
||
[日本語はこちら](./README.ja.md) | ||
|
||
by [masuidrive](https://twitter.com/masuidrive) @ [Bloom&Co., Inc.](https://www.bloom-and-co.com/) 2023- | ||
[APACHE LICENSE, 2.0](https://www.apache.org/licenses/LICENSE-2.0) | ||
|
||
![](https://raw.githubusercontent.com/masuidrive/slack-summarizer/main/images/slack-summarized.png) | ||
![](./images/slack-summarized.en.png) | ||
|
||
This script uses OpenAI's ChatGPT API to create and post a summary of a Slack public channel. | ||
|
||
In organizations where the number of channels is increasing, it can be difficult to keep up with reading all the activity. By creating and posting summaries, it is easier to keep track of channel activity. | ||
|
||
Slack の Public channel の要約を作って投稿するスクリプトです。 | ||
Most of this code was written using ChatGPT. If you have any better prompts or feature enhancements, please submit a Pull Request. | ||
|
||
チャンネルが増えた組織では読むのが追いつかないことが多いため、要約を作って投稿することで、チャンネルの活動を把握しやすくすることができます。 | ||
Please check OpenAI's terms and conditions of information handling for yourself, including the following | ||
|
||
このコードの大半も ChatGPT を使って書きました。とりあえず動くように書いただけなので、コードは雑然としています。 | ||
https://platform.openai.com/docs/data-usage-policies | ||
|
||
誰かキレイにしたら Pull Request ください。機能追加なども大歓迎です。 | ||
If you have any questions, please feel free to contact me on http://twitter.com/masuidrive_en or http://twitter.com/masuidrive. | ||
|
||
簡単な解説などはこちらの記事に書いています。 | ||
## How to set it up on GitHub Actions | ||
|
||
https://note.com/masuidrive/n/na0ebf8a4c4f0 | ||
It runs on GitHub Actions every day at 5:00 a.m., so if you want to run it in a different environment, you'll have to figure it out. | ||
|
||
## How to set it up | ||
### Fork it to your own GitHub account | ||
|
||
GitHub Actions で毎日午前 5 時に動くようになっています。これ以外の環境で動かす場合は適当に頑張ってください。 | ||
- Click the "Fork" button in the upper right to fork it to your own repository. | ||
- Make the GitHub Actions executable by upgrading to a paid plan or some other means. | ||
|
||
### 自分の GitHub アカウントに fork する | ||
### Edit running time | ||
|
||
- 右上の"Fork"ボタンを押して、自分のリポジトリに fork します | ||
- 有料プランにするなどして GitHub Actions が実行できるようにしておきます | ||
- GitHub Actions uses the cron syntax to schedule jobs, which is specified in the `.github/workflows/summarizer.yaml` file with the `minute hour * * *` format. | ||
- Since this is in UTC, you need to adjust for your own time zone. | ||
- For example, to run the script every day at 5:00 AM in Japan, you would specify `0 20 * * *` to run it at 8:00 PM UTC the day before. | ||
|
||
### 環境変数を設定する | ||
### Set environment variables | ||
|
||
- "Settings"タブを開き、左の"Secrets and variables"→"Actions"を開きます | ||
- 右上の緑の"New Repository Secret"をクリックすると環境変数が設定できるので、次の 3 つの変数を設定します | ||
- Open the "Settings" tab and click "Secrets and variables"->"Actions". | ||
- Click the green "New Repository Secret" button to set environment variables for the following three variables. | ||
|
||
![](https://raw.githubusercontent.com/masuidrive/slack-summarizer/main/images/github-settings.png) | ||
|
||
#### OPEN_AI_TOKEN | ||
|
||
- OpenAI の認証トークン | ||
- [OpenAI の Web サイト](https://openai.com/)にアクセスしてください | ||
- 右上の"Sign In"ボタンをクリックし、アカウントにログインしてください | ||
- ページ上部の"API"メニューから、"API Key"をクリックして、API キーを生成します | ||
- "API Key"ページにアクセスすると、API キーが表示されます。これをコピーして Value に貼り付けます | ||
- OpenAI's authentication token | ||
- Access [OpenAI's website](https://platform.openai.com/). | ||
- Click the "Sign In" button on the upper right and log in to your account. | ||
- Click "API Key" from the "API" menu at the top of the page to generate an API key. | ||
- When you access the "API Key" page, the API key will be displayed. Copy it and paste it into Value. | ||
|
||
#### SLACK_BOT_TOKEN | ||
|
||
- Slack の API 認証トークン | ||
- [Slack API の Web サイト](https://api.slack.com/)にアクセスし、ログインしてください | ||
- "Create a new app"をクリックして、"From an app manifest"を選択し manifest に下記の内容をコピーします | ||
- Slack's API authentication token | ||
- Access the [Slack API website](https://api.slack.com/) and log in. | ||
- Click "Create a new app" and select "From an app manifest", and copy the following contents to the manifest. | ||
|
||
``` | ||
{"display_information":{"name":"Summary","description":"Public channelのサマリーを作る","background_color":"#d45f00"},"features":{"bot_user":{"display_name":"Summary","always_online":false}},"oauth_config":{"scopes":{"bot":["channels:history","channels:join","channels:read","chat:write","users:read"]}},"settings":{"org_deploy_enabled":true,"socket_mode_enabled":false,"token_rotation_enabled":false}} | ||
``` | ||
|
||
- 画面左の"Install App"をクリックし、右に出る"Install App to Workspace"をクリックして、アプリをワークスペースにインストールします。インストールが完了すると、bot の OAuth アクセストークンが表示されます | ||
- この`xoxb-`で始まるトークンをコピーして Value に貼り付けます | ||
- Click "Install App" on the left side of the screen, then click "Install App to Workspace" that appears on the right side to install the app in your workspace. Once the installation is complete, the bot's OAuth access token will be displayed. | ||
- Copy this token that begins with `xoxb-` and paste it into Value. | ||
|
||
#### SLACK_POST_CHANNEL_ID | ||
|
||
- 要約結果を投稿する Slack の channel_id | ||
- Slack で要約結果を投稿したいチャンネルを開きます | ||
- 上部のチャンネル名をクリックし、出てきた Popup の最下部にある Channel ID を Value に貼り付けます | ||
- The channel_id in Slack where you want to post the summary result | ||
- Open the Slack channel where you want to post the summary results. | ||
- Click the channel name at the top and paste the Channel ID, which appears at the bottom of the popup window. | ||
|
||
#### LANGUAGE | ||
|
||
- Specifies the language used for summarization. | ||
- Any value can be specified, such as "ja" or "Japanese" for Japanese, or "en" or "English" for English. | ||
|
||
### Channel に bot をインストール | ||
#### TIMEZONE | ||
|
||
- 画面上部の検索窓から"Summarizer"を検索し、"Summarizer [APP]"をクリックします。 | ||
- 上の"Summarizer"をクリックし、"Add this app to a channel"をクリックして、要約結果を投稿したいチャンネルを指定します | ||
- Specifies the timezone for the primarily read region. | ||
- Specify in the "TZ database name" format, such as "Asia/Tokyo" or "America/New_York". | ||
- See https://en.wikipedia.org/wiki/List_of_tz_database_time_zones | ||
|
||
### 実行 | ||
### Install the bot in the channel | ||
|
||
- GitHub のリポジトリで"Settings"タブを開き、左の"Actions"→"General"を開きます | ||
- "Actions permissions"の"Allow all actions and reusable workflows"を選択して保存してください | ||
- Search for "Summary" in the search window at the top of the screen and click "Summary [APP]". | ||
- Click "Summary" and click "Add this app to a channel" to specify the channel where you want to post the summary results. | ||
|
||
これらの設定をすると、毎日午前 5 時に Slack の Public channel の要約結果が投稿されます。 | ||
### Run | ||
|
||
手動で実行してみる場合には"Actions" タブを開き、左の"Summarizer"をクリックして、右の"Run workflow"をおしてください。 | ||
- Open the "Settings" tab in the GitHub repository, then click "Actions"->"General" on the left side. | ||
- Select "Allow all actions and reusable workflows" in "Actions permissions" and save it. | ||
|
||
## Problems | ||
With these settings, a summary of Slack's public channels will be posted every day at 5:00 a.m. | ||
|
||
このスクリプトで既知の課題としては、1 チャンネル当たりの発言が 4000token を超えるとコケます。分割する部分は書いてないので。Pull Request をお待ちしてます → 誰か | ||
you would manually execute it by opening the "Actions" tab, clicking on "Summary" on the left, and clicking "Run workflow" on the right. |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
File renamed without changes
Oops, something went wrong.