使用するOSS
- 言語:Python
ゴール
AWS LambdaでChatGPTと連続的な会話を実現するSlackアプリを構築する
AWS Lambdaで動かす
本記事は、以下の記事の後編です
ローカル環境で動作確認できたら、次はこれをLambdaにデプロイしてみましょう
(そこまでできれば、社内用ツールとして利用できるようになります)
Slack API
Slack APIで新しいAppを作成
最初に、SlackAppを作成します
- Slack Apiで
Create New App
をクリックします
-
Enter app manifest bellow
を入力します
Slack APIで必要な認証情報を控えます
-
Basic Information
>App Credentials
から以下を控えます- Client ID
- Client Secret
- Signing Secret
OpenAI API
- OpenAI API keyを作成し、控えます
https://platform.openai.com/account/api-keys
AWS S3Bucketの準備
- 以下の3つが必要になります
- For SLACK_INSTALLATION
- For SLACK_STATE
- For OPENAI
ServerlessFrameworkの実行
- 以下のコマンドを実行してください
export SLACK_CLIENT_ID=${YOUR SLACK_CLIENT_ID}
export SLACK_CLIENT_SECRET=${YOUR SLACK_CLIENT_SECRET}
export SLACK_SIGNING_SECRET=${YOUR SLACK_SIGNING_SECRET}
export SLACK_SCOPES=app_mentions:read,channels:history,groups:history,im:history,mpim:history,chat:write.public,chat:write,users:read
export SLACK_INSTALLATION_S3_BUCKET_NAME=${YOUR SLACK_INSTALLATION_S3_BUCKET_NAME}
export SLACK_STATE_S3_BUCKET_NAME=${YOUR SLACK_STATE_S3_BUCKET_NAME}
export OPENAI_S3_BUCKET_NAME=${YOUR OPENAI_S3_BUCKET_NAME}
npm install -g serverless
serverless plugin install -n serverless-python-requirements
serverless deploy
- 質問にはそれぞれ以下のように答えてください
? Do you want to login/register to Serverless Dashboard? (Y/n)
# -> Y
? No AWS credentials found, what credentials do you want to use? (Use arrow keys)
# -> AWS Access Role (most secure)
- CloudFormationのテンプレートを用意してくれるので、指示通り作成を進めます
Slack APPにURLを登録
- デプロイが完了すると、以下のような結果が出力されます
✔ Service deployed to stack slack-chat-gpt-bot-dev (48s)
dashboard: https://app.serverless.com/xxxxxxx/apps/slack-chat-gpt-bot/slack-chat-gpt-bot/dev/us-east-1
endpoints:
POST - https://xxxxxxx.execute-api.us-east-1.amazonaws.com/slack/events
GET - https://xxxxxxx.execute-api.us-east-1.amazonaws.com/slack/install
GET - https://xxxxxxx.execute-api.us-east-1.amazonaws.com/slack/oauth_redirect
functions:
app: slack-chat-gpt-bot-dev-app (2.6 MB)
Request URL
-
以下の2か所に
Request URL
を設定します-
Interactivity & Shortcuts
>Request URL
-
Event Subscriptions
>Request URL
-
-
URL: https://xxxxxxx.execute-api.us-east-1.amazonaws.com/slack/events
Redirect URLs
-
OAuth & Permissions
>Redirect URLs
に以下を設定します
Slack APP Installation & Configure
Installation
- 以下のURLからSlack AppをWorkSpaceにインストールします
https://xxxxxxx.execute-api.us-east-1.amazonaws.com/slack/install