ほぼコピペでLINE WORKSでchatGPT Botを作成

## chatGPTをLINE WORKSのbot経由で使いたい

LINE WORKSの標準機能ではできないあれやこれやを実現する便利ツールシリーズ
今回はLINE WORKSで、ほぼコピペで簡単にChatGPT Botを使えるようにします

（といっても、LINE WORKSの管理画面をはじめて触る方は30分ほど要するかもしれません。）


#### 実行イメージ

LINE WORKS上にchatGPT Botをつくり、質問すると
chatGPT-turbo3.5のAPIを使って帰ってきた回答を、答えます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727469/a7cb9c9a-3cf1-9d91-07ec-45e8a9adc035.png)





## 必要なもの
* Googleアカウント（無償でもOK）
* chatGPTのアカウントとAPI Key
* LINE WORKS 管理者権限を持つID
* [LINE WORKS 便利ツール](https://qiita.com/nonattonolife/items/16181d666b8246e3f28d) *自身のGoogle Driveへコピーしておいてください


## 事前準備

### 1. LINE WORKS便利ツールの準備

以下の手順に従い、便利ツールの事前準備をします

https://qiita.com/nonattonolife/items/16181d666b8246e3f28d


### 2. Webアプリ URLの準備

便利ツールの準備ができたら、Googleシートの「**拡張機能**」メニューから「**Apps Script**」を開きます


<img width="400" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727469/ae5ac3f9-5eec-9d02-f692-7e8ba9da254c.png">

**chatGPT.gs** ファイルを選択して、
画面右上の青色の「**デプロイ**」＞「新しいデプロイ」をクリックします。

<img width="700" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727469/e095741e-1043-f73f-46f8-8ea9d6378a60.png">

「アクセスできるユーザー」を「**全員**」にセットして
「デプロイ」ボタンをクリックします

<img width="400" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727469/7192dec2-f8c9-699c-bb77-de4e7cf2d277.png">

**「ウェブアプリ」のURLをコピー**しておきます

<img width="400" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727469/ddad41d7-d633-6c4b-1cee-31cff757424b.png">

### 3. chatGPT Botの準備

便利ツールの準備ができたら、シートの「**chatGPT**」を開き、必要事項を入力していきます

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727469/b781525b-cdc8-7ce7-95c3-4125f3d5ae21.png)

### chatGPTのAPI Keyを取得

OpenAIのDeveloperサイトへ移動
https://platform.openai.com/account/api-keys

Create new secret keyをクリックしてAPI Keyを発行し、コピーしてA2セルに貼り付けます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727469/6246ca74-0fd8-fb2b-dcff-119ca08beeae.png)

### botNoを取得

LINE WORKS Developers ConsoleのBot作成画面へ移動します
https://developers.worksmobile.com/jp/console/bot/view

「登録」ボタンから、以下の必要事項を入力していきます

プロフィール画像：なくてもOK
Bot名：必須、なんでもOK
説明：必須、なんでもOK
API Interface：必須、API 2.0
固定メニュー：そのまま
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727469/4e2c27a0-d149-08d6-e70b-7a77eeba0037.png)

👇続き
Callback URL: 先ほどコピーしておいたWebアプリのURLを貼り付けます
メンバーが送信可能なメッセージタイプ：テキスト✅
トークルームへの招待：複数人トークルームで利用したい場合は✅
主担当：自分の名前を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727469/24704c95-2b6c-48f2-7c6a-609a49410be4.png)

「保存」ボタンを押すと、
Botが登録されて、BotNoが発行されます

「ID」をコピーして便利ツールのSheetのB2セルに貼り付けてください

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727469/df626a77-0d2e-6ee1-f112-4e39421c3a64.png)

続いて、登録したBotにユーザが話しかけることができるように、
LINE WORKS の管理画面にて、Botの追加と公開を行います。
※LINE WORKSの管理者権限が必要です。
https://admin.worksmobile.com/service/bot

Botの追加をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727469/e1d03a3a-5ac0-37ae-01ee-04eec077e9dc.png)

先ほど登録したBotを選択し、「Bot追加」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727469/5593c9fe-8bbe-59f7-7832-0079b4e66bc0.png)

この段階ではまだ「公開」されていないので、
追加されたBotを「修正」します

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727469/8d378d6b-bdb6-9283-f5d1-eda28194e5e7.png)

利用できるメンバーの範囲（すべて or メンバー指定）を選び、
「公開設定」をONにして
保存します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727469/6ce51047-9eab-44e4-a3b3-6a80750fb03a.png)

Botが公開されると、サービス通知が届きます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727469/f58c9630-3ae6-d44d-3da3-c9873edad093.png)

これで準備完了です！

# 使ってみよう

トークルームの作成 > Bot > から、作成したBotが検索できるようになっているので、
話しかけてみましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727469/2c9e8170-8786-68da-279c-210b12848346.png)

質問したあと、数十秒悩みます。

23/4/19現在、chatGPT-4のAPIは一部を除き未公開なので、gpt-3.5-turboのAPIを使っています。
tempertureは0.7
max tokenは2048
rollは特に指定していません
必要に応じて、GASのプログラムを修正してお使いください。