お知らせ

ChatGPTを使ったLINE Botの作り方

  • このエントリーをはてなブックマークに追加
  • LINEで送る

ChatGPTとLINEを組み合わせて、ユーザーからのメッセージに自動で返信をするLINE Botを作る方法を説明します。

※ 本章のLINE Botを作るにはChatGPTの有料プランが必要です。

事前準備

自動返信LINE Botを作るには以下の3つが必要になります。

  • Googleアカウント
  • OpenAIのAPIキーの取得
  • LINE Bot用のアクセストークンの取得

Botの作成の前にまずは最低限の準備を整えておきましょう。
それでは、3項目について説明していきます。

1. Googleアカウントの取得方法

Googleアカウントをお持ちでない方は以下から登録をしてください。https://www.google.com/intl/ja/account/about

※ 既にアカウントをお持ちの方はご自身のアカウントで問題ありません。

2. Open AIのAPIキーの取得方法

Open AIのAPIキーを使うと、ChatGPTの画面以外からもAIに処理をさせることができるようになります。

以下のページでOpen AIのAPIキーの取得方法を説明しています。

取得したキーはこの後Botプログラムに組み込みますのでコピーしておきましょう。

画像は取得したAPIキー

3. LINEのアクセストークンの取得

準備手順の中で、このLINEのアクセストークンの取得が一番ややこしいです。
まずはパソコンでLINE公式のページにアクセス・ログインします。
LINE公式はこちら

ログインしたらBot用のLINE公式アカウントを作成していきましょう。
メニューの作成をクリックします。

必要事項を入力して、LINE公式アカウントを作成します。

LINE公式アカウントの作成が完了したら、そのアカウントの「設定タブ」を開いて、Messaging APIのメニューをクリックします。

「Messaging APIを利用する」のボタンをクリックしてください。

表示される画面で、「プロバイダーを作成」の項目でわかりやすい名前を付けます。
例えば今回はラッキーマインというプロバイダ名を付けることにしました。

あとは規約に同意してアカウントの作成は完了、次に目的であるLINEのアクセストークンを取得しましょう。

Messaging API(メッセージングAPI)を有効にするとLINEデベロッパー画面にアクセスできるようになります。以下のURLからLINEデベロッパーの管理画面にアクセスしてください。

LINEデベロッパー管理画面
https://developers.line.biz/console

先ほど作成したプロバイダー名(画像ではラッキーマイン)の中に、先程作成したLINE公式のアカウントが表示されているのでクリック。

その中のMessaging API設定というタブの下の方に、LINEアクセストークンの欄があります。
もしLINEアクセストークンの欄が空欄なら、新規に発行してください。

表示されている文字列がLINEのアクセストークンとなります。
このアクセストークンと先ほど取得したOpen AIのAPIキーを利用してボットを作成していきます。

Google Apps ScriptでBotプログラムを作成

Google Apps Script(通称GAS)は、Googleが提供しているサービスです。
通常、Botなどのプログラムはレンタルサーバーなどを借りないと実行できませんが、GASを使えばGoogleのサーバーを無料で借りてプログラムを動作させることができます。

GASを最大限活用するには知識も必要ですが、LINE Botを動かすだけならそこまで難しくはありません。

手順に沿って進めて行きましょう。

まずはGASにアクセス

GoogleアカウントがあればGASは誰でも利用することができます。

Googleにログインした状態でGASにアクセスしましょう。

GASはこちら
https://script.google.com

Bot用のプロジェクトを作成

GASにログインしたら、メニューにある「新しいプロジェクト」をクリックしてプロジェクトを作成しましょう。

プロジェクトを作成すると「無題のプロジェクト」が作成されます。

プロジェクト名にはわかりやすい名前を入力しておきましょう。
(今回はあべBotとしました)

画像右下にあるプログラム部分は、一旦全部消して以下のプログラムをコピペしてください。

Bot AIプログラム(コピペ用)

const LINE_ACCESS_TOKEN = 'ここにあなたのLINEアクセストークン';
const OPENAI_APIKEY = 'ここにあなたのOpen AI APIキー';

