3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

WorkatoAdvent Calendar 2022

Day 5

Workato:SlackとChatGPTを連携してAIチャットボットを実装してみる

Last updated at Posted at 2022-12-05

はじめに

OpenAIが提供する対話型言語モデル「ChatGPT」が話題になっています。ChatGPTはREST APIを提供しているため、WorkatoでもREST APIでChatGPTを利用することが可能です。

また、WorkatoにはWorkbot for Slackをはじめとした、チャットボットをノーコードで簡単に構築できるコネクタが用意されており、Workatoの強みの1つでもあります。

今回は、Workbot for SlackとChatGPTを組み合わせて、簡単なAIチャットボットを実装してみました。

手順

【1】ChatGPTの準備

1.ChatGPTへログインする

以下のURLへアクセスし、ChatGPTへログインします。アカウントが無い場合は、「Sign up」をクリックし、サインアップを進めます。

2.APIキーの取得

以下のURLへアクセスし、OpenAIのAPIキーを発行します。

image.png

【2】Workatoコネクションの追加

Workato上で、必要なコネクションの追加を行います。

1.「Slackコネクタ」のコネクションを追加

Slackのイベントを取得するための「Slackコネクタ」コネクションを追加します。

以下の記事を参考にSlackカスタムアプリの追加ならびに、Workato上への「Slackコネクタ」コネクションの追加を進めます。

なお、Slackチャンネル上に投稿されたメッセージを取得するため、 message.channels あるいは message.groups をBot User Eventに追加する必要があります。また、投稿されたメッセージを取得したいチャンネル上へボットユーザーの追加も必要となります。上記とあわせて、それぞれ対応を進めます。

2.「Workbot for Slackコネクタ」のコネクションを追加

Slackに対するメッセージ投稿のための「Workbot for Slackコネクタ」コネクションを追加します。

image.png
image.png

3.「HTTPコネクタ」のコネクションを追加

ChatGPTへ接続するためのコネクションを追加します。

image.png

以下を参考に設定のうえ、「Connect」をクリックします。

image.png

項目
Connection name 任意の名称
Location 任意のプロジェクトまたはフォルダ
Connection type Cloud
Authentication type Header auth
Header authorization Key: Authorization, Value: Bearer <OpenAIのAPIキー>
Base URL https://api.openai.com/v1/
Use custom TLS/SSL certificate settings No

【3】Workatoレシピの作成

Workato上でレシピを作成します。

トリガー

Slackコネクタをトリガーに追加し、「New event」を選択します。
image.png

アクション

image.png

Step2 (HTTPコネクタ)

HTTPコネクタを追加し、次の通り設定します。

Request name

任意の名称

Request
Method

POST

Request URL

completions

Request content type

JSON

Request body

以下を参考ください。
image.png

{
  "model": "text-davinci-003",
   "prompt": "<Text | Step1>",
   "max_tokens": 2048
}

<Text | Step1 > (データピル)の箇所は、Step1のEvent > Textを追加します。(以下参照)
image.png

Response
Response content type

JSON

Encoding

UTF-8

Response schema

「Use JSON」をクリックし、以下のJSONを貼付してスキーマを生成します。

image.png

{
    "id": "xxxxxxxxxxxxxxxxxxxxxx",
    "object": "text_completion",
    "created": 1670220225,
    "model": "text-davinci-003",
    "choices": [
        {
            "text": "test",
            "index": 0,
            "logprobs": null,
            "finish_reason": "stop"
        }
    ],
    "usage": {
        "prompt_tokens": 16,
        "completion_tokens": 138,
        "total_tokens": 154
    }
}

生成されたスキーマは次の通りとなります。
image.png

Step3 (Workbot for Slack)

Workbot for Slackコネクタを追加し、次の通り設定します。

Action

「Post message」を選択します。

image.png

Setup

image.png

Channel name / DM

Step 1の Event > Channel を追加します。

image.png

Notification text

Step2の Response > Choices > Text を追加します。

image.png

【4】Slackへボットユーザーを追加

以下のユーザーをボットユーザーを追加します。

Slackカスタムアプリのボットユーザー

「【2】Workatoコネクションの追加」の手順内で作成されたアプリのボットユーザー
(Event subscription でSlack上のイベントを取得する際に使用)

image.png

「Workbot」ボットユーザー

(チャンネルへメッセージを投稿する際に使用)

image.png

【5】トリガーの調整

Slack:Workbot ボットユーザーのIDを取得

1)workbotアプリを右クリックし、「アプリの詳細を表示する」をクリックします。

image.png

2)メンバーIDを確認します。(後続の手順で使用します)

image.png

Workato:レシピ編集

1)レシピ編集画面でトリガーを選択し、「Set trigger condition」を有効化します。

image.png

2)以下の通りトリガーの設定を行います。

Trigger data

Step1の Event > User へ追加します。
image.png

Condition

does not equal

Value

上記「Slack:Workbot ボットユーザーのIDを取得」で確認したメンバーIDを追加します。

【6】Workatoレシピのスタート

以上を設定が完了後、レシピをスタートします。

動作結果

Slackチャンネルへメッセージを投稿すると、Workato(Workbot)がChatGPTへ問合せを行い、その結果がメッセージとして返されます。(メッセージが返されるまで、10~20秒程度かかります)なお、選択されたモデルにより、出力される結果は異なります。

image.png

image.png

参考

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?