LINEでChatGPT使ってみました。
気軽に使えて便利ですが、設定が難しいです。
忘れないようにブログにまとめてみました。
.
1)LineDevelopersへの登録
LineDevelopersのページを開く
1、画面下「MessagingAPI」をクリック。
.
2、「今すぐはじめよう」をクリック。
.
3、IDを「LINEアカウント」で作成。
.
4、LINEアカウントで「ログイン」
.
5、①チャンネルの種類「MessagingAPI」を選択。
②プロパイダー「新規プロパイダー」選択。
③名前入力。
④「日本」を選択。
⑤アイコン写真をアップロード。
⑥チャネル名入力
⑦何か入力。
⑧業種選択「個人」
⑨業種選択「個人」
⑩メールアドレス入力。
⑪利用規約に同意をチェック
⑫「作成」をクリック。
.
6、チャネルを作成しますか? 「OK」をクリック。
7、同意について 「同意する」をクリック。
.
8、もう一つ「同意する」をクリック。
.
チャネル完成
.
APIの設定
9、画面上の「MessagingAPI設定」をクリック。
10、チャネルアクセストークン「発行」をクリック。
.
11、チャネルアクセストークンが発行されるので、コピーして、どこかに保存しておきます。
.
2)オープンAIの登録
OpenAIのサイトを開きます。
12、画面をスクロールしていき、下の方にある「Overview」をクリック。
.
13、「Get started」をクリック。
.
14、Googleアカウントでアカウントを作ります。
.
15、アカウントが作成されたら、右上「Personal」から「View API keys」を選択します。
.
16、「Create new seacret key」をクリック。
.
17、APIキーが表示されるので、コピーして、またどこかに保存しておきます。
.
3)GAS(GoogleAppScript)の設定
Googleドライブを開きます。
18、「新規」ー「その他」ー「Google App Script」を選択。
.
19、「設定」ー「プロジェクトの設定」を選択。
.
20、画面下「スクリプトプロパティを追加」をクリック。
プロパティに「OpenAI_key」、値に17番でコピーした「APIkey」を貼り付ける。
もう一度「スクリプトプロパティを追加」をクリック。
2段目のプロパティに「Line_key」、値に11番でコピーした「チャンネルアクセストークン」を貼り付け、「スクリプトプロパティを保存」をクリック。
.
21、「エディタ」をクリック。
.
22、参考にするコードを貼り付けて、右上「デプロイ」から「新しいデプロイ」を選択。
.
23、「設定」から「ウェブアプリ」を選択。
.
24、「アクセスできるユーザー」を「全員」にして、「デプロイ」をクリック。
.
25、デプロイ更新中、しばらく時間がかかります。
.
26、「アクセス承認」をクリック。
.
27、使用する「アカウントを選択」。
.
28、「Advanced」をクリック。
.
29、出てきた「Go to 無題のプロジェクト」をクリック。
.
30、「Allow」をクリック。
.
31、表示された「URLをコピー」する。
.
LineDevelopersの画面に戻る
32、「Webhook URL」をクリック。
.
33、先ほど「コピーしたURL」を貼り付けて「更新」をクリック。
.
34、表示されたURLの「検証」をクリック。
.
35、「成功」と表示されたらOK。「OK」をクリック。
36、URLすぐ下の「Webhookの利用」を「ON」にする。
.
37、応答メッセージの「編集」をクリック。
.
38、応答機能4つのうち、「Webhook」だけを「ON」にする。
これで終了です。
.
39、あとはQRコードを使って、LINEで友だち登録してください。
LINEで友達とチャットをするような感じでChatGPTを使えました。
.
.
.
.
.
<使ったコード>
function doPost(e) {
//webhookからのpushメッセージ
const event = JSON.parse(e.postData.contents).events[0];
//取得したデータから、応答用のトークンを取得
const replyToken = event.replyToken;
//requestMessageを取得
const requestMessage = event.message.text;
//設定したスクリプトプロパティを読み込む
const OPEN_AI_KEY = ScriptProperties.getProperty(‘OpenAI_key’);
const LINE_KEY = ScriptProperties.getProperty(‘Line_key’);
//文章生成APIエンドポイント
const OPEN_AI_END_POINT = ‘https://api.openai.com/v1/completions’;
// メッセージ返信のエンドポイント
const LINE_END_POINT = ‘https://api.line.me/v2/bot/message/reply’;
//apiリクエストのheader情報を設定
const openAiHeaders = {
‘Authorization’:`Bearer ${OPEN_AI_KEY}`,
‘Content-type’: ‘application/json’,
‘X-Slack-No-Retry’: 1
};
//api設定パラメータ
const openAiParams = {
‘headers’: openAiHeaders,
‘method’: ‘POST’,
‘payload’: JSON.stringify({
‘model’: ‘text-davinci-003’,//GPTモデルの設定パラメータ
‘max_tokens’: 1024,//responceトークンの最大値
‘temperature’: 0.6,//responceのレベル
‘prompt’: requestMessage//repuest文章
})
}
//requestを送る
const res = JSON.parse(UrlFetchApp.fetch(OPEN_AI_END_POINT, openAiParams).getContentText());
const replyMessage = res.choices[0].text;
//APIリクエスト時にセットするペイロード値を設定する
const linePayload = {
‘replyToken’: replyToken,
‘messages’: [{‘type’: ‘text’, ‘text’: replyMessage}]
};
//パラメータを設定
const lineParams = {
‘payload’: JSON.stringify(linePayload),
‘headers’: {‘Authorization’: `Bearer ${LINE_KEY}`},
‘myamethod’: ‘POST’,
‘contentType’: ‘application/json’
};
UrlFetchApp.fetch(LINE_END_POINT, lineParams);
}