function doPost(e) {
  const event = JSON.parse(e.postData.contents).events[0];

  const replyToken = event.replyToken;
  let userMessage = event.message.text;
  const url = 'https://api.line.me/v2/bot/message/reply';

  if (userMessage === undefined) {
    // メッセージ以外(スタンプや画像など)が送られてきた場合
    userMessage = 'ごめんなさい、画像やスタンプは解析できないんです…';
  }

  const prompt = userMessage;
  const requestOptions = {
    "method": "post",
    "headers": {
      "Content-Type": "application/json",
      "Authorization": "Bearer "+ OPENAI_APIKEY
    },
    "payload": JSON.stringify({
      "model": "gpt-3.5-turbo",
      "messages": [ 
        {"role": "system", "content": `
あなたはユーザーからの問い合わせに自動で返信するAIです。
あなたの役割は、あべむつきが運営するラッキーマインのYouTubeチャンネルに対して、視聴者からのコメントにあべむつきになりきって、丁寧で適切な返信を提供することです。

以下のルールとあべむつきのプロフィール情報、これまでのよくある質問の内容に基づいて適切に質問に回答してください。

# ルール

## 日本語での応答
すべてのコメントは日本語で返信し、視聴者が理解しやすいようにします。
トーンと態度: 返信は親しみやすく、丁寧でプロフェッショナルな態度を保ちます。視聴者に対して感謝の意を忘れず、ネガティブなコメントにも冷静に対応します。

## ファイルからの情報活用
アップロードされたファイルをもとに、コメントに対する情報を提供し、関連性のある返信を行います。

## 明確で簡潔な回答
コメントにはできるだけ簡潔かつ明確な返信を心がけ、視聴者がすぐに理解できるようにします。

# あべむつきのプロフィール情報

## 生年月日
1995年10月9日

## 性別
男性

## 好きなもの
蛇、トカゲ、カレーライス、ラーメン

## 口癖
それではまた

## 出身大学
桜美林大学

## ネットビジネス経験
10年以上ネットビジネスに取り組む
メルマガやアフィリエイト、アプリ開発、ブログ運営、メルカリでの転売など様々なビジネスに取り組む

## 経歴
高校時代からネットビジネスに取り組む
カナダ、タイなどの海外暮らし経験あり
自身のネットビジネス経験から得た知識をYouTubeで発信
最先端のAI研究し、新しいビジネスを開発中


# これまでのよくある質問と回答

## 初心者におすすめのネットビジネスはなんですか?
アマゾンで仕入れたステッカーをメルカリで転売するステッカー転売
AIを使いこなしてインスタのSNSマーケティング攻略


        `},
         {"role": "user", "content": prompt}]
    })
  }
  const response = UrlFetchApp.fetch("https://api.openai.com/v1/chat/completions", requestOptions);

  const responseText = response.getContentText();
  const json = JSON.parse(responseText);
  const text = json['choices'][0]['message']['content'].trim();

  UrlFetchApp.fetch(url, {
    'headers': {
      'Content-Type': 'application/json; charset=UTF-8',
      'Authorization': 'Bearer ' + LINE_ACCESS_TOKEN,
    },
    'method': 'post',
    'payload': JSON.stringify({
      'replyToken': replyToken,
      'messages': [{
        'type': 'text',
        'text': text,
      }]
    })
  });
  return ContentService.createTextOutput(JSON.stringify({'content': 'post ok'})).setMimeType(ContentService.MimeType.JSON);
}

コピペしたら、プログラムの冒頭2行にある以下の部分を、ご自身のLINEアクセストークンとOpen AIのAPIキーに書き換えてください。

const LINE_ACCESS_TOKEN = 'ここにあなたのLINEアクセストークン';
const OPENAI_APIKEY = 'ここにあなたのOpen AI APIキー';

キーの書き換えが終わったら、画面上の「デプロイ」ボタンを押してプログラムをアクティブ化させておきましょう。

デプロイボタン → 新しいデプロイを選択
その後、種類の選択の歯車マークから「ウェブアプリ」を選びます。

画像を参考に、設定欄の説明文にはわかりやすい説明文(自分がわかればOK)を入力。
次のユーザーとして実行は「自分」。
アクセスできるユーザーの欄は「全員」としてください。

再度画面下にあるデプロイを押せばOKです。

デプロイが完了すると、デプロイIDとウェブアプリ用のURLが取得できます。

LINE Botで使うのはウェブアプリ用のURLだけなのでURLをコピーしておきましょう。

LINE管理画面でwebhookを有効にして完了

先ほど取得したURLをLINE公式のアカウントに設定した後、webhookを有効にしたらBotの完成です。

まずはLINE管理画面にアクセス
https://manager.line.biz

作成したBot用のアカウントの設定タブからMessaging APIのメニューを開いてください。
「Messaging APIを利用する」というボタンがありますからクリックします。

Messaging APIを有効にするとwebhook URLを入力できる欄が表示されます。
GASのデプロイ後に取得したウェブアプリのURLを入力して保存ボタンを押します。

応答設定でwebhookがONになっているか確認

最後に、画像を参考に応答設定でwebhookがONになっているか確認してください。
その他の項目はケースに応じてON/OFFを切り替えてください。(よくわからなければ画像と同じでOK)

これでLINE Botの作成は完了です。

実際にメッセージを送って動作確認

作業が完了したら、自分で作ったLINE公式アカウントに友だち登録してメッセージを送って見ましょう。

返信が届いたら成功です!

いかがでしたか?

動かない場合のチェック項目をこの記事の最後にまとめておきますので動かない場合はそちらをさんこうにして問題を解決してください。

次のステップ

無事にBotプログラムが動いたら、プログラムに手を加えてオリジナルのBotを作ってみてください。

プログラムの知識がない人でも編集しやすいように、変更箇所はできるだけ自然文(もちろん日本語)で設定できるようになっています。

主に編集する箇所は27行目付近から始まる応答ルールとあべむつきのプロフィール項目になると思います。

変更するプログラム部分(抜粋)

あなたはユーザーからの問い合わせに自動で返信するAIです。
あなたの役割は、あべむつきが運営するラッキーマインのYouTubeチャンネルに対して、視聴者からのコメントにあべむつきになりきって、丁寧で適切な返信を提供することです。

以下のルールとあべむつきのプロフィール情報、これまでのよくある質問の内容に基づいて適切に質問に回答してください。

# ルール

## 日本語での応答
すべてのコメントは日本語で返信し、視聴者が理解しやすいようにします。
トーンと態度: 返信は親しみやすく、丁寧でプロフェッショナルな態度を保ちます。視聴者に対して感謝の意を忘れず、ネガティブなコメントにも冷静に対応します。

## ファイルからの情報活用
アップロードされたファイルをもとに、コメントに対する情報を提供し、関連性のある返信を行います。

## 明確で簡潔な回答
コメントにはできるだけ簡潔かつ明確な返信を心がけ、視聴者がすぐに理解できるようにします。

# あべむつきのプロフィール情報

## 生年月日
1995年10月9日

## 性別
男性

## 好きなもの
蛇、トカゲ、カレーライス、ラーメン

## 口癖
それではまた

## 出身大学
桜美林大学

## ネットビジネス経験
10年以上ネットビジネスに取り組む
メルマガやアフィリエイト、アプリ開発、ブログ運営、メルカリでの転売など様々なビジネスに取り組む

## 経歴
高校時代からネットビジネスに取り組む
カナダ、タイなどの海外暮らし経験あり
自身のネットビジネス経験から得た知識をYouTubeで発信
最先端のAI研究し、新しいビジネスを開発中


# これまでのよくある質問と回答

## 初心者におすすめのネットビジネスはなんですか?
アマゾンで仕入れたステッカーをメルカリで転売するステッカー転売
AIを使いこなしてインスタのSNSマーケティング攻略

上記の部分で、「あべむつき」となっている部分を貴方の名前にして経歴やルールなども自由に設定してください。必要なければ項目ごと削除しても大丈夫です。

簡単な編集だけでも、有名人や漫画のキャラクターなどの架空の人物などと会話できるLINE Botは実現できてしまいます。

これまでもLINE Botでは、人狼ゲームの様なテーブルゲームのゲームマスターや占いや診断を行うような人気を集めているBotは数多くありましたが、複雑なプログラムの知識が必要でした。

複雑な処理をすべてAIに任せてしまうことで、複雑な処理も簡単に実現できます。

占い系のBotも常に根強い客層がいますし、AIとLINEの組み合わせは今後もどんどん伸びていくでしょう。

面白いBotができたら是非教えて下さい!

プログラムが動かない場合のチェック項目

LINEのMessaging API設定でwebhook URLは入力しましたか?

LINEの応答設定でwebhookは有効になっていますか?

GASデプロイ時にアクセスできるユーザーが「全員」になっていますか?

APIキーとLINEアクセストークンは自分のものに書き換えましたか?

ChatGPTは有料プランですか?

本記事についてのお問い合わせはこちらまで

本記事に関する質問や疑問点などがございましたら、下記のサポート窓口までお問い合わせ頂ければと思います。

お問い合わせの前に、一度公開掲示板で同様の質問があるかも確認してみて下さい。

メールでのお問い合わせ

メールアドレス:support@lucky-mine.com
予備アドレス:luckymine23@gmail.com

LINEでのお問い合わせ

URL:https://abe-labo.biz/r/line_sougou/
上記リンクをクリックするか以下のQRコードを読み取ってLINEからメッセージを下さい。

コメントを残す

*